Carthage使用技巧

原创文章转载请注明出处

Carthage去中心化的特点使得我们可以管理依赖任意一个github上的代码仓库。有些时候对开源代码库的修改是自己的独特的需求,提交PR往往不会通过审核,那么我们就将该仓库fork出来,然后将本地的修改提交到github上,再配置Cartfile就可以了。

KVNProgress这个库举例,这个库是我很喜欢的一个Progress HUD库,但是其本身不支持纯文本类似Android Toast的提示。于是我将这个库fork出来,对其中的代码做了一点小修改。

Paste_Image.png

如果用CocoaPods,每次更新都要手动去修改这行代码,所以我就把自己的仓库配置成支持Carthage,工程中创建一个动态库的目标KVNProgressFramework。

注意:需要暴露的头文件要集中import到一个.h文件中,也就是所谓的umbrella .h,这方面KVNProgress的原生库做得不错,IQKeyboardManager的开发者就显得经验不足。

其他配置如下:

Carthage使用技巧_第1张图片
Paste_Image.png
Carthage使用技巧_第2张图片
Paste_Image.png

然后执行以下命令测试一下

carthage build --no-skip-current

*** xcodebuild output can be found in /var/folders/lg/qjd2fxnj31v8rjzwkr46kmc00000gn/T/carthage-xcodebuild.Z5xYk2.log
*** Building scheme "KVNProgress-framework" in KVNProgress.xcodeproj

打包这个framework到工程中替换原有的库,看看是否可以使用。
通过测试就可以在Cartfile里面加上自己的仓库了。

github "https://github.com/chenjsa/KVNProgress.git"

如果原作者的代码更新了怎么办?这就涉及到git仓库的合并了,请移步Github的文档Syncing a fork

我是咕咕鸡,一个还在不停学习的全栈工程师。
热爱生活,喜欢跑步,家庭是我不断向前进步的动力。

你可能感兴趣的:(Carthage使用技巧)