iOS 模块组件化的自动化实现

作者: 敲代码的树懒 | 来源:发表于2017-04-05 17:23 被阅读1339次
    上一篇文章,介绍了怎么开发一个私有的模块供他人使用,这一篇讲一下怎么自动化的实现一个模块的更新。
    先来看一下,手动更新一个模块都需要做哪些工作。
    • pod install 然后修改代码
    • 修改podspec,升级版本号
    • git add .
    • git commit -m 'xx'
    • git push origin
    • git tag -a xx -m 'xxx'
    • git push --tags
    • pod repo push XXXSpecs XXX.spec 对spec文件进行验证&提交
    有没有可能,一行代码就实现上面所有的步奏呢,答案是可以的,我们可以通过fastlane,创建一个自动化的ruby的脚本来实现上面的步奏。下面的一篇简单的介绍
    http://icyleaf.com/2016/07/fastlane-in-action/?utm_source=tuicool&utm_medium=referral
    1,首先,安装fastlane
     brew update
     brew install ruby 要求ruby版本最新
     sudo gem install fastlane 
    
    安装成功后,可以通过在终端输入fastlane查看相关信息
    图片.png
    2,cd 进入项目的根目录
     fastlane init
    
    3,进入fastlane文件夹,编写Fastfie
    进入这里,可以查看官方已经编写好的action。https://docs.fastlane.tools/actions/Actions/
    图片.png
     # 定义很多个航道
     # 一个航道: 快速的升级维护pod私有库
     # 描述航道是做什么用的
       desc "快速的升级维护pod私有库"
       lane :ManagerPodLib do |options|
       targetName = options[:targetName]
       tagName = options[:tagName]
    # 这里面, 只能写已有action
    # 1. pod install
    # 这里的路径, 统统是相对于根路径
    cocoapods(
     clean: true,
     podfile: "./Example/Podfile"
    )
    
    # 2. podspec升级版本号
    version_bump_podspec(path: "#{targetName}.podspec", version_number: tagName)
    
     # 3. 提交代码到远程代码仓库
     #   1. git add .
    git_add(path: ".")
     #   2. git commit -m ‘xx’
    git_commit(path: ".", message: "升级版本")
    #   3. git push origin master
    push_to_git_remote
     # 判断标签是否已经存在
     # 如果存在, 删除 不存 (自定义)
    
     # 4. 打标签提交
     #   1. git tag 0.2.0
     add_git_tag(
      tag: tagName
      )
    #   2. git push —tags
    push_git_tags
    
    # 5. 提交podspecs
    # pod repo push XMGFMSpecs XMGFMBase.podspec
    pod_push(path: "#{targetName}.podspec", repo: "SKFFMPrivate")
    end
    
    repo 就是你的定义的私有Spec名称。
    编写好上面的fastlane以后,试着修改一下代码
    然后cd 进入根目录,
      fastlane ManagerPodLib targetName:SKFDownLoadLib tagName:0.2.0
    
    targetName 后面是代码库的名字,tagName是要升级的版本号。
    图片.png 图片.png
    一行代码就实现了自动化的更新模块
    使用中,有任何问题,欢迎留言。

    相关文章

      网友评论

      • 邦Ben:如果只是为了执行这些git操作,都没必要用 fastlane,直接shell脚本,就可以了吧
        邦Ben:@敲代码的树懒 pod install 然后修改代码
        修改podspec,升级版本号
        git add .
        git commit -m 'xx'
        git push origin
        git tag -a xx -m 'xxx'
        git push --tags
        pod repo push XXXSpecs XXX.spec 对


        这些都是 cli命令,就直接放到 .sh 逐条执行就行了啊,有什么需要特殊处理的,就根据shell的基本语法,去写一点读取输入变量之类的操作就可以了...
        敲代码的树懒:@邦Ben shell脚本怎么做呢,求大神分享攻略
      • 哈哈大笑呼呼呼呼:不错哦 必须mark

      本文标题:iOS 模块组件化的自动化实现

      本文链接:https://www.haomeiwen.com/subject/qrijnttx.html