iOS工程第三方代码包管理

iOS工程第三方代码包管理

在我们的实际开发过程中,多多少少会去引用别人成熟的代码库,自己完全造轮子这是不现实的。问题来了,怎么把这些第三方代码引入到自己的工程,以前咧,直接拖代码呗,恩~but这得多蛋疼呢~合适的管理代码包工具是很必要的。
现有的在github上的项目主要支持的工具就是Cocoapods,还有一个就是Carthage。Cocoapods的教程非常之多,各位自行面向百度编程,面向谷歌编程 or RTFM。

Carthage

Carthage的github主页为 https://github.com/Carthage/Carthage.git

CocoaPods会直接创建和修改项目的workspace配置,而Carthage的特点是灵活,耦合度不高,集成时不需要集成相应的project,不需要创建workspace,只要依赖打包好的framework文件就可以了。

安装使用Carthage

1
sudo brew install carthage

安装完成后,执行carthage version
即可看到carthage的版本

接下来就是通过carthage管理第三方库。
cd到你的项目位置,然后使用touch Carfile,创建一个Carfile文件。
使用Xcode打开Carfile,编辑你需要加入的第三方库,要看清楚该第三方库是否支持Carfile哦,一般比较正式的包都会支持的。
在文件中加入:

github “Alamofire/Alamofire” ~> 3.0

版本含义:

1
2
3
4
5
~> 3.0 表示使用版本3.0以上但是低于4.0的最新版本,如3.5, 3.9
>== 3.0 表示使用3.0版本
>= 3.0表示使用3.0或更高的版本

如果你没有指明版本号,则会自动使用最新的版本。
写好后保存文件,执行以下命令:

1
carthage update --platform iOS

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~~!!世界终于清静,该睡觉了~!