5

jenkins+gogs实现iOS项目自动化部署(四)

 3 years ago
source link: https://www.longdw.com/2019/04/04/jenkinsgogsios/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

jenkins+gogs实现iOS项目自动化部署(四)

本篇是CI系列的最后一篇,主题是介绍jenkins如何实现iOS项目的自动化部署,在上一篇jenkins+gogs实现Android项目自动化部署(三)开篇提到了slave节点,iOS打包需要借助slave节点来完成打包,接下来我就一步步的教大家如何做。

一、配置MacOS slave

Jenkins有个强大的功能,配置Slave(奴隶)服务器,来实现分布式部署构建。具体步骤如下:

1、配置Mac电脑

系统偏好设置 > 共享 中开启 远程登录,如下图

2、创建节点

Jenkins  >  系统管理  >  节点管理  >  新建节点,输入节点名称,记得勾选 固定节点,点击OK。

3、配置节点

其中要保证/Users/longdw/Documents/jenkins目录的权限为ssh链接的用户可读写。

Credentials可以添加一个,这里我选择的是SSH Username with private key 注意这里的Username要选择ssh登录的用户名

下面的部分很重要

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系统设置

1、上传证书和描述文件

在 Jenkins > 系统管理 > Keychains and Provisioning Profiles Management中上传打包用的证书和描述文件。如下图:

Save。其中login.keychain 在目录/Users/longdw/Library/Keychains/login.keychain下,Password填写自己Mac电脑的登录密码

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,否则会报错。

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/ ‎

分类CI


Recommend

  • 32

    1.jenkins环境准备并启动jenkins服务 1)jdk环境配置 [root@centos7 ~]# ll /app/

  • 20

    jenkins+gogs实现自动化部署(序) 距离上次博客已经有一年多的时间了,不想给自己找太多的理由,总结一句还是太懒了。去年5月份换了家传统行业的公司,刚来就分配到了一个项目组负责移动端的项目,跟之前的开发模式不太一样,因为是甲方公司...

  • 8

    jenkins+gogs实现Android项目自动化部署(三) 上一篇项目主要介绍了jenkins+gogs实现JavaWeb项目自动化部署,这一篇重点介绍下Android项目的自动部署。另外注意下这一篇主要介绍在宿主机(jenkins安装所在的服务器)上打包,也就是远程打包部署,可能...

  • 16

    jenkins+gogs实现JavaWeb项目自动化部署(二) 上一篇文章主要介绍了jenkins和gogs的安装,这一篇重点介绍如何实现JavaWeb项目的自动化部署。 我们的目标是把war包传到应用服务器上,然后关闭tomcat,再启动tomcat。先看下面我们的打包...

  • 16

    jenkins+gogs实现JavaWeb项目自动化部署(一) 关于jenkins和gogs这两个环境的搭建我这里简单的介绍下,以下均在centos7环境下。 一、jenkins安装 我是拿的这篇博客的

  • 5

    windows下jenkins+git+maven+tomcat实现自动化部署 - 社会小青年丶的个人空间 - OSCHINA - 中文开源技术交流社区 ...

  • 5

    环境说明 腾讯云轻量服务器, 配置 1c 2g 6mb ,系统是 ubuntu 20.14,Docker 和 Jenkins 都在这台服务器上面, 群晖218+一台,Gogs 在这台服务器上。 Docker安...

  • 7

    使用 jenkins 完成 maven 项目自动化部署及回滚 发表于 2018-08-20...

  • 2
    • nyan.im 2 years ago
    • Cache

    从Gogs迁移项目至GitLab

    从Gogs迁移项目至GitLab Frank March 11, 2019 我以前使用的代码托管系统是Gogs,近期我切换到了更知名的代码托管系统

  • 4
    • ljlu1504.github.io 2 years ago
    • Cache

    Gogs代码自动部署

    Gogs代码自动部署 评分: 4.5 作者: Ryan Lu 类别: Git 时间:...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK