有没有办法在运行时查明应用程序当前是在测试设备/模拟器上运行还是从真实的应用商店安装中运行?
我需要在应用程序中实现广告跟踪,并且在测试/调试期间我不想发送跟踪数据,因为这会改变统计信息。
但我不想仅仅区分 DEBUG/RELEASE 构建,因为 RELEASE 构建是例如在分析过程中也使用。
如果该应用程序来自真实的应用程序商店安装,可能在某处设置了配置?还是其他方式?
谢谢。
最佳答案
您可以在 UIDevice
上添加以下类别来检查它是在设备上还是在模拟器上运行。
- (BOOL)isSimulator {
#if TARGET_IPHONE_SIMULATOR
return true;
#else
return false;
#endif
}
+ (BOOL)isSimulator {
return [[self currentDevice] isSimulator];
}
编辑: 我刚刚探索并发现有一种方法可以知道应用程序实例是否来自应用程序商店。在这里:
if ([[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]) {
// not from app store
} else {
// from app store
}
可以引用这个SO thread了解更多详情。
关于ios - 应用程序是否在测试设备/模拟器/真实应用程序商店安装上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33231824/