基于 Xcode 9+,利用fastlane+jenkins持续集成iOS项目

前段时间写了一篇关于"jenkins 持续集成 iOS项目"的文章,配置比较复杂.在更新到 Xcode 9之后,原来的配置方案不能用了.最近尝试用 fastlane+jenkins,继续实现持续集成. fastlane 是一个优秀的部署,发布应用的开源项目(github地址). 推荐使用 fastlane, 放弃使用 jenkins 里 Xcode-plugin 的缘由: fastlane 多人维护,更新及时,部署简单. Xcode-plugin反之.java

1:安装 fastlane:

官方版安装详细步骤 保证在 mac 上安装了最新版的 Xcode. 在Ruby 2.0.0及以上版本环境下安装:ios

sudo gem install fastlane -NV
复制代码

而后,在终端进入你项目的根目录,执行如下代码:git

fastlane init
复制代码

因为 fastlane 版本更新迅速,高版本不向前兼容,推荐使用Gemfile,更新版本. 在终端执行命令,安装builder:github

sudo gem install bundler
复制代码

在你的项目根目录下建立Gemfile文件,文件写入如下内容:shell

source "https://rubygems.org"
gem "fastlane"
#若是使用 cocoapods管理项目依赖,增长下面的命令
#gem "cocoapods"
复制代码

建立完后,在持续集成时执行命令:浏览器

bundle update
#若是第一次执行,用 bundle install 代替
复制代码

接着编辑项目目录下的./fastlane/Fastfile文件内容(首先保证你的项目在 Xcode 中,已配置好证书和对应的描述文件):ruby

Fastfile.png

lane :beta do
    gym(scheme: "AppScheme”, #output_name 指打包完成后, 输出ipa文件的名字 output_name: "APPName_Debug”,
    #export_method 打包版本选择
    #分别是app-store、ad-hoc、development、enterprise
	export_method: "development”, export_options: { provisioningProfiles: { #左侧表示你的项目的bundle id #右侧表示你的项目在选择export_method后,对应的描述文件名字 "com.test.appidentifer" => "ProfilesName" } }) end 复制代码

(还有一种官方推荐的 match 方法匹配证书和描述文件,因为笔者如今用企业版帐号开发应用,不能随意撤销证书,因此没用 match 的方法.)bash

2:安装 jenkins:

在macOS系统上,咱们须要先安装 JDK,而后在 Jenkins 的官网 下载最新的 war 包。 app

jenkins.png
下载完成后,打开终端,进入到 war 包所在目录,执行如下命令:

java -jar jenkins.war --httpPort=8080
复制代码

待Jenkins启动后,在浏览器页面输入如下地址,打开 jenkins:ide

http://localhost:8080
复制代码

注意:使用其余方式安装的 Jenkins 可能致使后续步骤失败,请确认使用推荐的方式来安装 Jenkins。

开始建立工程

CreatProject.png

配置仓库代码连接

SourceCode.png

添加执行的 shell 代码

ShellCode.png
shell 内容:

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
#上面命令指定编码方式,若是不指定,执行 fastlane beta 会报错
bundle update
fastlane beta
复制代码

最后,增长构建后操做步骤,选择 Archive the artifacts,能够将打包好的 ipa 呈如今当前页面,方便"测试同事"点击下载.点击"保存",而后开始构建项目.

artifacts.png

常见问题

出现 fastlane: command not found 怎么办? 解决方法一:这个状况通常是因为 jenkins 没有设置正确的 $PATH 环境变量致使的。正确设置的方法为: 在终端执行 echo $PATH,记录下输出的结果 在 jenkins 中系统管理-系统设置中,找到 环境变量(Environment variables) 在 key 中填写 PATH,在 value 中填写第一步中输出的结果 保存便可。

EnvironmentVariables.png

解决方法二:请确认你安装 Jenkins 的方式和本文中推荐的方式一致。使用其余方式安装的 Jenkins 也常常会出现此问题。 参考: fastlane官方教程 蒲公英官网:使用 Jenkins 实现持续集成 (iOS)

相关文章
相关标签/搜索