欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

IOS-自动化打包-Jenkins集成

程序员文章站 2022-04-13 22:44:22
...

一.简介

自动化是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。自动化技术广泛用于工业、农业、军事、科学研究、交通运输、商业、医疗、服务和家庭等方面。
把重复且无技术含量的事情交给机器去做,为了较少不必要的打包时间浪费,自动化打包技术就由此而生。
我的项目是基于Jenkins自动打包的,Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

流程

1. Jenkins 安装(我的项目采用版本分别是Jenkins: jenkins-2.190.1 )

注意以上的jekins版本支持的最高java JDK 为 11
打开Jenkins官网下载最新的pkg安装包。安装完成之后,Safari可能会自动打开,如果没有自动打开,打开浏览器,输入http://localhost:8080。

2. java 环境安装(我的项目采用版本分别是Java: jdk-11.0.5_osx-x64_bin )

若打开是空白页面说明需要安装java环境,如果正常打开跳过此步骤。
JAVA JDK 下载链接 注意以上版本的Jenkins 只支持 11 以下的 java 版本,否则无法继续流程。
IOS-自动化打包-Jenkins集成

三. 打开http://localhost:8080 前的操作
  1. 确保系统隐藏文件已经开启(终端输入 $ defaults write com.apple.finder AppleShowAllFiles -bool true进行打开隐藏文件,关闭把最后ture 改为false)
  2. 接着终端输入$ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist然后提示输入密码,就按照要求输入密码
  3. 最后终端输入$ java -jar /Applications/Jenkins/jenkins.war --httpPort=8080就完成Jenkins启动了,会出现如下提示IOS-自动化打包-Jenkins集成
    此时在浏览器输入http://localhost:8080即可。

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

三. Jenkins 账号设置
  1. 浏览器输入 http://localhost:8080 会出现如下界面IOS-自动化打包-Jenkins集成
    如上红色的路径表示密码的存储路径,找到路径下的文件(如果无访问权限,右键点击文件夹 -> 显示简介 -> 打开共享与权限 ,给everyone加上读与写权限,进入文件夹后可以看到名字为initialAdminPassword的文件。)然后将文件里的密码拷贝输入即可。
    接着 然后点击install suggested plugins ,即下载推荐插件。 会出现如下进度IOS-自动化打包-Jenkins集成
    出现以上图,恭喜你成功下载插件了。

  2. 接着就是设置账号密码,你会看到如下的设置界面IOS-自动化打包-Jenkins集成
    IOS-自动化打包-Jenkins集成
    以上是设置完成后,jenkins到此就搭建完成,接下来需要配置项目就OK了。

四. 配置Jenkins 插件
  • 我的项目是采用Git管理,所以去下载 GitLab 插件,点击系统管理->管理插件,在可选插件中下载,然后安装IOS-自动化打包-Jenkins集成
    IOS-自动化打包-Jenkins集成
  • Keychains and Provisioning Profiles Management 插件下载配置

选择下载以下插件IOS-自动化打包-Jenkins集成

下载安装完成后,会在插件管理看到对应的点击进入
IOS-自动化打包-Jenkins集成
如图这里可以上传的文件时钥匙串和描述文件。不能直接上传证书文件。钥匙串的目录可以打开钥匙串点击登录钥匙串查看。在点击钥匙串会看到对应路径IOS-自动化打包-Jenkins集成
然后在文件夹中输入对应路径查找到指定数据库。
然后拷贝一份安装有我们打包证书的钥匙串文件,即login.keychain-db。此时需要注意,上传到Jenkins的只认.keychain后缀和.mobileprovision后缀的文件,其他文件都会上传失败。所以我们要把这个上传的钥匙串后缀的-db去掉,文件名修改成login.keychain,然后再上传。

上传成功后Keychains下边会显示Filename为login.keychain,可以添加打包用的证书。

最后添加描述文件,先添加描述文件的导向路径,
/Users/[user name]/Library/MobileDevice/Provisioning Profiles
。描述文件和钥匙串一样的添加上传方式。添加后就可以看到描述文件信息了。

点击保存按钮就完成钥匙串证书配置了。

五. 配置项目-工程任务
  1. 首先创建一个任务
    输入对应的任务名称和勾选构建一个*风格的软件项目,然后点击确定IOS-自动化打包-Jenkins集成

  2. 我的项目是采用git管理
    在源码管理中勾选git,输入对应的远程仓库地址,以及配置git账号密码。
    IOS-自动化打包-Jenkins集成

  3. 设置轮询
    Poll SCM (poll source code management) 轮询源码管理
    需要设置源码的路径才能起到轮询的效果。一般设置为类似结果: 0/5 * * * * 每5分钟轮询一次
    Build periodically (定时build)
    一般设置为类似: 00 20 * * * 每天 20点执行定时build 。当然两者的设置都是一样可以通用的。
    IOS-自动化打包-Jenkins集成

  4. 添加脚本

    配置好xcode运行环境,pod 仓库等等完毕后。
    设置对应的脚本码
    首先拉取远程仓库,然后打包。

  5. 最后我的项目是上传蒲公英

脚本码如下

#要上传的ipa文件路径
IPA_PATH=${EXPORTPATH}/${AppName}.ipa

#执行上传至蒲公英的命令
echo "++++++++++++++upload+++++++++++++"
#蒲公英上的User Key
uKey="89c4bf****************7ae5447"
#蒲公英上的API Key
apiKey="267********************76cc"
#蒲公英上传
MSG=`git log -1 --pretty=%B`

echo "------------蒲公英上传包--------------"
curl --retry 3 -F "aaa@qq.com${IPA_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" -F "updateDescription=Jenkins自动构建【DailyBuild】 commit msg:${MSG} BuildNum:${BUILD_NUMBER},GIT-SHA:${GIT_COMMIT}" http://www.pgyer.com/apiv1/app/upload```


### 总结:到此就可以完成一些列自动化打包操作了,一次配置终身受益。