ios 使用Fastlane将软件包上传到App Store Connect也会在TestFlight构建列表中上传

wtlkbnrh  于 2023-10-21  发布在  iOS
关注(0)|答案(1)|浏览(214)

当我使用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
zd287kbt

zd287kbt1#

这与“快速通道”无关,实际上。这就是App Store Connect的工作方式。
这个想法是,在应用程序通过TestFlight测试后,您将发布相同的二进制文件,而不是上传新的二进制文件(通过不同的分支,或任何其他原因)。
如果你强烈地想要保持你当前的进程,最接近的伪解决方案是上传2个不同的应用程序(具有不同的捆绑标识符),例如。来自沙箱分支的com.example.staging和来自生产分支的com.example
然而,我建议改变你的流程,而不是围绕系统工作。根据生态系统的工作方式(在本例中,App Store Connect)调整它们,你会遇到更少的麻烦:)

相关问题