当我使用upload_to_app_store()将我的应用上传到AppStore Connect时,它也会将一个版本上传到TestFlight,这会导致TestFlight中的默认版本是最后一个上传到AppStore的版本。
因此,在我的工作流程中,当我将应用推送到我的“沙盒”分支时,我只使用upload_to_testflight()上传到TestFlight,我们在这里很好。之后,我将最新的更改从“沙盒”推到我的“生产”分支。当我执行最后一步时,除了上传到AppStore之外,它还将构建上传到TestFlight,导致TestFlight中的版本连接到生产服务器。我不知道为什么会这样。
以下是推送到沙盒时执行的通道:
desc "Push a new beta build to TestFlight"
lane :deploy_testflight do
set_full_version()
setup_ci if is_ci
cocoapods(clean_install: is_ci)
match(
type: "appstore",
readonly: is_ci,
)
build_app(
workspace: "Runner.xcworkspace",
scheme: "Runner",
archive_path: "../build/ios/Runner.xcarchive",
output_directory: "../build/ios/Runner",
)
upload_to_testflight(
api_key_path: "./app_store_connect.json",
ipa: '../build/ios/Runner/Runner.ipa',
skip_waiting_for_build_processing: true,
)
end
这是在生产过程中:
desc "Push a new release build to App Store"
lane :deploy_appstore do
set_full_version()
setup_ci if is_ci
cocoapods(clean_install: is_ci)
match(
type: "appstore",
readonly: is_ci,
)
build_app(
workspace: "Runner.xcworkspace",
scheme: "Runner",
archive_path: "../build/ios/Runner.xcarchive",
output_directory: "../build/ios/Runner",
)
upload_to_app_store(
force: true,
reject_if_possible: true,
skip_metadata: false,
skip_screenshots: true,
languages: ['en-US'],
release_notes: {
"default" => "Updates",
"en-US" => "Updates",
},
submit_for_review: true,
automatic_release: true,
precheck_include_in_app_purchases: false,
submission_information: {
add_id_info_limits_tracking: true,
add_id_info_serves_ads: false,
add_id_info_tracks_action: true,
add_id_info_tracks_install: true,
add_id_info_uses_idfa: true,
content_rights_has_rights: true,
content_rights_contains_third_party_content: true,
export_compliance_platform: 'ios',
export_compliance_compliance_required: false,
export_compliance_encryption_updated: false,
export_compliance_app_type: '',
export_compliance_uses_encryption: false,
export_compliance_is_exempt: false,
export_compliance_contains_third_party_cryptography: false,
export_compliance_contains_proprietary_cryptography: false,
export_compliance_available_on_french_store: false
},
api_key_path: "./app_store_connect.json",
ipa: '../build/ios/Runner/Runner.ipa',
)
end
1条答案
按热度按时间zd287kbt1#
这与“快速通道”无关,实际上。这就是App Store Connect的工作方式。
这个想法是,在应用程序通过TestFlight测试后,您将发布相同的二进制文件,而不是上传新的二进制文件(通过不同的分支,或任何其他原因)。
如果你强烈地想要保持你当前的进程,最接近的伪解决方案是上传2个不同的应用程序(具有不同的捆绑标识符),例如。来自沙箱分支的
com.example.staging
和来自生产分支的com.example
。然而,我建议改变你的流程,而不是围绕系统工作。根据生态系统的工作方式(在本例中,App Store Connect)调整它们,你会遇到更少的麻烦:)