Tool

Jenkins - iOS Build、Archive、Uplo

2020-07-07  本文已影响0人  ienos

Xcode 打包一定需要 苹果系统的电脑,以下均在 Mac 下操作

一、安装步骤

1. 安装 jenkins 前往 【官网

2. 选择 MacOS X 版本进行下载【下载连接

3. Jenkins 安装

4. 运行 Jenkins

5. 解锁 Jenkins

image.png

6. 安装 Jenkins 插件

1592568762751-5b2a5b63d53f59bc.png

7. 创建 Jenkins 账号

1592568788249-0003346ca218ecaf.png

8. 欢迎来到 Jenkins!

1592568815124-9d1d8e1209e3b002.png

二、安装插件

前往 Manage Jenkins -> Manage Plugins 进行插件管理

image.png

下载过程中会比较慢,可以通过修改 default.json 文件提升下载速度

sed -i "" 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json

Manage Jenkins -> Configure System -> 在主目录下可以看到 Jenkins 路径,defalut.json 在 Jenkins 根目录的 ./updates 下


三、SSH 配置

一般会在项目中添加 Credentials,添加步骤如下:

1593313820116-fc7d74a193249262.png

选择 SSH Username with private key 类型

1593313900430-561700e41b818559.png

配置信息主要填一下几个

我们添加完 Credentials 之后可以在 Jenkins -> Credemtials(凭证)-> System -> Global credentials(unrestricted)编辑配置

四、简单执行一个项目

前往 Jenkins -> 新建 Item

1593313755549-99a7008a2ee4094d (1).png

新建完一个项目后,可以根据【SSH 配置】,然后配置完 Repository URLCredentials 进行保存

1593314409699-192662958f698587.png

点击 Build Now 可以开始第一次尝试构建项目

1593314502665-b0931885773f2ce5.png 1593314596710-b9edafaef1942aef.png

在构建历史中,我们可以看到构建进度,并且我们可以关闭此次构建,点击构建序列号可以进去查看构建详情

1593314664662-9c1ea35f89ae2339.png

控制台可以查看详细的报错信息,有利于我们定位问题

五、构建前的参数选择及填写

勾选 GeneralThis project is parameterized,然后开始添加参数

在下面例子,使用的是 Choice Paramenter(可选参数), 定义了 ENVIRONMENT 变量,之后可以使用 ${ENVIRONMENT}来引用该变量

1593483810371-2b5bab50f5865047.png

之后在 Build 之前就可以选择参数 ENVIRONMENT 的变量值

1593483966114-6838ec4f218dcd9f.png

六、Cocoapods

对于使用了 Cocoapods 的项目,但是没有上传 Pods 文件夹到仓库中,需要在构建项目前进行 pod install

1593764664726-439b3b3ce0e1e710.png

如果跑 Jenkins 出现 pod install 慢,有可能是在向 Github 源项目进行 CloneCocoapods Cache (/Users/[USER]/Library/Caches/CocoaPods/Pods/Release) 没有缓存,这种情况需要开启代理,添加 git config --global,详细见上代码


七、邮件发送

系统有一个自带的邮件插件,可以用来测试邮件配置,前往 Jenkins -> Configure System -> 邮件通知

1593502023203-0f0dd84402d6e177.png
  1. 填写和勾选,以下几个选项 — — 填写 SMTP 服务器 / 用户默认邮件后缀 / 使用 SMTP 认证 / 用户名 / 密码 / 使用 SSL 认证 / SMTP 端口
  2. 发送邮件测试 — — 勾选通过发送测试邮件测试配置,然后填写 Test e-mail recipient(接收者邮件), 点击 Test configuration 测试邮件功能

安装 Email Extension Plugin 插件

Q: 在构建项目中添加发送邮件的任务 ?

安装完插件之后,在 Jenkins -> Configure System

image.png

添加构建后发送邮邮件组件

image.png

新增触发器、填写收件人、发送内容、主题

1593505168477-8874684336c2f92a.png

八、构建脚本

主要涉及到的 api

plist 文件主要为以下内容,填入 bundle_id、profile_name、method(打包方法)

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
   <dict>
    <key>provisioningProfiles</key>
    <dict>
    <key>${BUNDLE_ID}</key>
    <string>${PROFILE_NAME}</string>
    </dict>
    <key>method</key>
    <string>${METHOD}</string>
   </dict>
 </plist>

Jenkins 已有可用的环境变量

前往 [JENKINS_URL]/env-vars.html/ 网页查看

Keychains and Provisioning Profiles Management

Step 1

Find Keychain 并上传到 后台 钥匙串有

Step 2:

打开「钥匙串」 App,并点击上传对应的 keychain,找到对应的证书,复制名字后粘贴到 Code Signing identify

使用 login.keychain 之后,复制 Code Signing identify 之后无法在项目中选择,后面将证书复制到 「系统」中,并上传 system.keychain,将证书名字复制到 system.keychain 👇,之后解决了问题

Provisioning Profile

目前还未尝试使用 Jenkins 的 Provisioning Profile 去构建项目,只是添加 Profile Name 在命令行里面构建

Mac 存放的路径在 /用户/${User}/Library/MobileDevice/Provisioning Profiles

由于 Provisioning Profile 均以 ${UUID}.mobileprovision 很难辨别我们需要的 profile 是哪个,建议从 AppDevelop 后台直接下载我们需要的 profile,然后直接上传到 jenkins 后台

本地服务器映射到外网

默认端口号 8080,运行 Jenkins 可指定端口号 jenkins-lts --httpPort=8080

上一篇 下一篇

猜你喜欢

热点阅读