- 安装carthage
首先安装brew (Homebrew installs the stuff you need that Apple didn’t) 终端命令行输入:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
其次,升级brew: brew update
然后,开始安装carthage :brew install carthage
2.使用carthage
终端cd到自己的工程目录,运行touch cartfile(新建一个cartfile文件) ,然后在文件中输入:github "Alamofire/Alamofire"(以Alamofire框架为例子),保存退出(esc,:,wq)终端运行carthage update(如果只需要iOS平台的库,可使用carthage update --platform iOS),update结束后发现工程多了cartfile.resolved文件(这个文件是执行carthage update命令后生成的依赖关系)和carthage 文件夹,carthage/checkouts里面是框架的源码,carthage/build里是已经将框架编译成.framework静态库的库文件,iOS/Mac/tvOS/watchOS一应俱全。
2.集成框架到工程中
如果是目标工程是 iOS 应用:
first,将框架导入工程:在 Xcode 的目标应用程序 target 的 General设置标签中的 Linked Frameworks and Libraries 区域,将目标框架从 Carthage.build 文件夹拖拽进去或添加进去。
second,配置“run script“,方法如下:在 Xcode 的目标应用程序 target 的 Build Phases 添加新脚本 New Run Script Phase 输入内容:/usr/local/bin/carthage copy-frameworks
input Files处输入为:$(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa(库名).framework 对应为原工程目录 / Carthage/Build/iOS/xxx.framework文件。
3.了解文件
carfile:文件用来标注你需要哪些依赖库,对应版本或者Git分支(需要提交到Git)
cartfile.resolved:文件用来跟踪项目当前所用的依赖版本号,为了保持多端开发一致(需要提交到Git)
carthage:文件夹用来存放依赖库的源文件和编译后的文件(不需要提交到Git,可以修改.gitignore文件,增加忽略carthage文件夹就行了:#carthage carthage)
4.问答
1》 最近更新了Xcode8.3,swift语法升级到了3.1,然后一些框架编译报错说框架编译的环境是swift3.0.2,如何解决?
答:使用这个命令更新框架:carthage update --platform iOS --no-use-binaries 因为添加了 --no-use-binaries 之后就取消carthage预编译框架,转而使用本地环境编译,这样就会适应到本地的swift语言版本,然后把新生成的framework重新拉入项目中
2》Carthage导入第三方时候会显示编译OSX、Mac、iOS等很耗时,怎样能只选择一种呢?
答:carthage build --platform iOS
3》Homebrew
答:它是一个包管理工具,carthage只是其中的一种工具而已。
常见命令:
安装软件:brew install 软件名
搜索软件:brew search 软件名
卸载软件:brew uninstall 软件名
更新所有软件:brew update
更新具体软件:brew upgrade 软件名
4》版本号的说明
~> 3.0 表示使用版本3.0以上但是低于4.0的最新版本,如3.5, 3.9
== 3.0 表示使用3.0版本
= 3.0表示使用3.0或更高的版本
如果你没有指明版本号,则会自动使用最新的版本
5》打自定义静态库包
答:在项目的根目录里打开终端,运行carthage build --no-skip-current,运行后,会在Carthage/Build/iOS/的目录中生成framework,再用生成的framework和dsym 文件拖到项目中(或替换之前的老的)