为什么需要使用CocoaPods
- 货车帮iOS货主版一共用了34个三方库,集成这些库到这些工程中来,我们需要做很多事情
- 复制源码
- 添加framework
- 某些开源库,设置编译参数
- 更麻烦的是管理这些依赖库的更新
- 私有的公共库的管理
CocoaPods的介绍
-
CocoaPods
是一个用来帮助我们管理第三方依赖库的工具- 使用
CocoaPods
的目的是让我们能自动化的、集中的、直观的管理第三方开源库
- 使用
CocoaPods的原理
- 第三方库会被编译成.a静态库供我们真正的工程使用
- 我们的工程和第三方库所在的工程会由一个新生成的workspace管理
- 原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理
-
CocoaPods
通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数
与 Carthage的比较
-
CocoaPods
默认会自动创建并更新你的应用程序和所有依赖的Xcode workspace。Carthage
使用xcodebuild来编译框架的二进制文件,但如何集成它们将交由用户自己判断。CocoaPods
的方法更易于使用,但Carthage更灵活并且是非侵入性的。 -
Cocoapods
是一个中心化的依赖管理工具,能提高第三方库的可见性和参与度。Carthage
是一个去中心化的依赖管理工具,它没有总的仓库列表,这能减少维护工作并且避免任何中心化带来的问题。 -
Carthage
只支持动态库,所以只能在iOS8以上的版本中使用。
CococaPods在我们项目中的使用
- 可以用来管理一些我们项目中的三方库
- 尽量避免对这些三方库的修改,如果需要修改
- 如果需要修改
- 尽量在外部修改
- fork一份代码创建一个私有库,并保持这个库的跟进更新
- 万不得已用原始的方式添加
- 创建私有仓库,管理组件化的公共库
- 私有库的创建过程
- 可能会存在的一些问题,
- 复杂组件耦合度太高,难以创建私有库
- 复杂组件创建subspec
- 好处
- 避免重复造轮子
- 这也是一种知识产出
- 注意事项
- 该组件的作者负责创建并维护该私有仓库,在xxx.md中写清楚该组件的详细使用,并提供Demo
- 如果需要引入三方库,需要技术团队进行评估
- 代码的管理
网友评论