fastlane
fastlane是自动化iOS和Android应用程序Beta部署和发布的最简单方法。它可以处理所有繁琐的任务,例如生成屏幕截图,处理代码签名以及发布应用程序。
依赖环境
Xcode7 +
macOS or Linux with Ruby 2.0.0 +
fastlane环境配置
1、检查Ruby版本,低版本需升级到2.0.0以上,在终端输入以下命令:
ruby -v
2、添加ruby源https://rubygems.org,在终端输入以下命令:
gem sources --add https://rubygems.org
3、安装Xcode command line tools,在终端输入以下命令:
xcode-select --install
4、安装fastlane,在终端输入命令如下:
使用RubyGems(macOS / Linux / Windows)
sudo gem install fastlane -NV
如果报错:ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/commander
sudo gem install -n /usr/local/bin fastlane
安装完可执行fastlane --version
,确认下是否安装完成和当前使用的版本号。
5、初始化fastlane,cd进入到工程目录下输入命令如下:
fastlane init
成功后会自动生成fastlane文件夹,里面有Appfile
和Fastfile
。
注:deliver可以完全管理与iTC的交互,上传和下载多语言截图、元数据,上传二进制文件。
配置Appfile
app_identifier "***.***.***" # bundleId
apple_id "***@qq.com" # 苹果账号
team_id "***"
*配置Fastfile,打包上传到蒲公英、fir、appStore
default_platform(:ios)
platform :ios do
desc "Push a new release build to the App Store"
# ----------------------- 上传AppStore -----------------------
lane :release do
puts "*************| 开始上传AppStore... |*************"
# 更新项目build号
updateProjectBuildNumber
gym(
# 指定输出的ipa名称
output_name:"#{project_release_scheme}_#{get_build_number()}",
# 指定项目名称
scheme:"#{project_release_scheme}",
# 是否清空以前的编译信息 true:是
clean:true,
# 指定打包方式,Release 或者 Debug
configuration:"Release",
# 指定输出文件夹
output_directory:"#{ipa_outputDirectory}",
# Xcode9将不会允许你访问钥匙串里的内容,除非设置allowProvisioningUpdates
export_xcargs:"-allowProvisioningUpdates",
# 隐藏没有必要的信息
silent:true,
# 指定打包方式,目前支持app-store, package, ad-hoc, enterprise, development
# 注:由于使用手动配置证书,在export_options指定打包方式
#export_method:"#{app-store}",
# 手动配置证书,注意打包方式需在export_options内使用method设置,不可使用export_method
export_options: {
method:"app-store",
provisioningProfiles: {
"#{project_identifier}":"#{project_release_provisioningProfiles}"
}
}
)
deliver(
# 选择跳过图片和元数据上传,自己去配置
skip_screenshots:true,
skip_metadata:true,
# 上传所有信息到App Store
force:true,
)
puts "*************| 上传AppStore成功 |*************"
end
desc "Push a new release build to the pgyer"
# ----------------------- 打包内测.ipa文件 -----------------------
lane :pgyerUp do
puts "*************| 开始打包.ipa到蒲公英... |*************"
# 更新项目build号
#updateProjectBuildNumber
# 开始打包
gym(
# 指定输出的ipa名称
output_name:"xxxx.ipa",
# 指定工程名称
scheme:"xxxx",
# 项目的workspace
workspace: "xxxx.xcworkspace",
# 是否清空以前的编译信息 true:是
clean:true,
# 指定打包方式,Release 或者 Debug
configuration:"Release",
# 指定输出文件夹 ./fastlane/ipa
output_directory:"/Users/xxxx/Desktop/xxxx",
# Xcode9将不会允许你访问钥匙串里的内容,除非设置allowProvisioningUpdates
export_xcargs:"-allowProvisioningUpdates",
# 隐藏没有必要的信息
silent:true,
# 指定打包方式,目前支持app-store, package, ad-hoc, enterprise, development
# 注:由于使用手动配置证书,在export_options指定打包方式
#export_method:"development",
# 手动配置证书,注意打包方式需在export_options内使用method设置,不可使用export_method
export_options: {
method:"development",
provisioningProfiles: {
# "boundleId":"描述文件名称"
"com.xxxx.xxxx":"development_profile"
},
signingStyle: "manual"
}
)
puts "*************| 开始上传蒲公英... |*************"
# 开始上传蒲公英
pgyer(api_key: "xxxx", user_key:"xxxx")
puts "*************| 上传蒲公英成功 |*************"
end
desc "Push a new release build to the fir"
# ----------------------- 打包内测.ipa文件 -----------------------
lane :firUp do
puts "*************| 开始打包.ipa文件到fir... |*************"
# 更新项目build号
#updateProjectBuildNumber
# 开始打包
gym(
# 指定输出的ipa名称
output_name:"xxxx.ipa",
# 指定工程名称
scheme:"xxxx",
# 项目的workspace
workspace: "xxxx.xcworkspace",
# 是否清空以前的编译信息 true:是
clean:true,
# 指定打包方式,Release 或者 Debug
configuration:"Release",
# 指定输出文件夹 ./fastlane/ipa
output_directory:"/Users/xxxx/Desktop/xxxx",
# Xcode9将不会允许你访问钥匙串里的内容,除非设置allowProvisioningUpdates
export_xcargs:"-allowProvisioningUpdates",
# 隐藏没有必要的信息
silent:true,
# 指定打包方式,目前支持app-store, package, ad-hoc, enterprise, development
# 注:由于使用手动配置证书,在export_options指定打包方式
#export_method:"development",
# 手动配置证书,注意打包方式需在export_options内使用method设置,不可使用export_method
export_options: {
method:"development",
provisioningProfiles: {
# "boundleId":"描述文件名称"
"com.xxxx.xxxx":"development_profile"
}
}
)
puts "*************| 开始上传fir... |*************"
# 开始上传fir
firim(firim_api_token: "xxxx")
puts "*************| 上传fir成功 |*************"
end
end
自行填补xxxx处内容即可
上传蒲公英
1、安装蒲公英插件,在工程目录下输入命令如下:
fastlane add_plugin pgyer
2、打包自动上传到蒲公英,在工程目录下输入命令如下:
fastlane pgyerUp
注:以上的 api_key
和 user_key
,请开发者在自己账号下的 应用管理
- App概述
- API
中可以找到,并替换到以上相应的位置。
上传fir.im
1、添加两个插件
fastlane add_plugin versioning
fastlane add_plugin firim
2、在工程目录下输入命令如下:
fastlane firUp
上传appStore
在工程目录下输入命令如下:
fastlane release
以上就是fastlane自动化打包上传的简单使用。