使用fastlane打包iOS测试版本
打包你的app
fastlane使用名叫build_app
的action来打包你的app,添加如下代码到你的Fastfile
:
lane :beta do
build_app(scheme: "MyApp")
end
你可以添加更多的参数来构建你的app,举例
lane :beta do
build_app(scheme: "MyApp",
workspace: "Example.xcworkspace",
include_bitcode: true)
end
你可以使用下面代码来执行
fastlane beta
如果成功了,你可以在当前目录下找到一个[产品名称].ipa
.获取更多相关参数可以执行fastlane action build_app
.
签名
如果你在上一步因为签名而导致失败,我们准备了签名向导帮助你设置你应用的签名.
上传你的app
在你构建完成你的app后.它将根据你的选择上传你的测试版本.fastlane的长处在于可以轻松的更换测试提供者,或者一次上传至多处而不要更多的工作.
你所要做的只是把测试提供者的名字列举在你的build_app
lane中:
lane :beta do
sync_code_signing(type: "appstore") # see code signing guide for more information
build_app(scheme: "MyApp")
upload_to_testflight
slack(message: "Successfully distributed a new beta build")
end
fastlane会自动的将.ipa的相关信息从build_app
中发送至你选择的测试提供者.
获取所有可用参数你可以:
fastlane action slack
Beta测试提供者
- TestFlight
你可以使用fastlane轻松的上传测试包到testflight上.只需要添加testflight
action在打包完成后
lane :beta do
# ...
build_app
upload_to_testflight
end
一些例子
lane :beta do
# ...
build_app
# Variant 1: Provide a changelog to your build
upload_to_testflight(changelog: "Add rocket emoji")
# Variant 2: Skip the "Waiting for processing" of the binary
# While this will speed up your build, it will not distribute
# the binary to your tests, nor set a changelog
upload_to_testflight(skip_waiting_for_build_processing: true)
end
如果你使用fastlane init 设置fastlane,你的appID存储在fastlane/Appfile中.你也可以重写用户名使用upload_to_testflight(username: "[email protected]")
.
获取可用参数你可以
fastlane action upload_to_testflight
你也可以使用fastlane自动管理你的测试者.
- Crashlytics
lane :beta do
# ...
build_app
crashlytics(api_token: "[insert_key_here]",
build_secret: "[insert_key_here]")
end
你可以通过组织设置页面获取你的API key 和secret links.
获取更多可用参数
fastlane action crashlytics
- HockeyApp
lane :beta do
# ...
build_app
hockey(api_token: "[insert_key_here]")
end
可以在API Tokens账户设置获取你的API token.
发布标注
- 根据git commits自动生成
你可以更改日志,这样就不需要太多的语句存储在Fastfile中.
lane :beta do
sync_code_signing
build_app
changelog_from_git_commits # this will generate the changelog based on your last commits
upload_to_testflight
end
更多的例子:
changelog_from_git_commits(
between: ['7b092b3', 'HEAD'], # Optional, lets you specify a revision/tag range between which to collect commit info
merge_commit_filtering: exclude_merges # Optional, lets you filter out merge commits
)
- 根据日志生成
你也可以根据日志自动生成标注
lane :beta do
# Variant 1: Ask for a one line input
changelog = prompt(text: "Changelog: ")
# Variant 2: Ask for a multi-line input
# The user confirms their input by typing `END` and Enter
changelog = prompt(
text: "Changelog: ",
multi_line_end_keyword: "END"
)
sync_code_signing
build_app
upload_to_testflight(changelog: changelog)
end
[https://www.jianshu.com/p/2a029dda5337](fastlane iOS官方翻译五 (生成正式包))