使用Carthage管理iOS三方库

刚搭建了一个公司项目,因为这次是swift创建的新工程,所以就想到了使用Carthage来管理三方库.

 在这里可能很多人会有疑问,自己一直用的CocoaPods,感觉用起来很方便,为什么要使用carthage呢? 下面我说下两者的区别,方便读者更好的了解**Carthage**这个工具,了解到它的强大之处。

  说到Carthage,就要先说swift,2014年苹果发布swift初期,用swift编写的第三方库只能通过拖动源代码到自己的项目中才能被调用, 由于当时只有寥寥无几的开源库,且不能打包,加上swift1.0并没有那么友好,许多人对swift持着观望的态度。随着swift逐步趋于稳定,并且从ios8.0开始支持将自己写的swift打包成framework,越来越多的纯**swift**编写框架开始出现,就在这时候Carthage突然出现在人们的视野中,而且陆陆续续几乎所有的开源框架都开始支持carthage。

Carthage的github主页为 Carthage , 里面其实对大家的疑问都有着详尽的解答,介于一些朋友英文不太好,这里我就用中文介绍一下Carthage和CocoaPods的不同:

  首先,CocoaPods会直接创建和修改项目的workspace配置,一切都是为了便捷,我们只需要修改pod文件并不需要过多的关心其他事情,CocoaPods创建的是高度集成的项目。 而Carthage的特点是灵活,耦合度不高,集成时**不需要集成相应的project**,不需要创建workspace,而仅仅需要依赖打包好的framework文件即可。

  其次,CocoaPods相对来说功能要比Carthage多很多,在国内由于墙的原因,我们都改成了淘宝的源来更新CocoaPods,相信我,如果你不翻墙,很多东西还是不能用,更新不下来,版本错误等一系列原因会让你不得不放弃一些看起来非常好用的第三方库。而Carthage似乎只需要从github上下载项目即可,配置更是简单,使用的时候项目干干净净,所有的第三方库就像**苹果原生的framework一样美好**,从此你不再需要担新CocoaPods的库用不了,不用花大量时间去修复用CocoaPods打包时出现的各种问题,如果你用过CocoaPods,当你开始用Carthage的时候,你会爱上这个工具的。

安装使用Carthage

说完carthage的好处,相信大家已经迫不及待的想要使用了,接下来我详细给大家说下carthage的安装过程.

1.下载carthage

打开终端,输入如下指令:

            **$ brew update**

            **$ brew install carthage**

如果你不喜欢使用终端,也可以从网站[Releases · Carthage/Carthage · GitHub](https://github.com/Carthage/Carthage/releases)下载最新版的Carthage.pkg来更新。

2.查看是否安装好及版本

           **$ carthage version**
image

3.进入项目创建文件夹

通过终端进入到项目所在的文件夹 **$ cd-/Path/Project**  这里换成自己具体项目所在路径(我一般的做法就是直接把项目拖进终端即可)

创建一个空文件夹,  **$ touch Cartfile,**这时候项目文件下就有一个名为Cartfile的文件夹

4.打开文件夹添加库信息

使用xcode打开cartfile文件 **$ open -a Xcode Cartfile**

在打开的文件中添加所需要的三方库,如:

image

这里说一下后面版本的意思:

~> 3.0 表示使用版本3.0以上但是低于4.0的最新版本,如3.5, 3.9

== 3.0 表示使用3.0版本

>= 3.0表示使用3.0或更高的版本

如果你没有指明版本号,则会自动使用最新的版本

5.保存并关闭cart file文件

    **$ carthage update --platform iOS**

carthage会为你下载和编译所需要的第三方库,当命令执行完毕,在你的项目文件夹中会创建一个名为Carthage的文件夹

在 ~/Carthage/Build/iOS里会出现xxx.framework文件已经为你创建好了。

6.关联framework

现在打开你的项目,点击project,选择target, 再选择上方的General,将需要的framework文件拖到 Linked frameworks and Binaries内
image

7.添加 Run Script

image

这样就集成了carthage

你可能感兴趣的:(使用Carthage管理iOS三方库)