【转】iOS如何使用fastlane的pilot将ios包上传到
通过一些基础知识可以知道pilot是专门管理testflight打包审核的,但在百度搜索”pilot fastlane“搜不到完整命令如何写的。
所以在这篇进行一个中间人跳转。
https://www.jianshu.com/p/eafa2fa37c1b 《 iOS项目的 fastlane / jenkins 实践》这篇博客里有fastlane上传testflight并提交beta审核的命令。
补充一下文章里面的代码,
自定义文件位置 lane :build_appstore下面添加
output_directory: './testflight',
output_name: 'TestDemo.ipa'
然后 lane :upload_testflight下面的
ipa: "XXX" 改为 ipa: "testflight/TestDemo.ipa"
上传失败的经历:
0.要给终端完全磁盘权限,部分文件夹也需要chmod 777
1.工程的证书配置是测试的,手动设置,fastlane里面是生产的。导致上传失败。
2.fastlane里面没设置版本号,导致在工程里面改了版本号也会被fastlane变成1
3.上传testflight,要把忽略截图写上
4.双重认证设置
5.beta_app_review_info。value must be a Hash! Found String instead. 去掉这个字段
6.false不要拼错
7 Could not set beta_app_feedback_email and/or beta_app_description: Server error got 504
8.家里的长城宽带,传8次7次503,504。
在公司联通LTE网,不行,等不了200k
在家里联通LTE网慢点,但没报错。
在家里电信4G网快,但经常报错,443或者读取ipa错误。
9.FASTLANE_XCODEBUILD_SETTINGS_RETRIES 设置大点 经常报超时
10.[Transporter Error Output]: An exception has occurred: Broken pipe (Write failed)
最终我完善后的fastlane命令是,可以提交testflight审核,提测,通知测试人员
# -------------- testflight -------------- #
desc "Build and upload a PROD app to TestFlight"
lane :release_testflight do
build_appstore
upload_testflight
end
lane :build_appstore do
increment_build_number_in_plist(
target: '~~~~~',
build_number: '1.0.4.444444'
)
increment_version_number_in_plist(
target: '~~~~~~~',
version_number: '1.0.3'
)
gym(
configuration: "Release",
scheme: "~~~~~~~",
clean: true,
include_bitcode: true,
include_symbols: true,
export_method: 'app-store',
export_xcargs: "-allowProvisioningUpdates",
output_directory: './testflightNew',
output_name: 'TestDemo.ipa'
)
end
lane :upload_testflight do
upload_to_testflight(
beta_app_review_info: {
contact_email: "111@qq.com",
contact_first_name: "ww",
contact_last_name: "分",
contact_phone: "123",
demo_account_name: "123",
demo_account_password: "111",
notes: "适用于fastlane自动打包上传提审等操作 thank you for reviewing"
},
localized_build_info: {
"default": {
whats_new: "适用于fastlane自动打包上传提审等操作",
},
"en-GB": {
whats_new: "适用于fastlane自动打包上传提审等操作",
}
},
# true就不自动提审了
skip_waiting_for_build_processing: false,
skip_submission:false,
username: "123@qq.com",
app_identifier: "com.123",
beta_app_feedback_email:"123@qq.com",
beta_app_description:"适用于fastlane自动打包上传提审等操作",
demo_account_required: true,
#构建是否应该分发给外部测试人员?
distribute_external: true,
notify_external_testers: true,
groups:"122222",
changelog:"适用于fastlane自动打包上传提审等操作",
beta_app_feedback_email:"22222@qq.com",
ipa: "testflightNew/TestDemo.ipa"
)
end
# -------------- testflight -------------- #