https://github.com/CocoaPods/cocoapods-packager
主要解决问题
- 通过podspec打包出.a或者.framework,提供给不使用cocoapods或者不方便暴露源码的场景
- 解决通过不同的方式添加相同的第三方导致的冲突
使用
参考文档
pod package --help
pod package NAME [SOURCE]
// 参数说明
--force
输出结果强制覆盖原有结果
--library
默认输出结果为framework,可以使用--library指定输出为.a
--no-mangle
对于podspec中通过spec.dependency 'XXXXX'指定的依赖,默认会添加类名前缀。
通过--no-mangle,可以指定不添加类名前缀。
添加前缀和不添加前缀的区别:
// 添加前缀
NSLog(@"%s",object_getClassName([AFNetworkReachabilityManager sharedManager]));
PodXXXXX_AFNetworkReachabilityManager
// 不添加前缀
NSLog(@"%s",object_getClassName([AFNetworkReachabilityManager sharedManager]));
AFNetworkReachabilityManager
--embedded
生成Embedded Framework,iOS 8后开发者可以创建动态库,但是这个动态库和系统存在区别,
必须嵌入到程序中,因为称之为Embedded Framework。
网友评论