cocoapods packager - ShenYj/ShenYj.github.io GitHub Wiki
-
作为
CocoaPods Plugins
, 默认是不包含的, 需要单独安装sudo gem install -n /usr/local/bin cocoapods-packager
等待安装完成
Password: Successfully installed cocoapods-packager-1.5.0 Parsing documentation for cocoapods-packager-1.5.0 Done installing documentation for cocoapods-packager after 0 seconds 1 gem installed
-
生成类库
pod package YourPodName.podspec --force --library
-
参数说明
参数 说明 --force
强制覆盖之前生成的文件 --no-mangle
不使用name-mangling技术,也就是自动改类名等符号 --embedded
生成静态的framework --library
生成静态.a --dynamic
生成动态framework --local
使用本地文件 --bundle-identifier
生成动态framework的时候需要这个BundleId来签名 --exclude-deps
不包含依赖的符号表,也就是不把依赖的第三方库打包进去 --configuration=Release
生成debug还是release的库,默认是release --subspecs=subspec1,subspec2
如果你的pod库有subspec,那么加上这个命名表示只给某个或几个subspec生成二进制库 --spec-sources=private,https://github.com/CocoaPods/Specs.git
默认是CocoaPods的Specs仓库,如果你的项目有私有的source,就可以通过这个参数来设置 补充说明
-Name-Mangling
会把类名和全局常量改成Pod#{pod_name}_#{symbol}
的形式,比如说我们的pod
库YourPodName
中有一个YourClass
类,那它最终会被改成PodYourPodName_YourClass
-Name-Mangling
并不会改方法名
-Name-Mangling
无法对静态库生效
---exclude-deps
参数,它也只会去除我们引入的第三方开源库,静态库还是会被打包进去。那如果接入方也引入了这个第三方静态库,还是会冲突