代码改变世界

发布自定义模块的方式

2017-02-06 23:37  v2m  阅读(456)  评论(0编辑  收藏  举报

最近开源了一个重按手势识别的类,顺便研究了一下如何发布到现有的第三方代码仓库中,记录了一下主要流程。

一、CocoaPods

  1. 打tag

    CocoaPods依赖仓库的tag去拉取对应的代码,所以在完成了本地的开发后,需要提交一个正确的版本,打上对应的tag。

  2. 创建说明文件

    pod spec create [PodName]
    

    这会生成一个 PodName.podspec 文件,用于说明我们的库的 作者、地址、包含文件、开源协议、依赖、版本等。具体可以看官方说明

  3. 验证说明文件

    pod spec lint PodName.podspec
    
  4. 保存到本地验证

  5. 注册Trunk

    pod trunk register EMAIL ‘NAME’ --description=‘SOME DESCRIPTION’
    
  6. 发布到公网

    pod trunk push
    

二、Carthage

  1. 新建一个dynamic framework
    carthage官方只支持动态framework,这个需要iOS8以上版本。所以我们要把我么的库建立一个新的scheme

  2. 把framework的scheme变成shared
    这里有个注意点就是,一般我们的.gitignore文件会过滤掉 .xcodeproj/xcshareddata/xcschemes 文件夹,所以要注意添加上去,否则代码库中的scheme也不是shared。

  3. 测试
    运行下面的命令来检测是否能正确编译。

    carthage build --no-skip-current
    
  4. 安装travis

    gem install travis
    
  5. 设置travis-ci
    按照这个页面使用github账号登录,并且把对应的想变异的库的代码库开关打开。

  6. 创建配置文件.travis.yml
    在本地代码库中创建配置文件.travis.yml。格式见参考3.

  7. 运行脚本

        travis setup releases
    

    这会有个交互页面让你填github的账号密码,以及仓库名等。
    运行后,上面6的配置文件会多出一些配置项。

  8. 修改配置
    最后把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