新接手一个项目,项目使用Carthage集成,所以就开始使用Carthage了.
使用Brew安装(软件包管理工具Homebrew)
1.安装之前检查Mac中是否有Ruby环境,终端输入
ruby -v
如果有安装则显示ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]
2.检测是否有安装Homebrew
brew -v
以安装提示如下:Homebrew 1.6.1 Homebrew/homebrew-core (git revision 73e7; last commit 2018-04-16)
3.如果电脑没有安装Brew,在终端输入:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装失败了四五次才成功
4.安装完成后更新
brew update
5.使用brew安装carthage
brew install carthage
或者直接下载pkg文件:https://github.com/Carthage/Carthage/releases 进行安装即可
版本指定
Carthage 支持以下几种版本指定方法:
= 1.0 代表 “最低 1.0版本”
~> 1.0 代表 “表示使用版本1.0以上但是低于2.0的最新版本,如1.5, 1.9”
== 1.0 代表 “必须是 1.0 版本”
"some-branch-or-tag-or-commit"指定一个 Git 对象 (任何被 git rev-parse 允许的)
如果没有版本要求,任何版本的依赖是允许的。
Carthage的使用:
1.在终端cd 进入项目文件
$ cd 进入项目文件
- 创建一个名为Cartfile的文件(注意首字母大写),并进入编辑
$ vim Cartfile
或者创建一个空的文件,创建好之后双击打开,选择Xcode打开进行编辑
$ touch Cartfile
3.在 Cartfile 文件中,引入一个第三方库,比如 Cartography :
$ github "robb/Cartography" ~> 2.0.0
4.输入完毕后 esc - :wq保存并退出 Vim Cheat Sheet
$ :wq
5.返回命令界面,再次输入命令进行更新
$ carthage update
注:单独更新某个库
carthage update --no-use-binaries Cartography
紧接着,Carthage 就会开始抓取并使用 xcodebuild 构建第三方库:
*** Fetching Cartography
*** Checking out Cartography at "2.1.0"
*** xcodebuild output can be found in /var/folders/m2/cl4p57hx5yzbt77r8t8d_0rm0000gn/T/carthage-xcodebuild.C1Udv1.log
*** Building scheme "Cartography-iOS" in Cartography.xcworkspace
*** Building scheme "Cartography-tvOS" in Cartography.xcworkspace
*** Building scheme "Cartography-Mac" in Cartography.xcworkspace
update 操作完成后,会在项目的根目录中生成一个 Carthage 目录。这个目录中又包含了两个目录 Build 和 Checkout。
Build 中存放的是构建好的 framework 包,Checkouts 中存放的是签出的第三方库项目源文件:
6.接下来,我们回到项目设置,进入 General 选项卡,在最下方的 Linked Frameworks and Libraries 中,将 Carthage/Build/iOS 中的 framework 文件添加到项目中: 添加framework.png 7.然后在 Build Phrases 中,点击左上角的 + 号,添加一个 New Run Script Phrase: 添加 New Run Script Phrase.png
8.在脚本区域中输入,如上图
/usr/local/bin/carthage copy-frameworks
9.最后将 Cartography 的路径添加到 Input Files 中.如上图
$(SRCROOT)/Carthage/Build/iOS/Cartography.framework
注:添加这个 Run Script 的作用是为了让运行时能够找到这个动态库。这点 Carthage 官方文档中没有太明确的说明。
参考文档
1.Carthage 包管理工具,另一种敏捷轻快的 iOS & MAC 开发体验
2.iOS第三方库管理工具Carthage的使用心得
3.Carthage安装和使用教程
4.如何使用Carthage来管理iOS三方库
网友评论