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的开发者就显得经验不足。

其他配置如下:

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,099评论 8 183
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,242评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,915评论 18 139
  • 假如当时我没有醒来,世界与我再也无关。生命太脆弱了,活着真好。 这个春节假期,回老家一周,然后又是一阵阵感慨。先是...
    _浅墨_阅读 302评论 0 1
  • 2017年4月9日 星期日 晴 今天,我坐大巴车去厦门的天竺山风景区。那里山清水秀,风景如画!很多学佛的人都跟着我...
    黄浚铠阅读 256评论 1 3