iOS工程第三方代码包管理
在我们的实际开发过程中,多多少少会去引用别人成熟的代码库,自己完全造轮子这是不现实的。问题来了,怎么把这些第三方代码引入到自己的工程,以前咧,直接拖代码呗,恩~but这得多蛋疼呢~合适的管理代码包工具是很必要的。
现有的在github上的项目主要支持的工具就是Cocoapods,还有一个就是Carthage。Cocoapods的教程非常之多,各位自行面向百度编程,面向谷歌编程 or RTFM。
Carthage
Carthage的github主页为 https://github.com/Carthage/Carthage.git
CocoaPods会直接创建和修改项目的workspace配置,而Carthage的特点是灵活,耦合度不高,集成时不需要集成相应的project,不需要创建workspace,只要依赖打包好的framework文件就可以了。
安装使用Carthage
|
|
安装完成后,执行carthage version
即可看到carthage的版本
接下来就是通过carthage管理第三方库。
cd到你的项目位置,然后使用touch Carfile,创建一个Carfile文件。
使用Xcode打开Carfile,编辑你需要加入的第三方库,要看清楚该第三方库是否支持Carfile哦,一般比较正式的包都会支持的。
在文件中加入:
github “Alamofire/Alamofire” ~> 3.0
版本含义:
|
|
如果你没有指明版本号,则会自动使用最新的版本。
写好后保存文件,执行以下命令:
|
|
carthage会为你下载和编译所需要的第三方库,当命令执行完毕,在你的项目文件夹中会创建一个名为Carthage的文件夹
在 ~/Carthage/Build/iOS里会出现xxx.framework文件已经为你创建好了。
下图就是构件好的framwork显示:
然后把framwork拖入到以下位置,并且构建一个run script,如图所示:
最终你就可以在代码中直接import Alamofire 使用了~~
深坑
这里说个深坑:情景是升级了下Xcode。恩,git 拉项目代码下来,非常nice,模拟器运行的很好,烧真机吧~shit~!闪退~!你会发现报错,framework链接问题,没错,你看到的是链接问题~!模拟器很好,真机很蛋疼。开始以为是Cocoapods的问题,后来换成了Carthage,最后各种排查,这些问题在Stack Overflow上有写但都不适用我的情况!看到有人说可能是证书配置,我在想没动过证书呀,进去钥匙串看一下,发现为什么之前所有的证书都报告来源于非正常的证书颁发机构,最终发现苹果的Apple Worldwide Developer Relations Certification Authority 的证书没有了,应该是更新Xcode的时候被干掉了。。。恶心啊~~!
最终下载Apple Worldwide Developer Relations Certification Authority证书,打包真机,非常nice~~!!世界终于清静,该睡觉了~!