![](/img/trans.png)
[英]Can a app detect if it's installed as “External Testing” via TestFlight
[英]Detect TestFlight?
我更喜欢使用与TestFlight和App Store相同的构建配置。 有没有办法在运行时检测应用程序是否已通过TestFlight或App Store安装? (我的想法是,如果没有通过App Store安装,我只会调用takeOff
。)
我想避免在App Store版本中使用TestFlight来保护我的用户的隐私,并避免这里讨论的网络的潜在脱轨。
我认为这足够接近于重复检查iOS应用程序是否在应用商店中存在 ,这可以关闭。
您可以通过检查是否缺少embedded.mobileprovision来确定您的应用是否通过应用商店分发。 此文件仅包含在adhoc版本中。 因此,如果您只通过TestFlight或HockeyApp分发构建,并且它不是商店构建,则它必须是TestFlight或HockeyApp构建。
像这样:
if ([[NSBundle mainBundle] pathForResource:@"embedded"
ofType:@"mobileprovision"]) {
// not from app store
} else {
// from app store
}
这项技术来自HockeyApp SDK 。
要在Swift中确定Debug,TestFlight或AppStore部署:
private static let isTestFlight = NSBundle.mainBundle().appStoreReceiptURL?.lastPathComponent == "sandboxReceipt"
// This can be used to add debug statements.
static var isDebug: Bool {
#if DEBUG
return true
#else
return false
#endif
}
完整的来源和样本: https : //stackoverflow.com/a/33830605/639227
这是一篇博客文章,向您展示如何添加除Debug和Release之外的其他配置(例如Beta)。
添加Beta配置后,您将创建另一个项目方案。 然后编辑这个新方案。 在Archive部分下,请选择使用Beta配置。 然后,您使用此方案存档Testflight和以前的方案来实现app store。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.