作为iOS开发,这几天看了下carthage这个第三方工具管理库,一个类似于cocoaPods,使用方式上有点不大一样,而且将生成的第三方库导入project工程的过程交给了开发者.
cocoaPods是中心化的管理cocoaPods大致:thouch Podfile 在文件中加入你需要的第三方库的版本信息, 在终端pod install,cocoaPods会生成workspace把所有的第三方库放在一个project, 和开发者的工程都放到workspace里面,把所有的依赖都一步到位,这样的操作对开发者来说比较方便。但是在你的工程每次编译的时候pod project 也需要一起编译一遍,随着开发深入,编译时间会变长,这个比较麻烦, 特别是xcode8以后的swift开发编译一遍很费时.
carthage是去中心化的管理,和cocoaPods理念不一样, 只给用户做第三方库下载到carthone文件夹,做好了相关依赖工作,并不帮用户集成第三方库,集成的权利交给用户自己去做,大概的继承步骤:1,终端cd到你工程目录, thouch cartfile文件 。2想文件写入第三方库名称(carthage和cocoaPods相比的缺点,无法用pod search 第三方库,你需要自己去github上面查找第三方库文件一格式如github "AFNetworking/AFNetworking",不知道除了github还能用其他网站的行不行,没试过)。 3.库写入了就开始更新了终端输入 carthage update --platform iOS(如果是更新单个的库, 在update后面再库的名字即可, 删除的话可以自己进文件夹删除, 删除cartfile信息), 终端回去下载第三方库,然后编译成二进制的 .dsym 加头文件的 Framework,并添加相关依赖,并且check out 出第三库的workspace相关文件,可以进carthage文件夹查看framework 放在iOS文件夹下, 相关的workspace会放在checkouts文件夹下,为什么有workspace, 因为carthage把你想要用的第三方库打包成了二进制的framework,在工程中使用的时候,你是不能看到具体的代码,可以打开workspace看!)
到这一步已经完成了carthage的第三方库的集成,剩下的就是开发者自己将需要的库导入到文件当中,步骤 点击projectd进入Gengral -> Embedded Binaries -> 点+ ->add other...把carthage文件夹下的iOS文件夹导入, 然后点+, 加入自己需要的第三方库即可
carthage 优点 不去改变project目录, 可以和cocoaPods在同一个工程中共存, 相比cocoaPods不需要每次都去编译,只有需要更新库的时候,加快了编译的速度,不去改变project的配置 , carthage环境搭建比cocoaPos简单,cocoaPods环境搭建较复杂。
carthage缺点 有些第三方库不支持(网上看的查看是否支持,进入github主页 点击Barnch master 看tags是否有版本支持,没有就不支持), carthage只支持iOS8动态库,静态库是用不了的像百度搜索等库无法导入,所以可以结合cocoaPods使用,Carthage 的配置只能让你看到一个库的头文件
相关链接