Gray's coding life.

使用podpackage打包工程库

Word count: 558 / Reading time: 2 min
2018/06/15 Share

使用podpackage打包工程库

准备工作

安装cocoapods

如果没有梯子的需要先执行以下命令,把下载资源替换成国内源。

1
2
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.org/

执行以下命令查看当前源,确保已经替换成功,否则再执行以上命令。

1
gem sources -l

安装cocoapods,后面执行setup的时候时间稍长,文件大约600M。

1
2
sudo gem install cocoapods
pod setup

用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
2
3
git add .
git commit -m 'version'
git tag -a version -m 'version'

如果文件是本地文件没有在github上面,则source要指向本地文件路径

1
s.source = { :git => "/Users/XXX/XXX/XXX/XXXFramework" }

若提示以下错误请,打开Xcode->Preferences->Locations->command line tool设置一下版本。

1
unable to find utility "simctl"
CATALOG
  1. 1. 使用podpackage打包工程库
    1. 1.1. 准备工作
    2. 1.2. 安装cocoapods
  2. 2. 注意事项