iOS开发进阶 - 使用Carthage管理iOS第三方库
2018-03-29 11:07
239 查看
分享之前推荐一个iOS5000人开发交流群:319819749需要进阶的老铁欢迎加入,群内不定期分享干货
最近在研究 Swift ,一不小心发现一个好的的管理iOS第三方库 Carthage ,就跟第一次使用 CocoaPods 时一样兴奋不已,在研究了大半天后终于能用了,使用起来还是很方便的,比起 CocoaPods 有不足也有优点,两个配合起来用也是很爽的^ - ^初识 Carthage最近在用 Swift3.0 做项目,想导入一些支持 Swift3.0 的第三方库来使用,就想到 Alamofire ,看 README 时发现了一个新的名词 Carthage ,What?,这是个什么东西,居然也可以用它来管理第三方库,之前都没见到过,赶紧百度了一下补充了下知识:Carthage:迦太基(地中海地区古城),好吧这是百度百科的解释,至于为什么用这个单词,我也不太清楚,可能比较屌吧,看下图你就知道它是用来干什么的了:
Carthage的目标是用最简单的方式来管理Cocoa第三方框架是的,你没看错,它可以用来管理第三方库 Alamofire ,然后查了一下,还有很多第三方库都可以用它来管理,跟 CocoaPods 一样可以用来管理第三方库,看了一下它的崛起时间大概是iOS8之后 Swift 出来的时候,与现在流行的 CocoaPods 不同,它是一个去中心化的解决方案。 CocoaPods 的方法更易于使用,但 Carthage 更灵活并且是非侵入性的。大家都知道 Swift 是支持动态库的,所以 Carthage 应势而生,它没有总项目的列表,这能够减少维护工作并且避免任何中心化带来的问题)。不过,这样也有一些缺点,就是想修改第三方库源码的话很费劲,还需要重新编译打包。安装和使用Carthage首先到 github 上Download或者Clone Git 或者使用 HomeBrew (没有安装的可以自行百度去装一个)安装~brew update #先更新brew install carthage #安装Carthage当你安装好Carthage后,在终端执行来判断是否安装成功:carthage version即可看到当前的 Carthage 版本, 当我写这篇文章的时候, Carthage 的版本为0.18(还是很年轻的嘛) 。现在,你已经安装好了 Carthage ,接下来就是在你的项目中使用carthage了:vim Cartfile #创建一个叫Cartfile的文件输入你想要编译成Framework的 Swift 第三方库,比如说 SnapKit 和 Alamofire ,如下所示:github "Alamofire/Alamofire" ~> 4.0 #支持Swift3.0github "SnapKit/SnapKit" ~> 3.0 #支持Swift3.0github代表源,而后面的就是用户名和版本库的名字,而”~>” 后面是版本号哈!保存退出,执行:carthage update --platform iOS #因为是打包iOS的所以后面加iOS,有的库支持mac、watch的话会打几个包之后会发现在跟目录下多出了 Carthage 文件夹和 Cartfile.resolved 文件。进入 Carthage/Checkouts 下可以看到刚刚得到的 Alamofire 和 SnapKit ,如下图所示:
现在打开你的项目,点击 project ,选择 target , 再选择上方的 General ,将需要的 framework 文件拖到 Linked frameworks and Binaries 内:
然后这是很重要的一步,点击 Build Phrase tab 选项,添加相应的 run script :/usr/local/bin/carthage copy-frameworks$(SRCROOT)/Carthage/Build/iOS/你的framework
然后就可以去项目里面 import 你得第三方库了~~可以愉快的使用了,不过有一点要吐槽一下 build 的速度真是有点慢- . -CocoaPods的优势与劣势优势使用方便,除编写 Podfile 以外其他几乎都是自动完成;软件包数量多,主流支持;支持 iOS 8 Framework,当然也支持旧的静态编译;开发者使用比较简单,但是如果创建兼容 CocoaPods 的库,就会相对繁琐一些(尽管有了命令行)~劣势每次clean后都得重新编译,编译比较耗时,Archive也会变慢;每次更新环境都需要连接到中心仓库,比较耗时~Carthage的优势与劣势优势build一次后就能在项目里面使用,增加编译速度;可以与 CocoaPods 无缝集成;它是去中心化的,没有中心服务器,这意味着每次配置和更新环境,只会去更新具体的库,而不会有一个向中心服务器获取最新库的索引这么个过程,如此一来,又省了很多时间;不会影响你的项目配置的,相对 CocoaPods 而言更加独立,Carthage 使用的是一种非侵入性的哲学;劣势库依然不如 CocoaPods 丰富:尽管很多库不需要声明并改造就直接可以被 Carthage 用,但依然有大量 CocoaPods 能用的库不支持,我相信时间能解决这个问题;只支持 Framework,所以是 iOS 8 Only 了,随着时间推移,这个也不会是问题;无法在 Xcode 里定位到源码:如果你在写代码过程中,想跳转到一个第三方库去看具体的实现,这是无法办到的,Carthage 的配置只能让你看到一个库的头文件~总结我觉得不管怎样,好不好用,做为iOS程序员我们都应该去尝试的了解一下它,通过它去学到更多的东西,至于什么第三方库用 CocoaPods ,什么去用 Carthage ,我觉得一些比较稳定大的库可以用 Carthage ,而一些变动比较大,自己还有可能去修改的库我们肯定首选 CocoaPods 。最后希望大家看到这篇博客能学到东西,大家有问题可以提出来,谢谢大家的阅读~~
相关文章推荐
- iOS开发进阶 - 使用Carthage管理iOS第三方库
- iOS开发进阶 - 使用Carthage管理iOS第三方库
- iOS开发 使用Cocoapods管理第三方类库
- iOS开发中使用CocoaPods来管理第三方的依赖程序
- 使用Carthage管理iOS第三方库
- iOS高效开发 —— 管理第三方框架工具 CocoaPods使用
- 关于cocoapods的使用(管理ios开发第三方类库)
- iOS开发遇到的坑之六--使用cocopods管理第三方库时,编译出现Library not found for -lPods问题的解决办法
- Objective-C ,ios,iphone开发基础:使用第三方库FMDB连接sqlite3 数据库,实现简单的登录
- 使用CocoaPods管理iOS第三方库
- Xcode 5.0 下载,安装,使用 & iOS开发 -应用管理使用 xib及mvc封装
- IOS项目使用COCOAPODS管理第三方库(使用文本编辑)
- Objective-C ,ios,iphone开发基础:使用第三方库FMDB连接sqlite3 数据库,实现简单的登录
- iOS 社会化分享 第三方开发包ShareSDK使用
- 使用CocoaPods管理iOS的第三方类库
- iOS开发之Sqlite 第三方库FMDB的使用
- 使用CocoaPods管理iOS的第三方类库
- ios开发中经常使用的第三方库
- 【iOS开发】---- CocoaPods:管理Objective-c 程序中各种第三方开源库关联
- ios开发之使用bundle来管理资源文件