【问题标题】:How to check if an iOS app is running on the simulator. (objective-c)如何检查 iOS 应用程序是否在模拟器上运行。 (目标-c)
【发布时间】:2021-07-15 10:09:16
【问题描述】:

有没有办法在运行时检查应用程序是否在模拟器上运行? 我已经知道如何在编译时检查。我想确保应用程序在运行时在模拟器中运行。 (不迅速,在Objective-C中......) 谢谢。

【问题讨论】:

  • 我不完全理解这个问题。您的意思是在本地检查设备还是对现场用户进行某种远程监控?
  • 例如,如果我的应用程序在模拟器上运行,我想弹出窗口“此应用程序当前在模拟器上运行”。如果我的应用程序在实际的 iphone 设备上运行,我想弹出一个弹出窗口,说明“此应用程序当前正在真实设备上运行”。 @Seamus

标签: ios objective-c runtime simulator


【解决方案1】:

检查编译/运行时没有区别,因为 ios 设备和模拟器具有不同的架构 - arm64x86_64 相应地,您不能在模拟器上运行 ARM 代码,反之亦然。换句话说,您有两个针对目标平台构建的代码的编译副本。

要检查哪个正在运行,您可以使用下一个 iOS 模拟器 SDK 标志:

const BOOL IS_SIMULATOR(void) {
#if TARGET_IPHONE_SIMULATOR
    return YES;
#else
    return NO;
#endif
}

【讨论】:

  • 随着M1芯片的mac的发布,未来arm架构的输出会不会逐渐可以在模拟器中运行? @iUrii
  • @nickp 也许会有一些环境变量需要检查,但无论如何这是一个单独问题的好通知。
猜你喜欢
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 2015-06-09
  • 2012-06-21
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
相关资源
最近更新 更多