最近使用 Xcode8
适配 iOS10
,CocoaPods
暴露出很多问题,于是在新版本中尝试使用 Carthage
进行包管理,这里仅记录使用方法。
安装方法:
- 官方给出了
Homebrew
的安装方法,不过有一句要注意:
Alternatively only on Xcode 7.x, you can use Homebrew and install the carthage tool on your system simply by running brew update and brew install carthage.
基于上述,我们采用直接下载安装 Carthage.pkg.
使用方法:
和 CocoaPods
不同的时我没有找到类似 pod search xxx
的搜索方法,目前只有在 Github 的库主页找到相应的版本号。
cd
到项目目录下。vim Cartfile
以
Alamofire 4.0
为例,写入1
github "Alamofire/Alamofire" ~> 4.0
保存退出。
运行
carthage update --platform ios
。--platform ios
可以免除等待编译可能有的OS X
tvOS
包的等待时间。没有错误的话基本上目录结构如图,多说一句,在我运行
update
命令是有很多和Xcode7
插件相关的警告 log 信息,我选择到~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/
目录下删除所有插件。
Cartfile:文件用来标注你需要哪些依赖库,对应版本或者 Git 分支(需要提交到 Git)。
Cartfile.resolved:文件用来跟踪项目当前所用的依赖版本号,为了保持多端开发一致(需要提交到 Git)。
Carthage:文件夹用来存放依赖库的源文件和编译后的文件(不需要提交到 Git,可以修改.gitignore文件,增加忽略 Carthage 文件夹就行了。
- 设置Xcode自动搜索Framework的目录
1
Target—>Build Setting—>Framework Search Path—>添加路径"$(SRCROOT)/Carthage/Build/iOS"
- 添加编译的额外脚本
1
Target—>Build Phases —>”+”—>New Run Script Phase—>添加脚本"/usr/local/bin/carthage copy-frameworks"
- 添加文件
1
Input Files—>添加路径"$(SRCROOT)/Carthage/Build/iOS/库名.framework"
这样就可以在项目哪正常使用了。管理版本和删除更改也很方便,推荐使用。
10.12 更新:
发现 Carthage
编译的 .framework
文件不支持 @IBInspectable
和 @IBDesignable
……有点蛋疼。 在使用类似 IBAnimatable
类似框架时,无法在 storyboard
/xib
进行操作。
11.24 更新
如果要使自己的开源轮子支持 Carthage
, 参见 使自己的Framework支持Carthage