测试基础 iOS App 自动化打包 (Jenkins + Fastlane + Git + 蒲公英)

字节 · 2017年11月24日 · 最后由 yes!! 回复于 2020年06月28日 · 1743 次阅读

A.Mac 下 fastlane 安装
1.安装前准备:
①准备一台 Mac 电脑,iOS 项目必须在 Mac 系统才能打包,系统要求(OS X 10 以上);
②安装 Xcode 开发工具,iOS 项目必须使用 xcode 工具才能打包;
③一个 $99 苹果开发者账号;
④本机下项目的苹果开发者证书配置(找开发童鞋帮忙);
⑤Ruby 版本必须要 2.0 以上;
⑤会一些基本的 Linux 命令(建议);

2.环境配置:
这里主要是检查或者更新 Ruby 版本或者安装 Ruby;
①检查 Ruby 版本,需要 2.0 及以上版本。在终端输入以下命令确认:ruby -v

②如果版本过低,则需要更新 Ruby 版本:
curl -L get.rvm.io | bash -s stable # 安装 rvm(Ruby 的一个命令行工具)
rvm -v # 测试是否安装正常
rvm list known # 列出已知 ruby 版本
rvm install ruby-xxxxx # 安装一个最新 ruby 版本 注:此处 xxxxx 为 list 中的最新版本号
rvm use xxxxx --default # 切换到最新版本
rvm remove xxxxx # 卸载旧版本

③切换 Ruby 源(taobao 源)
gem sources # 查看 gem 源

gem sources --remove https://rubygems.org/ # 删除默认的 gem 源
gem sources -a https://ruby.taobao.org/ # 增加 taobao 作为 gem 源
gem sources # 查看当前的 gem 源

④ 安装 xcode-select 命令行工具:
xcode-select --install (如果没有安装会进行安装。如果已经安装了则会报错)

3.安装 fastlane:
sudo gem install fastlane --verbose # 安装 Fastlane
sudo gem install -n /usr/local/bin fastlane # 可能会安装失败,则改用此命令安装
fastlane --version # 查看 Fastlane 版本检测是否安装成功
sudo gem update fastlane # 更新 fastlane 版本

B.Mac 下 jenkins 搭建和配置
1.安装前准备:
①安装 jdk1.8,并配置环境变量;
②在 Jenkins 的官网(https://jenkins.io/ )下载最新的 war 包;
(注意:使用其他方式安装的 Jenkins 可能导致后续步骤失败,强烈 t 推荐使用该方式来安装 Jenkins。)

2.安装 jenkins:

①终端输入命令:java -jar jenkins.war --httpPort=8080,安装和启动都是该命令;
②安装成功后,打开默认的访问地址:http://localhost:8080
③初次访问 jenkins,需要输入 admin 的密码和初始化;
④密码可以在\Jenkins\secrets\Jenkins\secrets\initialAdminPassword 查看;
⑤初始化,其实安装 jenkins 插件的步骤,建议选择 “select plugins to install”;
⑥Jenkins 常用插件:svn 插件(Subversion Plug-in)、git 插件 (GIT plugin)、Gradle 插件 (Gradle plugin) 、Xcode 插件 (Xcode integration) 、安卓插件 (Android Lint Plugin\Android Emulator Plugin)、界面美化插件(Ocean Blue)、多项目插件(Multiple SCMs)、邮件插件(EMail Extension Plugin)

3.Jenkins 系统配置:
①环境变量配置:(确保不出现 fastlane: command not found )
在终端命令行下执行 echo $PATH,记录下输出的结果
在 jenkins 中系统管理 - 系统设置中,找到 环境变量 (Environment variables)
在 key 中填写 PATH,在 value 中填写第一步中输出的结果,保存即可。

②Git 访问配置:
1.配置 git host 域名,终端输入:ssh-keygen -t rsa -C "sysionwxj@sysion.com"
(这样生成了一对密钥,存放在用户目录的~/.ssh 下。公钥文件 id_rsa.pub,私钥文件 id_rsa
要保证.ssh 和 authorized_keys 都只有用户自己有写权限。否则验证无效)
2.ssh-add id_rsa (此处为了防止用 Git 拉取代码时,每次都需要输入 passphrase)
3 把公钥配置到 git 的服务器,cat ~/.ssh/id_rsa.pub
4.把私钥配置到 Jenkins,cat ~/.ssh/id_rsa

C.Mac-具体 iOS 项目打包
1.源码管理:

①git(Credentials)配置;
②Git 地址、分支、选择 Credentials:
具体项目 git 地址:Repository URL:git@*******************.git、 Branch Specifier:/develop

2.fastlane 配置:
①保存返回,点击立即构建,拉取代码;
②打开终端,切换目录到包含 xxx.xcodeproj 的项目目录下输入 fastlane init,期间会让输入 Apple ID(开发者账号)及 app_identifier(ios_iphone_parents)等信息,可以根据需要自行选择填写。最后会在当前目录下生成 fastlane 文件夹;
③在终端中,输入命令:fastlane add_plugin pgyer,即可安装蒲公英的 fastlane 插件;
④在项目目录下,并打开 Fastlane 的配置文件(一般在 fastlane/Fastfile),修改配置文件 Fastfile;
desc "Build a new version use the ceshi"
lane :ceshi do |op|
increment_version_number(version_number: op[:version])
increment_build_number(build_number: op[:version])

set_info_plist_value(path: “ios_iphone_parents copy-Info.plist",
key: "UIFileSharingEnabled",
value: true)

# 将Development版本的.mobileprovision文件保存在里面,名称随意。
# update_project_provisioning(profile: "./provisions/development.mobileprovision")

gym(
output_name: "ios_iphone_parents",
silent: true,
clean: true,
configuration: "Debug",
export_method:"development",

buildlog_path: "fastlanelog",
scheme: "ios_iphone_parents",

# codesigning_identity: "iPhone Developer:rongwei pan(UMTA72YL74)",
output_directory: "outputs"
)
pgyer(
api_key:“*****************”,
user_key:“*************”
)
end

⑤返回到项目录下,输入命令:fastlane ceshi,进行打包;
⑥测试打包成功后,回到 Jenkins 继续进行构建配置;

3.构建触发器:
①Build periodically:定时检查源码变更,如果有更新就 checkout 最新 code 下来,然后执行构建工作
②Poll SCM:周期进行项目构建(它不 care 源码是否发生变化)

4.构建配置 :
①构建 - 选择 Excute Windows batch command:(填写以下命令)
cd ios_iphone_parents1.0(此处路径表示 jenkins 下项目根目录)
fastlane ceshi

5.邮件通知配置:
①选择构建后操作-E-mail Notification;
②直接填写收件人地址,多个收件人中间以空格隔开

备注:
pgyer(
api_key:“*****************”,
user_key:“*************”
)
其中 user_key、_api_key,注册的蒲公英账号,提供了唯一的 user_key、api_key(姓名 - 账户设置-API 信息中查询)
附上蒲公英的地址以及 api
https://www.pgyer.com
https://www.pgyer.com/doc

共收到 1 条回复 时间 点赞

很清晰,多谢分享

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册