内容简介:本篇是CI系列的最后一篇,主题是介绍jenkins如何实现iOS项目的自动化部署,在上一篇一、配置MacOS slaveJenkins有个强大的功能,配置Slave(奴隶)服务器,来实现分布式部署构建。具体步骤如下:
前言
本篇是CI系列的最后一篇,主题是介绍jenkins如何实现iOS项目的自动化部署,在上一篇 jenkins+gogs实现Android项目自动化部署(三) 开篇提到了slave节点,iOS打包需要借助slave节点来完成打包,接下来我就一步步的教大家如何做。
一、配置MacOS slave
Jenkins有个强大的功能,配置Slave(奴隶)服务器,来实现分布式部署构建。具体步骤如下:
1、配置Mac电脑
在 系统偏好设置 > 共享 中开启 远程登录 ,如下图
2、创建节点
Jenkins > 系统管理 > 节点管理 > 新建节点,输入节点名称,记得勾选 固定节点
,点击OK。
3、配置节点
其中要保证 /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 插件。
4、保存
如果看到
即添加Mac Slave成功,且Mac Slave在线。若连不上,请反复确认 远程工作目录 的权限。
二、配置Jenkins系统设置
1、上传证书和描述文件
在 Jenkins > 系统管理 > Keychains and Provisioning Profiles Management 中上传打包用的证书和描述文件。如下图:
Save。
2、在 Jenkins > 系统管理 > 系统设置 中设置
很关键。 Keychain 的路径和密码需要填写Mac中登录用户的密码。
3、在 Jenkins > 系统管理 > 全局安全配置 中配置
开启Safe HTML。
三、配置iOS项目
1、安装 description setter
插件
2、新建任务
3、General
这里指定Mac Slave服务器作为构建Xcode工程的Slave服务器,Xcode打包构建全部交给这个节点(Slave服务器)来完成。
4、配置源码
这里就不介绍了,前几篇有说明
5、构建环境
把之前上传的证书和描述文件添加上。
设置Build名称,这里添加了自定义名称。注意,高级里面只勾选第一个,不要勾选 Set build name after build ends
,否则会报错。
7、构建
脚本如下
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 /
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Syncd - 自动化部署工具
- 前端自动化部署方案探索
- 使用 Capistrano 进行自动化部署
- jenkins自动化项目部署实战
- Syncd——开源自动化部署工具
- SaltStack自动化批量部署Apache
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
图论——一个迷人的世界
本杰明,查特兰,张萍 / 机械工业出版社 / 2001-1-1
本书介绍了图论的基本概念,解释了图论中各种经典问题。例如,熄灯的问题、小生成树问题、哥尼斯堡七桥问题、中国邮递员问题、国际象棋中马的遍历问题和路的着色问题等等。书中也给出了各种类型的图,例如,二部图、欧拉图、彼得森图和树;等等。每一章都为读者设置了练习题,包含了具有挑战性的探索性问题。一起来看看 《图论——一个迷人的世界》 这本书的介绍吧!