在平常的开发工做中给测试同窗打包测试是很正常的流程,可是每次都经过Xcode archive来生成测试包而后再导出,而后在上传到三方测试网站(蒲公英、fir等),一次两次感受没有什么。可是一次次从新打包,以后就是所有重复无心义的工做,就会感受很烦了,因而我想到了用自动化打包来讲实现这个工做。api
Fastlane是一套很是实用而强大的组件,是用Ruby语言编写的一套自动化工具集和框架,其目的主要是为iOS和Android应用程序自动化测试部署和发布的最简单方法。它处理全部繁琐的任务,如生成屏幕截图,处理代码签名以及发布应用程序。xcode
使用sudo gem install fastlane -NV或是brew cask install fastlane,这里使用gem安装的话须要注意一下淘宝ruby镜像已经不在更新,之前用过淘宝镜像的小伙伴须要更换为Ruby China 镜像。参考这里,安装过程可能须要一段时间,请耐心等待。ruby
cd到你想要自动化打包的项目下 bash
执行 fastlane init初始化,首先你须要输入你的开发者帐号,若是你的appleid归属多个开发者帐号的话根据需求选择一个回车继续,以后回提示输入密码并进行双重认证,根据提示输入便可。 app
上面几步执行顺利的话你的项目里面会多一个fastlane文件夹,如图所示。 框架
咱们在这里新增一个咱们本身须要的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: 测试
将上面红框部分对应到provisioningProfiles里面的值填进去就OK。 而后再终端输入fastlane add_plugin pgyer安装蒲公英相关插件: 网站
在项目目录下面执行fastlane test,发现提示错误: ui