美文网首页
jenkins + fastlane 持续化集成交付、OTA分

jenkins + fastlane 持续化集成交付、OTA分

作者: gy先生 | 来源:发表于2020-01-26 21:25 被阅读0次

    jenkins

    项目中测试组专用服务器上安装jenkins方便持续集成和交付。
    jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台。安装流程请戳

    fastlane

    简单来说,以iOS应用发布流程为例,整个流程的各部分工作fastlane都能帮你完成。

    主要突出的几个组件:

    • sigh:生成并下载开发者证书
    • produce:在iTunes Connector上创建你的应用
    • gym:打包你的应用
    • snapshot:实现应用截屏并取得图片
    • pilot:将你的应用发布到TestFlight进行测试
    • deliver:将你的应用的二进制代码,截屏和原数据等信息上传到AppStore

    环境

    安装fastlane

    [sudo] gem install fastlane
    

    命令行位置定位到目标Xcode项目根目录,然后执行如下

    fastlane init
    

    然后会有一些选项和输入项(AppId账号密码),按需输入即可,会进行一些相关的初始化
    完成后项目根目录会生成一个fastlane文件夹,其中至少含有Appfile,Fastfile两个关键文件:

    Appfile:记录你的项目,账号等关键信息,如包名,Apple ID,Team ID等;
    Fastfile:关键的操作文件。根据你自己的需求,在其中定制自己的操作流;

    Fastfile结构

    default_platform(:ios)
    platform :ios do
      desc "Push a new build to TestFlight"
      lane :package do
        build_app(scheme: "FastlaneApp")
        upload_to_testflight
      end
    end
    

    fastlane的主要使用就是需要根据自己的需求定制自己的lane,lane里面加入各种各样的action即可。
    Fastfile编写完毕后,使用fastlane + [lane名称]即可执行
    使用终端定位到项目根目录,执行如下

    fastlane [lane名称],如:
    fastlane package
    

    在jenkins中配置fastlane命令


    image.png

    APP打包命令

    使用xcodebuild命令打包ipa

    sh "xcodebuild -exportArchive -archivePath #{archive_path}.xcarchive -exportPath #{archive_path} -exportOptionsPlist #{plist_path}"
    

    使用gradle命令打包apk

    gradle(
        task: "assemble",
        build_type: "Release",
        print_command: false,
        properties: {
          "tinkerEnable" => false,
          "android.injected.signing.store.file" => "#{real_store_file}",
          "android.injected.signing.store.password" => "#{store_password}",
          "android.injected.signing.key.alias" => "#{key_alias}",
          "android.injected.signing.key.password" => "#{key_password}",
        }
      )
    

    OTA分发

    上传到fir.im

    fir命令行安装

    [sudo] gem install fir-cli
    
    sh "fir publish #{file_path} -T #{token} -c \"#{title}"
    

    上传到蒲公英

    sh "curl -F \"file=@#{file_path}\" -F \"uKey=#{pgyerUKey}\" -F \"_api_key=#{pgyerApiKey}\" -F \"updateDescription=#{title}#" -F \"publishRange=2\" http://www.pgyer.com/apiv1/app/upload"
    

    上传到testflight

    upload_to_testflight
    

    参考文档:
    Fastlane官方网页
    Actions详细列解

    相关文章

      网友评论

          本文标题:jenkins + fastlane 持续化集成交付、OTA分

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