Jenkins实现iOS自动化打包

2,307 阅读3分钟

Continuous Integration 持续集成(简称CI):一个可以自动构建的过程,自动编译代码,可以自动分发,部署和测试。

一、安装

我们来开始安装Jenkins,旧版本已经不支持包下载,新版本官方推荐使用brew安装

建议卸载重新安装

//进入以下目录,双击运行清除所有Jenkins信息 /Library/Application Support/Jenkins/Uninstall.command

//使用brew安装的,可以执行以下命令

  • 卸载:brew uninstall jenkins
  • 安装:brew install jenkins
  • 启动:brew services start jenkins
  • 重启:brew services restart jenkins
  • 更新:brew upgrade jenkins

安装完成之后,Safari可能会自动打开,如果没有自动打开,打开浏览器,输入localhost

这个时候可能会报一个错误。如果出现了这面的问题。出现这个问题的原因就是Java环境有问题,重新Java环境即可。

这个时候如果你重启电脑会发现Jenkins给你新增了一个用户,名字就叫Jenkins,不过这个时候你不知道密码。你可能会去试密码,肯定是是不对的,因为初始密码很复杂。这个时候正确做法是打开localhost会出现下图的重设初始密码的界面。

按照提示,找到/Users/Shared/Jenkins/Home/ 这个目录下,这个目录虽然是共享目录,但是有权限的,非Jenkins用户/secrets/目录是没有读写权限的。右击【显示简介】点击弹窗右下角🔒,添加当前用户权限。

打开initialAdminPassword文件,复制出密码,就可以填到网页上去重置密码了。如下图

一路安装过来,输入用户名,密码,邮件这些,就算安装完成了。

继续localhost:8080 ,选择“Manage Jenkins”——“Manage Plugins”,我们要先安装一些辅助插件。

二、安装插件,部分插件可能系统已有不需要安装。

1. Keychains and Provisioning Profiles Management
2. Xcode integration
3. Ant Plugin
4. Command Agent Launcher Plugin
5. description setter plugin
6. Email Extension Template Plugin
7. fir-plugin
8. Git Parameter Plug-In
9. GitHub Branch Source Plugin
10. Gradle
11. Pipeline: GitHub Groovy Libraries
12. Project Description Setter
13. Upload to pgyer
14. Workspace Cleanup

三、安装完了这个,我们就可以配置一下全局参数。

选择“Manage Jenkins”——“Configure System”
1. 找到“Jenkins Location”
  • 配置“Jenkins URL”:“http://127.0.0.1:8080/” IP访问
  • 配置“System Admin e-mail address":"****@.com" 默认收件邮箱
2. 找到“Global properties”

打开“Environment variables”

  • 配置“List of variables” “name":"PATH" "Value":"**********" //在终端输入“ echo $PATH ” 将PATH值全部复制,解决pod: command not found
3. 找的“xcode builder”
  • 配置“aple development teams” 打开钥匙串:复制
  • 找到生产证书:“Apple Distribution:...... (......)”
  • 找到开发证书: “iPhone Developer:...... (......)” 或者 “Apple Development:...... (......)”
  • 粘贴到“team name”, “Development team ID”是后面括号里面参数
4. 找到“Git plugin”
  • 配置“Global Config user.name Value”:“github名称”
  • 配置“Global Config user.email Value“:“github邮箱”
  • 配置“Subversion”:1.8版本 //具体看pod --version 版本号
5. 找到“Extended E-mail Notification” 可能没有需要去安装插件
  • 配置“SMTP server“:“smtp.163.com” 本人163邮箱,如果是其他邮箱,具体去查找接收邮箱的配置方法
  • 配置“Default user E-mail suffix ”:“****@163.com” //邮箱地址
  • 配置“Default Recipients”:“****@163.com” //邮箱地址
6. 找到“E-mail Notification”
  • 配置“SMTP server“:“smtp.163.com” 本人163邮箱,如果是其他邮箱,具体去查找接收邮箱的配置方法
  • 配置“Default user e-mail suffix“:“@163.com” //邮箱后缀

