原创文章转载请注明出处
Carthage去中心化的特点使得我们可以管理依赖任意一个github上的代码仓库。有些时候对开源代码库的修改是自己的独特的需求,提交PR往往不会通过审核,那么我们就将该仓库fork出来,然后将本地的修改提交到github上,再配置Cartfile就可以了。
以KVNProgress这个库举例,这个库是我很喜欢的一个Progress HUD库,但是其本身不支持纯文本类似Android Toast的提示。于是我将这个库fork出来,对其中的代码做了一点小修改。
Paste_Image.png如果用CocoaPods,每次更新都要手动去修改这行代码,所以我就把自己的仓库配置成支持Carthage,工程中创建一个动态库的目标KVNProgressFramework。
注意:需要暴露的头文件要集中import到一个.h文件中,也就是所谓的umbrella .h
,这方面KVNProgress的原生库做得不错,IQKeyboardManager的开发者就显得经验不足。
其他配置如下:
Paste_Image.png 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。
我是咕咕鸡,一个还在不停学习的全栈工程师。
热爱生活,喜欢跑步,家庭是我不断向前进步的动力。
网友评论