【问题标题】:How to check if I am running on iPhone6s Plus simulator如何检查我是否在 iPhone 6s Plus 模拟器上运行
【发布时间】:2017-04-18 20:45:21
【问题描述】:

我有每个设备的快照测试。我想检查我在具有快照的特定模拟器上运行的测试。

所以例如我想测试当前的模拟器是 iPhone6sPlus9.2 因为我没有为我拥有的许多其他模拟器类型记录快照。

我尝试了很多变体,例如:

(lldb) po [[UIDevice currentDevice] platform]
x86_64

(lldb) po [[UIDevice currentDevice] hwmodel]
MacBookPro11,2

(lldb) po [[UIDevice currentDevice] platformType]
0x0000000000000002

(lldb) po [[UIDevice currentDevice] platformString]
iPhone Simulator

(lldb) po [[UIDevice currentDevice] model]
iPhone

(lldb) po [[UIDevice currentDevice] localizedModel]
iPhone

(lldb) po [[UIDevice currentDevice] systemName]
iPhone OS

(lldb) po [[UIDevice currentDevice] systemVersion]
9.2

(lldb) po [UIDevice currentDevice]
<UIDevice: 0x7fccf060a480>

(lldb) po [[UIDevice currentDevice] name]
iPhone Simulator // I WANT TO KNOW THAT IT IS IPHONE6SPLUS 9.2

还有来自这里的代码https://github.com/erica/uidevice-extension/

以及来自

的代码

// UIDevice+YYAdd.h // YYKit https://github.com/ibireme/YYKit

但两者都返回不相关的值,例如设备类型的“x86”。

【问题讨论】:

标签: ios xctest uidevice fbsnapshottestcase


【解决方案1】:

试试[NSProcessInfo processInfo].environment[@"SIMULATOR_MODEL_IDENTIFIER"]

对于 iPhone6s Plus 模拟器,它将返回 iPhone8,2

注意:您可能有理由针对特定的模拟器模型编写代码,但这通常不是一个好主意。您应该改为动态调整屏幕尺寸,检查 API / 框架的可用性等等......

【讨论】:

    猜你喜欢
    • 2015-12-06
    • 2020-10-31
    • 2017-08-27
    • 2016-11-12
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    相关资源
    最近更新 更多