CocoaPods的原理
CocoaPods的原理就是通过脚本完成以下工作,假设存在 Playground.xcodeproj 的 Project
- 对所有库的头文件创建软连接,并且放入Pods目录
- 创建 Pods.xcodeproj 把所有的静态库打包在一起,形成一个虚拟的 lib-pods.a 的 Target
- 然后创建一个WorkSpace加入 Playground.xcodeproj 和 Pods.xcodeproj
- 配置 Playground.xcodeproj 的 Header Search Paths 引入所有Pod目录下库的头文件软连接
- 配置 Playground.xcodeproj 的 Linked Binary With Libraries 加入lib-pods.a
- 配置 Playground.xcodeproj 的 Build Phase 添加一系列脚本,类似 XX Pods XXX
使用Framework引入Pods
正常的情况下,Pods都是通过Static Lib来加载,根据CocoaPods官网可以使用指令 use_frameworks!
让Cocoapods以Framewrok的形式加入工程
1 | use_frameworks! |
CocoaPods 1.2.1版本的BUG
CocoPods的1.2.1版本无法将Static Lib的工程作为target,使用Pods,会报错如下,GitHub上说已修正
1 | [!] Unable to find host target(s) for SharedLib. Please add the host targets for the embedded targets to the Podfile. |