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

Sen*_*ful 7 fastlane fastlane-pilot app-store-connect

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

uploadToTestflight(
  username: "foo@example.com",
  skipWaitingForBuildProcessing: false,
  distributeExternal: true)
Run Code Online (Sandbox Code Playgroud)

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

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

我有一个名为的组Foo Group,每当我运行 fastlane 时,我都想将其发布到该组。我怎么做?

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

Ted*_*Ted 7

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
)
Run Code Online (Sandbox Code Playgroud)


bal*_*630 5

在GitHub 上的Fastlane 存储库中,我在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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 您应该指定像 `groups: ["Foo Group"]` 这样的组 (5认同)