给自己项目添加 Carthage 支持的方法
可以帮助你方便的管理第三方依赖,它会把三方依赖编译成 framework ,以 framework 的形式将三方依赖加入到项目中进行使用和管理。
首先:
- 安装 Carthage
a、在GitHub下载 Carthage.pkg 进行安装 - Homebrew
b、brew update ;brew install carthage
配置:
如果你的 framework target 名称与你想要打包构建的 framework 名称不一致,选中 Build Settings 选项卡,搜索 Packaging ,把 Produce Module Name 和 Produce Name 改成你想要构建的 framework 名称
如果你使用了类别,那么你需要在 Build Settings 的 Linking 的 Other Linker Flags 里加上 -all_load
如果你想你的工程支持 bitcode ,需要在 Other C Flags 里加上 -fembed-bitcode
由于 Carthage 在 build 时,会自动将设置为 Shared 的 framework target 构建成 framework ,所以需要单击顶部 target ,在弹出选项中选中 Manager Schemes ,将 framework target 的 Shared 选项选中
进行 framework 构建
打开终端 cd 到工程目录下,执行以下命令开始打包 framework ,执行完成后会自动将 framework 文件保存在工程的 Carthage/Build 文件夹下
carthage build --no-skip-current
然后将生成的 framework 文件拖进测试项目进行测试即可
发布并打上 tag
测试没问题后,将工程 push 并打上 tag 即可,tag 名称必须是版本号
git tag 1.0.0
git push --tags
这样你的项目就已经支持 Carthage 了,其他开发者就可以使用 Carthage 来管理你的项目依赖了,只需要将 framework 工程 push 上去即可,打包生成的测试 framework 文件不需要 push
使用 Cathage 依赖第三方库
创建并编辑 Cartfile
在工程目录下创建一个名为 Cartfile 的文件,可以使用以下命令创建
touch Cartfile
更新并构建 framework
编辑完成后,在终端中 cd 到 Cartfile 所在目录下,执行以下命令构建第三方库的 framework
carthage update --platform iOS
执行完成后会自动将第三方库 clone 到 Carthage/Checkouts 文件夹下,然后会自动打包成相应的 framework 文件,打包完的文件会保存在 Carthage/Build 文件夹下
工程配置
打开工程 target 的 General 配置,将 Carthage/Build 下生成的 framework 文件拖拽到 Linked Frameworks and Libraries
打开工程 target 的 Build Phases 配置,点击 + 选择 New Run Script Phase ,创建一个 Script ,添加以下内容
/usr/local/bin/carthage copy-frameworks
然后添加相应的内容到下面的 Input Files
$(SRCROOT)/Carthage/Build/iOS/xxx.framework
这个脚本是为了处理 App Store 提交的 bug,解决 App 因为使用的 frameworks 包含二进制图像的 iOS 模拟器在提交 App Store 时会被自动拒绝的问题
Cathage 的目录结构
在使用 Carthage 管理 frameworks 时,工程根目录下与 Cartfile 同级的会存在 Cartfile.resolved 文件和
Carthage 文件夹,Carthage 文件夹又包含 Build 和 Checkouts两个文件夹
-
Cartfile.resolved文件
包含已经添加的 frameworks 信息,包括依赖名称和当前使用的版本信息 -
Checkouts 文件夹
包含所有 frameworks 源码信息,在执行 carthage build 时,会直接使用里面的 project 或者 workspace 相应的 scheme 来构建相应的 framework -
Build 文件夹
包含所有的二进制构建结果,包括 .framework 二进制文件和 .dSYM 等文件