CocoaPods Plugins - cocoapods-packager
优质
小牛编辑
136浏览
2023-12-01
CocoaPods Plugins - cocoapods-packager
作为
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`参数,它也只会去除我们引入的第三方开源库,静态库还是会被打包进去。那如果接入方也引入了这个第三方静态库,还是会冲突