9th,April,2016
CocoaPods是一款面向Swift与Objective-C的依赖管理工具,使用ruby开发,Mac下默认安装ruby。
CocoaPods项目代码: github-CocoaPods
CocoaPods官网: https://cocoapods.org/
唐巧在 用CocoaPods做iOS程序的依赖管理 这篇文章中提到,不使用CocoaPods会出现以下几种情况的简单体力活:
"
-licucore
或者 -fno-objc-arc
等编译参数"
第一点项目构建时如果引入比较多的第三方库,那么确实少做了很多体力活。 一键就可以引入所有需要使用的第三方库,无需一一下载然后复制到项目中
第二点是针对项目中的依赖库的添加,我只想默默的说一句,这点体力活不算什么。 补充一点:“如果用惯了cocoapods的童鞋,转而去维护没使用cocoapods的鲜蘑菇,也许在遇到依赖库问题时,会束手无策” from w
第三点是编译参数的设置, 同第二点
第四点指定第三方库版本号就会下载相应版本的第三方库,未指定默认则是使用最新的第三方库版本,该情况下会快速及时更新第三方库版本。但其必要性有待考证。你选用的第三方库应足够可靠健壮与完善,其中第三方版本的更新对于你的应用是否有关键性的作用就不得而知了。
ibireme 在iOS 第三方开源库的吐槽和备忘 中也吐槽了第三方开源库顺便也吐槽了下CocoaPods:
"
第一点确实有一定的道理
第二点 算是一点吗,具体什么麻烦也没说
第三点 在使用CocoaPods情况下如果需要修改引入的库,应该怎么办,目前只知道三种方案(如有其他方案,欢迎交流):
1. 不要更新CocoaPods。
2. 不要使用CocoaPods引入该库;
3. 1)CocoaPods可以通过指定依赖的podspec使用内部库拥有私有的Pods,那么就可以把第三方库修改版本设为私有的Pods,
2)或者把修改版本上传到github,通过指定git使用
eg: pod 'JolieLib', :podspec => 'https://jolieyang.com/lib/JolieLib.podspec'
pod 'JolieLib', :git => 'https://github.com/jolie_yang/JolieLib'
那到底要不要用CocoaPods呢,我也不知道, 但是目前我是很少使用CocoaPods
从另外一个角度思考, 什么情况下会修改引入的库呢,像使用AFNetworking之类的库,修改应该是少之又少。
4. 顺便我再吐槽一点, 之前项目用CocoaPods时基本不会pod update, 当然也有使用pod update,体验就是有的时候update好慢。
顺便再看看ibireme对于第三方库的吐槽:
“
第一点 公司在使用AFNetworking的时候会考察代码质量吗?
第二点 比较优秀的第三方库在API更换的时候会影响原先的代码调用吗?
第三点 许可协议要好好看看
有用CocoaPods管理第三方库,也有不使用的情况。我尽然没什么特别的觉悟。目前的情况,一般不使用CocoaPods。
我想了下目前会再使用CocoaPods的情况:快速开发时使用了很多第三方库的时候
欢迎交流!