IOS代码 如何通过cocoapods 生成 uniapp插件--[20240909更新]

前提环境条件:mac系统电脑,Xcode应用程序

前提假如条件:IOS代码示例工程名Wifi,自定义插件名HliitWifiPlugin

总流程:

一、下载uniapp的SDK

二、安装cocoapods

三、准备IOS工程代码Wifi

四、生成cocoapods基础工程

五、生成自定义插件HliitWifiPlugin

六、在基础工程引用自定义插件

七、引用uniapp的SDK编译,使原代码包含自定义插件HliitWifiPlugin

八、将IOS工程已经准备好的代码放到HliitWifiPlugin中

九、调试并生成uniapp工程项目所需要的HliitWifiPlugin.framework

--------------------------------------------------------------------

开始

一、从官网下载uniapp的SDK

我是从SDK 升级说明 | uni小程序SDK下载链接(https://nativesupport.dcloud.net.cn/AppDocs/download/ios.html

下载后解压到目录,我的目录为解压到~ios,如图

二、安装cocoapods

在应用程序找到终端,输入sudo gem install cocoapods 或 gem install cocoapods进行安装

三、准备IOS工程代码Wifi

将Wifi代码放到.....ios/SDK下

四、生成cocoapods基础工程

在终端CD到Wifi代码目录

后终端运行pod init

运行后在工程目录下会生成一个Podfile文件

打开编辑Podfile文件,增加如下代码(注意如果复制的命令或代码运行报错,记得删除空格重新敲空格)

------------------

# 最低支持iOS10 platform :ios, '10.0' ​ # 忽略所有警告

platform :ios, '10.0'

inhibit_all_warnings!

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end

-----------------

保存后在终端执行 pod install 命令

在Wifi的目录下会生成一些文件,如下图

​​​​​​​

至此基础工程生成完成

五、生成自定义插件HliitWifiPlugin

在终端运行(cd ..)回到上一目录,或直接cd 到SDK目录,我的目录为....ios/SDK

然后执行pod lib create HliitWifiPlugin

根据引导输入相关参数,如果执行pod lib create HliitWifiPlugin命令没有引导,则可能是github没有连接成功,多试几次

完成后会在ios/SDK目录中生成自定义插件HliitWifiPlugin的文件夹

六、在基础工程引用自定义插件(注意如果复制的命令或代码运行报错,记得删除空格重新敲空格)

编辑【第四步生成的Podfile】Wifi项目中的Podfile,添加

----------

pod 'HliitWifiPlugin', :path => '../HliitWifiPlugin'

----------

接下来在终端cd到wifi项目中【Podfile所在目录】,重新执行pod install,让wifi基础工程关联自定义插件生效

七、引用uniapp的SDK编译,使原代码包含自定义插件HliitWifiPlugin

在【第五步生成的文件夹中】~ios/SDK/HliitWifiPlugin目录中,打开HliitWifiPlugin.podspec文件,在最后增加

-----------

  s.static_framework = true
  s.xcconfig = {
  'USER_HEADER_SEARCH_PATHS' => [
  '"$(SRCROOT)/../SDK/inc/DCUni"',
  '"$(SRCROOT)/../SDK/inc/weexHeader"'
  ]
  }

-----------

然后在终端中重新执行pod install命令,在wifi基础工程【即wifi代码项目中执行,我的路径为~ios/SDK/Wifi中】中执行,让代码生效

八、将IOS工程已经准备好的代码放到HliitWifiPlugin

将第三步的工程代码放到~ios/SDK/HliitWifiPlugin/HliitWifiPlugin/Classes/中

接下来在终端cd到wifi项目中【Podfile所在目录】,重新执行pod install,让代码关联进来

九、调试并生成uniapp工程项目所需要的HliitWifiPlugin.framework

打开Wifi代码目录中的WiFi.xcworkspace文件,会在Xcode中打开

然后直接如图运行,或直接运行,成功后在Xcode应用中,Pods->Products->HliitWifiPlugin,将HliitWifiPlugin在目录中展示(即右键Show in Finder)即可看到HliitWifiPlugin.framework

或如图所示

=====================================

注意,在第九步的时候运行报错,提示找不到DCUniModule.h文件

经查看此文件在~ios/SDK/SDK/inc/DCUni中

说明我们【第七步引用SDK时出了问题】

修改第七步的代码为

s.static_framework = true
s.xcconfig = {
'USER_HEADER_SEARCH_PATHS' => [
'"$(SRCROOT)/../SDK/inc"',
'"$(SRCROOT)/../../SDK/inc"'
]
}

如图,我多加了'"$(SRCROOT)/../../SDK/inc"',并去掉了指向DCUni和weexHeader的目录

接下来在终端cd到wifi项目中【Podfile所在目录】,重新执行pod install,让代码关联进来

重新执行【第九步】

但是又提示找不到WXComponent.h文件

​​​​​​​

经查看此文件在~ios/SDK/SDK/inc/weexHeader中

实际是存在的,所以我们要给报错的地方代码及SDK中的代码增加两个前缀DCUni和weexHeader

接下来在终端cd到wifi项目中【Podfile所在目录】,重新执行pod install,让代码关联进来

重新执行【第九步】,执行成功

============================

ps:我的插件名是HliitWifiPlugin,模块名是IOS工程的WiFiModule,所以大家注意uni-app的引用

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值