一.简介

自动化是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。自动化技术广泛用于工业、农业、军事、科学研究、交通运输、商业、医疗、服务和家庭等方面。
把重复且无技术含量的事情交给机器去做,为了较少不必要的打包时间浪费,自动化打包技术就由此而生。
我的项目是基于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 版本,否则无法继续流程。

jenkins 打包ios项目 jenkins ios自动打包_jenkins 打包ios项目

三. 打开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启动了,会出现如下提示
    此时在浏览器输入http://localhost:8080即可。

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

三. Jenkins 账号设置
  1. 浏览器输入 http://localhost:8080 会出现如下界面
  2. jenkins 打包ios项目 jenkins ios自动打包_上传_02

  3. 如上红色的路径表示密码的存储路径,找到路径下的文件(如果无访问权限,右键点击文件夹 -> 显示简介 -> 打开共享与权限 ,给everyone加上读与写权限,进入文件夹后可以看到名字为initialAdminPassword的文件。)然后将文件里的密码拷贝输入即可。
    接着 然后点击install suggested plugins ,即下载推荐插件。 会出现如下进度
  4. jenkins 打包ios项目 jenkins ios自动打包_jenkins 打包ios项目_03

  5. 出现以上图,恭喜你成功下载插件了。
  6. 接着就是设置账号密码,你会看到如下的设置界面
  7. jenkins 打包ios项目 jenkins ios自动打包_Jenkins_04


  8. jenkins 打包ios项目 jenkins ios自动打包_Jenkins_05

  9. 以上是设置完成后,jenkins到此就搭建完成,接下来需要配置项目就OK了。
四. 配置Jenkins 插件
  • 我的项目是采用Git管理,所以去下载 GitLab 插件,点击系统管理->管理插件,在可选插件中下载,然后安装
  • Keychains and Provisioning Profiles Management 插件下载配置

选择下载以下插件

jenkins 打包ios项目 jenkins ios自动打包_jenkins 打包ios项目_06

下载安装完成后,会在插件管理看到对应的点击进入

jenkins 打包ios项目 jenkins ios自动打包_jenkins 打包ios项目_07


如图这里可以上传的文件时钥匙串和描述文件。不能直接上传证书文件。钥匙串的目录可以打开钥匙串点击登录钥匙串查看。在点击钥匙串会看到对应路径

jenkins 打包ios项目 jenkins ios自动打包_钥匙串_08


然后在文件夹中输入对应路径查找到指定数据库。

然后拷贝一份安装有我们打包证书的钥匙串文件,即login.keychain-db。此时需要注意,上传到Jenkins的只认.keychain后缀和.mobileprovision后缀的文件,其他文件都会上传失败。所以我们要把这个上传的钥匙串后缀的-db去掉,文件名修改成login.keychain,然后再上传。

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

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

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

五. 配置项目-工程任务
  1. 首先创建一个任务
    输入对应的任务名称和勾选构建一个自由风格的软件项目,然后点击确定
  2. jenkins 打包ios项目 jenkins ios自动打包_jenkins 打包ios项目_09

  3. 我的项目是采用git管理
    在源码管理中勾选git,输入对应的远程仓库地址,以及配置git账号密码。
  4. jenkins 打包ios项目 jenkins ios自动打包_Jenkins_10

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

  7. 添加脚本
    配置好xcode运行环境,pod 仓库等等完毕后。
    设置对应的脚本码
    首先拉取远程仓库,然后打包。
  8. 最后我的项目是上传蒲公英

脚本码如下

#要上传的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 "file=@${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```


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