iOS开发Jenkins+gitLab+fir+多target持续集成详细流程(易错坑记录)

Jenkins介绍

      自动化打包根本目的是为了节约时间,把重复且无技术含量的事情交给机器去做。Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。这里主要使用的功能:

  1. 持续、自动地构建/测试软件项目

  2. 配合多target自动打包 (项目多target配置教程 https://www.jianshu.com/p/d1608ff946a9)

个人搭建总结: 遇到奇怪的解决不了的问题就重启电脑 ! ! !

一、 Jenkins安装

          安装参考文章: https://www.jianshu.com/p/79429cc0efbc

  • 安装完查看下载位置:         

  1. 下载在用户目录下

  2. 下载在共享目录下: 打包时会有很多权限问题.   解决办法: 

           在shell 执行:

            sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

            java -jar /Applications/Jenkins/jenkins.war --httpPort=8080

          这种方式打开的Jenkins在自动化打包时,不能关闭运行Java环境的终端

           参考文章:https://www.jianshu.com/p/69b544d2a9d1

二、 Jenkins配置

          1. 设置管理员 系统管理 -> 全局安全配置

         

          2. 安装插件 系统管理 -> 插件管理

              Keychains and Provisioning Profiles Management(管理本地的keychain和iOS证书的插件)

              GitLab 和 Gitlab Hook  (项目源码管理)

              Xcode integration (用于xcode构建)

           3.  证书配置

           3.1 获取钥匙串:  终端输入 open ~/Library/Keychains, 将 login.keychain-db 拷贝到桌面, 删除”-db"

            

            3.2 上传login.keychain 和 Provisioning Profiles

            

           重复步骤 1, 2, 选择对应的Provisioning Profiles文件上传

           Provisioning Profiles Directory Path 填写: /Users/用户名/Library/MobileDevice/Provisioning Profiles

            

           4. 创建项目

           4.1 项目地址和添加ssh     

             

             

             4.2 如果需要多target打包

             

             BUILDTYPE可以在shell里通过 ${BUILDTYPE} 获取

                

             4.3 证书选择

             

              4.4 构建步骤

              

             在shell中可以使用fastlane 进行打包,这里papaForfir.sh中执行了fastlane ,${BUILDTYPE}(上面的蓝色字体部分说明) 获取了参数化构建选择的值,在papaForfir.sh 有相应的判断,选择相应的target 进行打包

              

              在.sh文件中的判断    $1 表示shell 中输入的值          

              

              4.5 配置完成后点击 Build with Parameters 就会有build 选项

              

             构建完成后,进入控制台,点击链接或者进入fir官网个人中心就能查看二维码下载界面

           

        

       在fastlane中指定输出的文件夹中也有ipa包

       

三、 部分报错解决

  • fastlane: command not found 解决:在插件管理下载RVM,然后在项目配置中的构建环境下勾选 Run the build in a RVM-managed environment ,填上ruby 的版本

      

参考文章 

iOS持续集成:Jenkins+GitLab+蒲公英: https://www.jianshu.com/p/3b43776ed73f

fastlane安装

sudo gem install fastlane -NV

参考文章: iOS自动打包—Fastlane安装 https://blog.csdn.net/boyqicheng/article/details/82620784

猜你喜欢

转载自blog.csdn.net/ljw2017/article/details/87882195