使用 Fastlane 将包上传到 App Store Connect 也会将其上传到 TestFlight 构建列表中

问题描述 投票:0回答:1

当我使用 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
ios flutter app-store app-store-connect fastlane
1个回答
0
投票

实际上,这与 fastlane 无关。这就是 App Store Connect 的工作原理。

这个想法是,在通过 TestFlight 对应用程序进行测试后,您将发布相同的二进制文件,而不是上传新的二进制文件(通过不同的分支或任何其他原因)。

如果您强烈希望保留当前流程,那么您得到的最接近的伪解决方案是上传 2 个不同的应用程序(具有不同的捆绑包标识符),例如

com.example.staging
来自您的沙箱分支,以及
com.example
来自您的生产分支。

但是,我建议更改您的流程,而不是围绕系统进行工作。根据生态系统的工作方式(在本例中为 App Store Connect)来调整它们,您就会遇到更少的麻烦:)

© www.soinside.com 2019 - 2024. All rights reserved.