Jenkins + XCode + TestFlight + F

作者: 小呆子 | 来源:发表于2018-10-10 16:20 被阅读753次

    先如今,使用脚本打包,进行app的持续化集成已经成为常态,
    不用在耽误时间进行打包的管理,
    比较浪费研发的时间,打包的时候,还不太好切换分支,
    所以准备一台低配置的mac mini ,
    作为公司内网的一台打包服务器,快乐的进行脚本打包吧


    整体流程

    fastlane打包流程.png

    物料准备

    • 一台Mac 打包服务器 ,一般配置即可,推荐二手MacMini

    用自己开发的电脑也是可以,笔者就是用自己的电脑,在打包过程中,启动Jenkins 服务,会占用cpu 较为严重,亲测还好

    iOS 无法在linux 上打包,原因是XCode 只能在OSX 系统上安装,若非要在Linux 上实现,可以建立节点,不过太复杂了

    • 安装 Java8 环境,最新版 Jenkins 运行在Java8 环境,如果安装多个Java 环境,也无妨
    • XCode,ruby,fastlane 等iOS开发常见软件
    • 在打包机器上授权打包证书可信任,打包工程上配置release模式下打包环境

    Jenkins 安装&部署

    homebrew 直接安装最新版2.144

    $ brew install jenkins
    

    jenkins 常见命令

    jenkins -h //启动Jenkins
    control + c //快捷键关闭Jenkins
    

    配置jenkins 管理员账号和密码

    打开浏览器,进入 http://localhost:8080/ 如果没有效果,看下shell 中Jenkins 的日志,日志还是较为详细的
    根据网站提示,简单配置就行,毕竟我们是局域网,内网访问下
    配置完毕在jenkins工作目录 /Users/XXXX/.jenkinsconfig.xml 文件会记录登录账户的信息
    如果不小心忘记了密码,还有很多方式可以找回,总是Jenkins 是一个很健全稳定的网站

    安装Jenkins插件

    点击系统管理-管理插件-可选插件,可以搜索插件,公司项目是托管在gitHub上的,所以我选的插件有(用其他托管代码的可以对应选择插件),

    • GitHub
    • GitHub API Plugin
    • GitHub Branch Source Plugin
    • GitHub Integration Plugin
    • Xcode integration

    后期做单元测试,还有其他很多好玩的插件相配合

    Jenkins插件安装

    打包Job 配置

    • 点击新建Item-输入项目名(建议所有名统一用工程名,避免出现各种坑)-构建一个自由风格的软件项目-确定

    • 基础配置 描述可以随意填写

    • 源码管理


      git地址配置
    • 参数化构建


      参数化构建配置
    • 打包脚本

    #切换到当前的打包分支
    git checkout $branch  
    #拉取fastlane 和 cocospod
    bundle install
    #拉取pod 库
    pod install --repo-update
    #fastlane 打包脚本
    fastlane beta
    
    • 构建后操作
      构建时可能会生成多个文件,只将自己需要的文件做存档
      打开项目配置-> 构建后操作 -> Archive the artifacts
      在存档文件中输入需要存档的文件,多个文件以 “,“(逗号) 分割,存档文件默认路径为 WORKSPACE ,存档文件的相对路径既是 WORKSPACE 并且是以正则表达式路径、文件名去匹配需要存档的文件
      我构建的ipa 存放在 WORKSPACE目录下,存档文件写为 */.ipa
    归档成品
    • 常见打包日志,分析构建流程


      打包日志
    打包成功日志

    FastLane 脚本编写

    fastlane beta打包脚本示例

    功能支持

    1. build 自动增1,并上传github, 不使用时间戳,是因为可读性较差
    2. 脚本提交pull request
    3. 打testflight 包,且自动上传到testflight

    浅析

      lane :beta do 
        #build 版本号自动增1,使用fastlane 自带Action 
        increment_build_number
        #指定工作目录下当前工程
        build_app(workspace: "Vite.xcworkspace", scheme: "Vite")
        #上传testflight,会使用fastlane的缓存配置,里面有上传账号的信息
        upload_to_testflight
        #将自增的版本号代码,上传到github仓库
        push_git
      end
    

    fastlane 有很多好玩的Action

    其他

    1. mac电脑 固定ip
    2. mac 不要休眠
    3. 每日构建定时器打包,小团队感觉没有必要,并且浪费磁盘空间,保存打包的符号表,linkmap等重要文件

    个人感悟

    • 这种配置,相对比OSX Service 的XCode bot 打包服务器好用很多
    • Jenkins 很强大,插件很好用
    • Fastlane 越来越稳定,功能也越来越健全
    • 终于搞完了!!!

    相关文章

      网友评论

        本文标题:Jenkins + XCode + TestFlight + F

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