使自己的iOS开源项目支持Carthage

2017-09-28  本文已影响238人  buptwsg

CarthageCocoaPods是目前业界广泛使用的两个依赖管理工具,几乎所有的知名开源项目,都会选择同时支持这两种工具。这两天在将自己的一个开源项目支持Carthage的过程中,对此工具有了更深的理解,在此记录一下过程和遇到的一些小坑。

原理

Carthage的工作原理和步骤如下:

由于iOS是从8.0才开始支持动态库,所以如果要在项目中使用Carthage管理第三方库的依赖,那么要求你的项目的deployment target必须大于等于8.0。

对自己的开源项目添加Carthage支持

明白了上述原理,那么要想使我们自己的开源项目支持Carthage,那么其实也很简单,步骤如下:

1. 创建framework target

在已有的Xcode工程里,添加一个target,创建的时候选择类型为Cocoa Touch Framework,在弹出的界面中填写Product Name, Embed in Application选None。
Product Name应该填开源项目的名字,例如AFNetworking, SDWebImage这样的。target创建以后,会产生一个umbrella header file,名字和Product Name完全一样。


WechatIMG3.jpeg

2.编辑umbrella header file

在这个文件里,import所有public的头文件。

3.配置framework target

选择 framework target,选中Build Phases,将所有的.m文件拖拽到Compile sources 里面。
注意:
如果使用了Category,那么你需要在Build Settings的Linking的Other Linker Flags里加上-all_load
如果工程支持bitcode,需要在Other C Flags 里加上-fembed-bitcode

4.设置framework target的scheme为Shared

进入到Manage Schemes...里面,勾选Shared复选框。


WechatIMG4.jpeg

5.本地验证framework target

在终端里,键入carthage build --no-skip-current,对framework target进行build,此过程能够验证配置是否有误。
执行结果会保存在工程的 Carthage/Build 文件夹下。
如果没有任何错误信息,那么说明配置是正确的。

6.对仓库打tag

第5步中,验证完没有问题,就可以提交代码,然后打tag,例如1.0.0。

至此,你的开源项目就完美支持Carthage了。可以新建一个测试工程,再次验证。

遇到的一些问题

在配置的过程中,可能遇到如下问题,附解决办法。

上一篇下一篇

猜你喜欢

热点阅读