关于.gitignore
当执行pod install之后,除了Podfile外,CocoaPods还会生成一个名为Podfile.lock的文件,这个文件不应该加入到.gitignore中。 因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install 也不会更改版本,只有执行pod update才会改变Podfile.lock。 在多人协作的时候,这样可以防止第三方库升级时造成大家各自的第三方库版本不一致。
不更新podspec
CocoaPods在执行pod install和pod update时,会默认先更新一次podspec索引。 使用–no-repo-update参数可以禁止其做索引更新操作。如下所示:
pod install –no-repo-update
pod update –no-repo-update
CococaPods原理
CocoaPods的原理,它是将所有的依赖库都放到另一个名为Pods项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。下面是一些技术细节:
- Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
- 对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。
- CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数。