检测iOS应用程序是否从苹果的TestFlight下载

在过去,我已经为通过TestFlight分发的生产和testing版本build立了单独的构buildconfiguration。 这使得对beta版本进行修改变得很容易,例如将应用程序的其他设置暴露出来,让testing人员更彻底地testing,并查看有关应用程序状态的更多技术信息。

有没有办法来检查一个应用程序是否已经通过Apple的TestFlight进行分发,以更改应用程序的运行方式? 编译指示不再有意义,因为可以将相同的构build版本分发给Betatesting者并提交给商店,但也许有一种方法可以在运行时进行检查。

这工作:

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

更新

上面的方法似乎不再有效 ,苹果改变了他们签署TestFlight构build的方式。 但是,这确实有效:

 BOOL isRunningTestFlightBeta = [[[[NSBundle mainBundle] appStoreReceiptURL] lastPathComponent] isEqualToString:@"sandboxReceipt"];