0%

Carthage使用

最近使用 Xcode8 适配 iOS10CocoaPods 暴露出很多问题,于是在新版本中尝试使用 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 的库主页找到相应的版本号。

  1. cd 到项目目录下。

  2. vim Cartfile

  3. Alamofire 4.0 为例,写入

    1
    github "Alamofire/Alamofire" ~> 4.0

    保存退出。

  4. 运行 carthage update --platform ios--platform ios 可以免除等待编译可能有的 OS X tvOS包的等待时间。

  5. 没有错误的话基本上目录结构如图,多说一句,在我运行 update 命令是有很多和 Xcode7 插件相关的警告 log 信息,我选择到 ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ 目录下删除所有插件。

Cartfile:文件用来标注你需要哪些依赖库,对应版本或者 Git 分支(需要提交到 Git)。

Cartfile.resolved:文件用来跟踪项目当前所用的依赖版本号,为了保持多端开发一致(需要提交到 Git)。

Carthage:文件夹用来存放依赖库的源文件和编译后的文件(不需要提交到 Git,可以修改.gitignore文件,增加忽略 Carthage 文件夹就行了。

  1. 设置Xcode自动搜索Framework的目录
    1
    Target—>Build Setting—>Framework Search Path—>添加路径"$(SRCROOT)/Carthage/Build/iOS"
  2. 添加编译的额外脚本
    1
    Target—>Build Phases —>”+”—>New Run Script Phase—>添加脚本"/usr/local/bin/carthage copy-frameworks"
  3. 添加文件
    1
    Input Files—>添加路径"$(SRCROOT)/Carthage/Build/iOS/库名.framework"

这样就可以在项目哪正常使用了。管理版本和删除更改也很方便,推荐使用。

10.12 更新:
发现 Carthage 编译的 .framework 文件不支持 @IBInspectable@IBDesignable ……有点蛋疼。 在使用类似 IBAnimatable 类似框架时,无法在 storyboard/xib 进行操作。

11.24 更新
如果要使自己的开源轮子支持 Carthage, 参见 使自己的Framework支持Carthage

欢迎关注我的其它发布渠道