最近开源了一个重按手势识别的类,顺便研究了一下如何发布到现有的第三方代码仓库中,记录了一下主要流程。
一、CocoaPods
-
打tag
CocoaPods依赖仓库的tag去拉取对应的代码,所以在完成了本地的开发后,需要提交一个正确的版本,打上对应的tag。
-
创建说明文件
pod spec create [PodName]
这会生成一个
PodName.podspec
文件,用于说明我们的库的 作者、地址、包含文件、开源协议、依赖、版本等。具体可以看官方说明。 -
验证说明文件
pod spec lint PodName.podspec
-
保存到本地验证
-
注册Trunk
pod trunk register EMAIL ‘NAME’ --description=‘SOME DESCRIPTION’
-
发布到公网
pod trunk push
二、Carthage
-
新建一个dynamic framework
carthage官方只支持动态framework,这个需要iOS8以上版本。所以我们要把我么的库建立一个新的scheme -
把framework的scheme变成shared
这里有个注意点就是,一般我们的.gitignore
文件会过滤掉.xcodeproj/xcshareddata/xcschemes
文件夹,所以要注意添加上去,否则代码库中的scheme也不是shared。 -
测试
运行下面的命令来检测是否能正确编译。carthage build --no-skip-current
-
安装travis
gem install travis
-
设置travis-ci
按照这个页面使用github账号登录,并且把对应的想变异的库的代码库开关打开。 -
创建配置文件.travis.yml
在本地代码库中创建配置文件.travis.yml
。格式见参考3. -
运行脚本
travis setup releases
这会有个交互页面让你填github的账号密码,以及仓库名等。
运行后,上面6的配置文件会多出一些配置项。 -
修改配置
最后把7得到的脚本做个修改,以后每次修改tag,就会自动更新了。on: repo: repo/repo
skip_cleanup: true on: repo: repo/repo tags: true
参考1.https://cocoapods.org
参考2.http://www.cocoachina.com/ios/20160301/15459.html
参考3.https://github.com/Carthage/Carthage#supporting-carthage-for-your-framework
参考4.https://docs.travis-ci.com/user/getting-started/
参考5.http://stackoverflow.com/questions/35054788/carthage-no-shared-framework-schemes-for-ios-platform-for-my-own-framework