如果应用程序当前正在测试设备/模拟器或真实的应用程序商店安装中运行,有没有办法在运行时找到它?
我需要在应用程序中实施广告跟踪,在测试/调试期间,我不想发送跟踪数据,因为这会更改统计信息。
但我不想仅仅区分DEBUG / RELEASE构建,因为RELEASE构建是例如在分析期间也使用。
如果应用程序来自真正的应用程序商店安装,可能会在某处设置配置?或者其他任何方式?
感谢。
答案 0 :(得分:4)
您可以在UIDevice
上添加以下类别,以检查它是否在设备或模拟器上运行。
- (BOOL)isSimulator {
#if TARGET_IPHONE_SIMULATOR
return true;
#else
return false;
#endif
}
+ (BOOL)isSimulator {
return [[self currentDevice] isSimulator];
}
编辑:我刚刚探索并发现有一种方法可以知道应用程序实例是否来自app store。这是:
if ([[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]) {
// not from app store
} else {
// from app store
}
您可以参考此SO thread了解详情。
答案 1 :(得分:2)
如果您为调试,分发和应用商店版本(理想情况下应该)创建单独的配置,则可以添加用户定义的设置'每个配置具有不同的值。 这可以通过info.plist文件导出代码作为bundle属性公开,您可以编写代码来以不同的方式处理每个配置。
Refer this answer通过屏幕截图更详细地了解这一点。
答案 2 :(得分:0)
我提出了以下解决方案:
https://data.seattle.gov/resource/pu5n-trf4.json?
$where=within_polygon(incident_location,
'MULTIPOLYGON(((-122.345239999941 47.7339842230969,-122.344670705637 47.7051200031236, -122.35540073991 47.7051536806063,-122.355548433321 47.7340195160745, -122.345239999941 47.7339842230969)))')
这涵盖除了直接(通过USB)上传到设备的RELEASE Build之外的所有内容。我仍然无法找到解决方案来检查这一点(除了lukya的手动解决方案)。