如何通过 Fastlane 将构建分发给外部测试人员?

How do I distribute a build to external testers via Fastlane?

我有一个执行 uploadToTestFlight 操作的 Fastfile:

uploadToTestflight(
  username: "foo@example.com",
  skipWaitingForBuildProcessing: false,
  distributeExternal: true)

当我 运行 它成功时。但是,它实际上并没有将构建分发给任何人。当我在 App Store Connect > 我的应用程序 > Foo App > TestFlight > iOS 上查看构建时,它在构建名称附近显示 "Approved",这意味着它已经通过了审核过程。

但是,当我单击构建时,我注意到它发布到的唯一组或用户是 App Store Connect Users,这意味着它实际上并没有在外部发布。

我有一个名为 Foo Group 的组,我想在 运行 快车道上发布它。我该怎么做?

我尝试通过 documentation for Pilot 解决,但它没有外部分发的示例。

在 GitHub 的 Fastlane repo 中,我在 pilot/lib/pilot/build_manager.rb

中找到了这段代码
if options[:distribute_external] && options[:groups].nil?
  # Legacy Spaceship::TestFlight API used to have a `default_external_group` that would automatically
  # get selected but this no longer exists with Spaceship::ConnectAPI
  UI.user_error!("You must specify at least one group using the `:groups` option to distribute externally")
end

我的猜测是您没有注意到 Fastlane 运行 输出中的这个无声警告。您是否指定了 groups 参数?

如果您完全自动执行外部发布,那么指定 changelog 参数也是值得的。

optional_changelog = %Q{
  Your changelog
}

upload_to_testflight(
    ...
    changelog: optional_changelog,
    distribute_external: true,
    distribute_only: true, // false if you want to upload ipa
    groups: [
        "Your group",
        "Your other group"
    ],
    skip_submission: false, // defaults to false if not specified
    skip_waiting_for_build_processing: false, // defaults to false if not specified
)