四、配置完全局参数,配置一下钥匙串、苹果打包证书、证书的描述文件

选择“Manage Jenkins”——“Keychains and Provisioning Profiles Management”
1. 找到“~/Library/Keychains/” 路径下的Keychains文件夹

点击选择文件-找到“login.keychain”,点击 upload 上传。

2. 找到“Keychains”
  • 配置“Filename”:“login.keychain“
  • 配置“Password”:“电脑登录密码”
  • 配置“Description”:“钥匙串”
3. 配置“Identities”
  • 配置“Code Signing Identity”:“Apple Distribution:...... (......)” //配一个发布就够了
  • 配置“Code Signing Identity”:“Apple Development:...... (......)”
  • 配置“Code Signing Identity”:“iPhone Developer:...... (......)”
  • 多个可以点击“Add Code signing identity”添加多个证书
4. 找到“Provisioning Profiles”
  • 配置“Provisioning Profiles Directory Path”:“/Users/Shared/Jenkins/Library/MobileDevice/Provisioning\ Profiles” //写死了,别改动
5. 最后,最主要的拷贝文件。
  1. 路径: “/Users/Shared/Jenkins/”
  • ⚠️因为在共享路径下所有关闭某些文件的权限。
  1. 找到 “/Users/Shared/Jenkins/Home/kpp_upload/” login.keychain ,修改权限关闭everyone,禁止外部人员访问,添加本机用户权限

  2. 找到“/Users/Shared/Jenkins/Home/workspace”,打包项目位置

  3. 找到“/Users/Shared/Jenkins/Library/Keychains”,“Keychains”可能没有自己创建,修改权限关闭everyone,禁止外部人员访问,添加本机用户权限

  • 粘贴从“~/Library/Keychains/”路径下拷贝的“login.keychain”,“login.keychain-db”两个文件
  1. 找到“/Users/Shared/Jenkins/Library/MobileDevice”,“MobileDevice”可能没有自己创建,修改权限关闭everyone,禁止外部人员访问,添加本机用户权限
  • 粘贴从“~/Library/MobileDevice/”路径下拷贝的“Provisioning Profiles”文件夹。

五、创建一个项目

1. 选中“New Item” ,照图片点完成

2. 顶部菜单“General”配置

3. 顶部菜单“Source Code Management”配置

  • “branches to build” 分支名
4. 顶部菜单“Build Triggers”配置

  • “poll SCM” 轮询查询,时间定时器,定时查询 ‘H 20 * * *’ 每天早上8点
5. 顶部菜单“Build Environment”配置

  • 第一次创建是没有信息的,需要先点击保存按钮,重新编辑。
  • “Code Signing Identity”选择打包的证书名称
6. 顶部菜单“Build”配置

1.添加shell, 配置pod install

#bin/bash
cd ${WORKSPACE}/

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

pod install
pod update --verbose --no-repo-update
2.添加xcode, 配置xocde编译信息

  • 重点,一般看不到这个位置选中 “Pack application, build and sign .ipa?”
  • path路径写死 :/Users/Shared/Jenkins/Library/Keychains/login.keychain
  • 密码为电脑密码
  • 推荐写法
  • "Output directory" /Users/Shared/Jenkins/Home/workspace/build
  • "Build output directory" /Users/Shared/Jenkins/Home/workspace/build
  • 项目文件固定位置 :/Users/Shared/Jenkins/Home/workspace/。。。。。
7. 顶部菜单“Post-build Actions”配置

  • fir.im 自动上传
  • pgyer自动上传
1.fir.im, token去官网查找

2.pgyer, uKey api_key 去官网查找

  • 推荐参数
  • *.ipa
  • /Users/Shared/Jenkins/Home/workspace/build/qrcode.png
  • /Users/Shared/Jenkins/Home/workspace/build/envVars.txt
  • password(optional)密码设置好记住了