介绍
Carthage
的Github地址: https://github.com/Carthage/Carthage
文件结构
在项目目录下有三个文件,Cartfile
描述文件,Cartfile.resolved
文件和Carthage
文件夹。
Cartfile
描述文件: 添加想要集成的第三方库。支持两种类型的源
Cartfile.resolved
文件:该文件列出了每个第三方库的版本,确保其他人构建第三方库的时候版本相同。主要是针对版本库协同开发使用。
Carthage
文件夹:存放构建好的第三方库的framework包和符号文件(.dSYM)。
原理
根据Cartfile
描述文件下载第三方库到本地,再使用xcodebuild
构建framework
文件。最后手动集成这些库到项目中。
Carthage和Podfile虽然都是包管理器,但Carthage
使用的是一种非侵入性的方式集成第三方库。
特点
- 轻量;
- 非侵入性;不会对项目结构进行改动,相应的也就是需要手动将第三方库的
framework
文件手动集成到项目中。 - 去中心化;不像
CocoaPods
由中心服务器对包进行管理,因而包管理不再强依赖中心服务器信息量和稳定性,相应的也无法对第三方库进行索引。
使用Carthage
使用Carthage添加第三方库
新建Cartfile描述文件
项目文件夹下新建描述文件。
添加第三方库
Cartfile
中的格式如下:
|
|
下载第三方库
执行该命令,Carthage
就会从该github地址下载第三方库,然后使用xcodebuild
构建第三方库。操作完成后,会在项目根目录下生成Carthage
目录。
|
|
手动集成
General
—>Linked Frameworks and Libraries
中添加项目根目录下Carthage/Build/iOS目录下的framework文件;或者Build Settings
—>Search Paths
—>Header Search Paths
添加“$(SRCROOT)/Carthage/Build/iOS/ObjectiveGit.framework/Headers/”。Build Phrases
点击左上角New Run Script Phrase
:Build Settings
->Header Search Paths
添加”$(SRCROOT)/Carthage/Build/iOS/ObjectiveGit.framework/Headers”,在脚本区域输入/usr/local/bin/carthage copy-frameworks
, 最后在Input Files
区域添加$(SRCROOT)/Carthage/Build/iOS/ObjectiveGit.framework
。(ps:该操作的目的是为了运行时能够找到该framework
)最终效果如图所示:
[optional]
Build Phrases
点击左上角New Copy Files Phrase
, 然后将Carthage/Build/iOS目录下的二进制库的符号文件(ObjectiveGit.framework.dSYM)拖入。(Ps:该操作的目的是为了能在调试时查看内部代码)。如果该操作导致编译出错,需修改Build Settings
—>Deployment
—>Strip Debug Symbols During Copy
为NO。该设置为YES代表不对Copy的符号文件处理,Xcode8默认是YES。
更新Carthage第三方库
更改Cartfile
,修改第三方库对应版本,然后在命令行执行
|
|
安装Carthage
Homebrew
前提是已经安装了brew
,没有安装的可以上网找下步骤,或者官网也提供了安装步骤。
|
|
Installer
从Github上的releasehttps://github.com/Carthage/Carthage/releases下载pkg包,双击即可安装。