检测iOS App是否从Apple的Testflight下载

Ant*_*tox 20 cocoa-touch itunesconnect ios testflight

在过去,我已经为生产提供了单独的构建配置,并通过TestFlight分发了beta版本.这样可以轻松地对beta版本进行修改,例如公开应用程序的其他设置,让测试人员更彻底地测试内容,并查看有关应用程序状态的更多技术信息.

有没有办法检查是否已通过Apple的TestFlight分发应用程序以更改应用程序的运行方式?编译器指令不再有意义,因为相同的构建可以分发给beta测试人员并提交给商店,但也许有一种方法可以在运行时进行检查.

Kev*_*ers 36

这有效:

if ([[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]) {
    // TestFlight
} else {
    // App Store (and Apple reviewers too)
}
Run Code Online (Sandbox Code Playgroud)

更新

上述方法似乎不再适用,Apple改变了他们签署TestFlight构建的方式.这确实有效:

BOOL isRunningTestFlightBeta = [[[[NSBundle mainBundle] appStoreReceiptURL] lastPathComponent] isEqualToString:@"sandboxReceipt"];
Run Code Online (Sandbox Code Playgroud)

  • 虽然TestFlight确实采取了第一条路径,但我刚刚确认Apple的评论员没有.他们采取App Store路径,这对我来说真是个坏消息:( (3认同)
  • 我在一个生产应用程序中使用它,到目前为止12个更新,所有通过审查都很好. (3认同)
  • 似乎这不再适用于iOS 9 :( (3认同)