2014-12-05 3 views
0

Я пытаюсь сделать свое приложение универсальным и для IOS 8 IOS 7. Эти макросы отлично работают в симуляторе IOS, но когда я пытаюсь открыть его в IOS 7.1, симулятор щенят это сообщение в Xcode 6.1. Ниже изображение. enter image description hereКак сделать мое приложение универсальным?

У меня есть следующие макросы:

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) // iPhone and  iPod touch style UI 

#define IS_IPHONE_5_IOS7 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0f) 
#define IS_IPHONE_6_IOS7 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0f) 
#define IS_IPHONE_6P_IOS7 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0f) 
#define IS_IPHONE_4_AND_OLDER_IOS7 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height < 568.0f) 

#define IS_IPHONE_5_IOS8 (IS_IPHONE && ([[UIScreen mainScreen] nativeBounds].size.height/[[UIScreen mainScreen] nativeScale]) == 568.0f) 
#define IS_IPHONE_6_IOS8 (IS_IPHONE && ([[UIScreen mainScreen] nativeBounds].size.height/[[UIScreen mainScreen] nativeScale]) == 667.0f) 
#define IS_IPHONE_6P_IOS8 (IS_IPHONE && ([[UIScreen mainScreen] nativeBounds].size.height/[[UIScreen mainScreen] nativeScale]) == 736.0f) 
#define IS_IPHONE_4_AND_OLDER_IOS8 (IS_IPHONE && ([[UIScreen mainScreen] nativeBounds].size.height/[[UIScreen mainScreen] nativeScale]) < 568.0f) 

#define IS_IPHONE_5 (([ [ UIScreen mainScreen ] respondsToSelector: @selector(nativeBounds) ]) ? IS_IPHONE_5_IOS8 : IS_IPHONE_5_IOS7) 
#define IS_IPHONE_6 (([ [ UIScreen mainScreen ] respondsToSelector: @selector(nativeBounds) ]) ? IS_IPHONE_6_IOS8 : IS_IPHONE_6_IOS7) 
#define IS_IPHONE_6P (([ [ UIScreen mainScreen ] respondsToSelector: @selector(nativeBounds) ]) ? IS_IPHONE_6P_IOS8 : IS_IPHONE_6P_IOS7) 
#define IS_IPHONE_4_AND_OLDER (([ [ UIScreen mainScreen ] respondsToSelector: @selector(nativeBounds) ]) ? IS_IPHONE_4_AND_OLDER_IOS8 : IS_IPHONE_4_AND_OLDER_IOS7) 

Как решить эту проблему?

ответ

2

Возможно, 7,1 симулятор не установлен на вашем компьютере (он не установлен по умолчанию). Внутренние настройки> Загрузки показывают, установлено ли это в разделе «Компоненты».

enter image description here

+1

Спасибо! Ваш ответ равен% 100! Хотел бы я дать вам 1000 upvotes, но мне разрешено только одно :). Я также отмечаю, что вы отвечаете как ответ, если у кого-то будет эта проблема - вот решение. Еще раз спасибо другу! Мне все еще нужен рекламный код для версии IOS 7 с этими макросами, симулятор работает, но сбой, и, как кто-то скажет, что это будет так, пока вы не добавите для него некоторые макросы и код. –

1

Что вы здесь описываете как проблему, так это не ваша роль приложения как универсального приложения (что означает, что оно является родным для iPhone и iPad), эта часть работает нормально), а как приложение, которое разрешено запускать на более старой, чем его базовый SDK.

Просто установите цель развертывания. Самый простой способ - отредактировать проект - см. Всплывающее окно «Установка развертывания» на вкладке «Информация».

enter image description here

В этом скриншоте, цель развертывания 8,1, что означает, что мы не можем работать даже на 8 прошивке, не говоря уже IOS 7! Установив его, скажем, на 7.0, вы разрешите использовать еще iOS 7.0.

Смежные вопросы