前言
在日常的开发工作中给测试同学打包测试是很正常的流程,但是每次都通过Xcode archive来生成测试包然后再导出,然后在上传到三方测试网站(蒲公英、fir等),一次两次感觉没有什么。但是一次次重新打包,之后就是全部重复无意义的工作,就会感觉很烦了,于是我想到了用自动化打包来说实现这个工作。
Fastlane是什么?
Fastlane是一套非常实用而强大的组件,是用Ruby语言编写的一套自动化工具集和框架,其目的主要是为iOS和Android应用程序自动化测试部署和发布的最简单方法。它处理所有繁琐的任务,如生成屏幕截图,处理代码签名以及发布应用程序。
安装使用过程
1、安装
使用sudo gem install fastlane -NV
或是brew cask install fastlane
,这里使用gem安装的话需要注意一下淘宝ruby镜像已经不在更新,以前用过淘宝镜像的小伙伴需要更换为Ruby China 镜像。参考这里,安装过程可能需要一段时间,请耐心等待。
如果出现以下问题:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
用以下命令解决:
sudo gem install fastlane -NV -n /usr/local/bin
安装蒲公英插件:
fastlane add_plugin pgyer
2、初始化Fastlane
cd到你想要自动化打包的项目下
image.png
执行 fastlane init初始化,首先你需要输入你的开发者账号,如果你的appleid归属多个开发者账号的话根据需求选择一个回车继续,之后回提示输入密码并进行双重认证,根据提示输入即可。
image.png
接下来会让你输入App Identifier ,填入相应的id即可。
image.png
输入App名称。
image.png
到这里就证明fastlane已经初步配置到你的项目当中了。
image.png
3、设置相关配置文件
上面几步执行顺利的话你的项目里面会多一个fastlane文件夹,如图所示。
image.png
我们自动化测试的最重要的部署文件就是这个Fastfile文件,双击编辑,这里面每一个lane都可以配置一种打包方式。
image.png
我们在这里新增一个我们自己需要的lane。
desc "打包到pgy"
lane :test do |options|
gym(
clean:true, #打包前clean项目
export_method: "development", #导出方式
scheme:"shangshaban", #scheme
configuration: "Debug",#环境
output_directory:"./app",#ipa的存放目录
output_name:get_build_number(),#输出ipa的文件名为当前的build号
# Xcode9将不会允许你访问钥匙串里的内容,除非设置allowProvisioningUpdates
export_xcargs:"-allowProvisioningUpdates",
# 隐藏没有必要的信息
silent:true,
# 手动配置证书,注意打包方式需在export_options内使用method设置,不可使用export_method
export_options: {
method:"development",
provisioningProfiles: {
"xxxxxx":"xxxxxx",
"xxxxxxx":"xxxxxxx"
},
}
)
pgyer(api_key: "xxxxx", user_key: "xxxx",update_description: options[:desc])
end
蒲公英api_key、user_key获取方式。
这里的provisioningProfiles数据需要特别说明一下获取方式,在xcode里面点击product--》archive:
image.png
image.png
image.png
导出之后打开ExportOptions文件。
image.png
image.png
将上面红框部分对应到provisioningProfiles里面的值填进去就OK。
然后再终端输入fastlane add_plugin pgyer安装蒲公英相关插件:
image.png
根据提示输入sudo gem install unf_ext -v '0.0.7.5'命令回车:
image.png
4、运行打包并上传
在项目目录下面执行fastlane test,发现提示错误:
image.png
去项目buildsetting设置:
image.png
然后再执行fastlane test,然后等待打包完成。 image.png
搞定,快让测试同学去下载吧。
网友评论