Avatar ·

如何以编程方式判断应用是否在iPhone模拟器中运行?

大家好!我是一名iOS开发新手,遇到了一个问题:我需要在模拟器中执行一段代码,而在真实设备上执行另一段代码。例如,我只想在真实iPhone上使用摄像头,在模拟器中则显示占位符。但如何以编程方式检查呢? 我尝试在网上搜索,但遇到了各种编译宏和标志。在Objective-C中,它看起来像这样: ```objectivec #if TARGET_IPHONE_SIMULATOR // 模拟器代码 #else // 真实设备代码 #endif ``` 但我用的是Swift,无法直接移植这个结构。我尝试使用`#if targetEnvironment(simulator)`,但Xcode报错说这是无效的指令。是不是需要导入或链接什么?或者有其他方法? 我还听说可以检查处理器架构(模拟器是x86_64,真实设备是arm64),但这似乎不可靠——万一Apple发布ARM架构的模拟器呢?