2016-12-04 9 views
0

У меня есть снимки, которые на каждое устройство. Я хочу проверить мои тесты, которые я запускаю на конкретном симуляторе, для которого есть снимок.Как проверить, работает ли я на симуляторе iPhone6s Plus

Так, например, я хочу проверить, что текущий симулятор 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» для типа устройства.

+1

http://stackoverflow.com/questions/26028918/ios-how-to-determine-iphone-model-in- swift – ColdSteel

+0

Неплохо. Это физическое устройство. Мне нужен симулятор типа –

+0

Помог ли мой ответ для вас? –

ответ

0

Попробуйте [NSProcessInfo processInfo].environment[@"SIMULATOR_MODEL_IDENTIFIER"]

Он вернется iPhone8,2 для iPhone6s Plus Simulator.

Внимание: у вас могут возникнуть причины писать код против конкретной модели симулятора, но это, как правило, не очень хорошая идея. Вместо этого вы должны динамически адаптировать размеры экрана, проверить наличие API/Framework и т. Д.