使用podpackage打包工程库
准备工作
安装cocoapods
如果没有梯子的需要先执行以下命令,把下载资源替换成国内源。
1 | gem sources --remove https://rubygems.org/ |
执行以下命令查看当前源,确保已经替换成功,否则再执行以上命令。
1 | gem sources -l |
安装cocoapods,后面执行setup的时候时间稍长,文件大约600M。
1 | sudo gem install cocoapods |
用podpackage打包静态库需要安装cocoapods-packager
1 | sudo gem install cocoapods-packager |
创建spec文件,最好用下面的命令来创建podspec文件,创建出来的模板文件更加易懂。(具体的podspec文件的编写戳这里)
1 | pod spec create XXX |
验证podspec是否通过检验
1 | pod lib lint XXX.podspec --allow-warnings --verbose |
接下来就可以执行打包library或framework命令了
–library是打包.a否则打包.framework
–force是强制覆盖生成的文件
1 | pod package XXX.podspec --library --force |
若需要打测试环境的包(若需要支持DEBUG模式下的宏定义代码)
1 | pod package XJSDK.podspec --force --embedded --no-mangle --exclude-deps --configuration=DEBUG |
最后会在项目根目录生成一个XXXFramework-0.0.1这样的文件夹,格式是framework的名字+tag,里面带有了一个podspec文件用于导入framework的时候使用,还有一个叫ios的文件夹里面就是我们打包出来的framework文件,还有一个build配置的文件夹。导入本地的framework也很简单,podfile里面加上
1 | pod 'XXXFramework', :path =>'../XXXFramework/XXXFramework-0.0.1' |
然后执行pod update就可以导入了
注意事项
要成功执行上面的命令需要满足一定的条件
- 项目要已经在git环境(不一定要push上github)
- 若本地已经改变的文件(包括create、modify、delete)需要打包进framework的话则需要add并commit
- 最后需要打上spec里指定的tag
1 | git add . |
如果文件是本地文件没有在github上面,则source要指向本地文件路径
1 | s.source = { :git => "/Users/XXX/XXX/XXX/XXXFramework" } |
若提示以下错误请,打开Xcode->Preferences->Locations->command line tool设置一下版本。
1 | unable to find utility "simctl" |