本篇是CI系列的最后一篇,主题是介绍jenkins如何实现iOS项目的自动化部署,在上一篇 jenkins+gogs实现Android项目自动化部署(三) 开篇提到了slave节点,iOS打包需要借助slave节点来完成打包,接下来我就一步步的教大家如何做。
一、配置MacOS slave
Jenkins有个强大的功能,配置Slave(奴隶)服务器,来实现分布式部署构建。具体步骤如下:
在 系统偏好设置 > 共享 中开启 远程登录 ,如下图
Jenkins > 系统管理 > 节点管理 > 新建节点,输入节点名称,记得勾选 固定节点
,点击OK。
其中要保证 /Users/longdw/Documents/jenkins
目录的权限为ssh链接的用户可读写。
Host是Mac的ip地址,Credentials是ssh登录Mac时需要的账户和密码。可以添加一个
PATH环境变量,需要在Mac上通过
echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/Users/longdw/Library/Android/sdk/platform-tools:/Users/longdw/Library/Android/sdk/tools:/Users/longdw/flutter/bin:/usr/local/Cellar/apache-maven-3.5.4:/usr/local/Cellar/apache-maven-3.5.4/bin:/usr/local/mysql/bin:/Users/longdw/apache-ant-1.10.5/bin
获取,然后copy过去。
Keychains and Provisioning Profiles路径要填写正确。没有这个选项的安装 Keychains and Provisioning Profiles Management 插件。
如果看到
即添加Mac Slave成功,且Mac Slave在线。若连不上,请反复确认 远程工作目录 的权限。
在 Jenkins > 系统管理 > Keychains and Provisioning Profiles Management 中上传打包用的证书和描述文件。如下图:
Save。
很关键。 Keychain 的路径和密码需要填写Mac中登录用户的密码。
开启Safe HTML。
1、安装 description setter
插件
2、新建任务
3、General
这里指定Mac Slave服务器作为构建Xcode工程的Slave服务器,Xcode打包构建全部交给这个节点(Slave服务器)来完成。
这里就不介绍了,前几篇有说明
把之前上传的证书和描述文件添加上。
设置Build名称,这里添加了自定义名称。注意,高级里面只勾选第一个,不要勾选 Set build name after build ends
,否则会报错。
脚本如下
export LANG="en_US.UTF-8" security -v unlock-keychain -p "dwd" ipa_name="FotileCSS" build_path="${WORKSPACE}/build/" fastlane gym --workspace FotileCSS.xcworkspace --scheme FotileCSS --clean --configuration Release --export_method enterprise --output_name ${ipa_name} --output_directory ${build_path}
这里用到了fastlane来打包
说到gym,就要先说一下fastlane。
fastlane是一套自动化打包的工具集,用 Ruby 写的,用于 iOS 和 Android 的自动化打包和发布等工作。gym是其中的打包命令。
fastlane 的官网看 这里 , fastlane 的 github 看 这里
要想使用gym,先要安装fastlane。 sudo gem install fastlane -- verbose
Linux服务器上的Jenkins调用Mac Slave时,是通过之前设置的 SSH 登录的方式,而Apple为了安全,在ssh登录时,是不允许读取 Keychains (钥匙串)的,所以 security -v unlock-keychain -p "yourpassword"
这行命令就很重要了。在构建打包前,先解锁Keychains。
当然这里 fastlane 已经提前通过 Homebrew 安装好了,这里不再赘述。
整体脚本的流程是,先解锁Keychain,然后用fastlane快速打包,最后上传到蒲公英平台,等待测试。
文章整体部分采用的是这位大神的博客,转入 大神的博客
iOS 常见打包错误
( 1 ) fastlane gym error : Unable to locate Xcode
( 2 ) Command /usr/bin/codesign failed with exit code 1
版权声明:本文为博主原创文章,未经博主允许不得转载。 http://www.longdw.com/ jenkinsgogsios /