Подтвердить что ты не робот

IOS 9: Предупреждение "Все ориентации интерфейса должны поддерживаться, если приложение не требует полного экрана" для универсального приложения

Я работаю над универсальным приложением со всеми ориентациями на iPad и только портретом на iPhone. Приложение хорошо работает с многозадачной сплит-экраном на совместимом с iOS 9 iPad, но у меня есть это предупреждение:

All interface orientations must be supported unless the app requires full screen

И мое приложение не требует полного экрана. Это ограничивается только портфолио на iPhone... Разве это не нормально? Есть ли способ объявить "Требуется полный экран" только на iPhone?

Заранее спасибо

Кстати, я использую Xcode 7.3.1

4b9b3361

Ответ 1

Решением этого является использование "Ключей конкретных устройств": https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW9

Таким образом, ваши значения plist выглядят примерно так:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIRequiresFullScreen~ipad</key>
<false/>

Когда я удаляю конкретную версию ключа UIRequiresFullScreen для iPad, я теряю полную функциональность с разделенным экраном - доступен только "слайд", потому что это не влияет на использование моего приложения на экране полного устройства.

Флажки "Ориентация устройства" предназначены для значений plist по умолчанию. Единственный способ, которым они не повлияют на приложение на iPad, - это то, что в plist есть более конкретное значение, поэтому значение специально для iPad.

Когда система ищет ключ в вашем файле Info.plist приложений, он выбирает ключ, наиболее специфичный для текущего устройства и платформы.

Ответ 2

Установите UIRequiresFullScreen на YES в Info.plist.

введите описание изображения здесь

Наслаждайтесь...!!!

Ответ 3

На самом деле это было слишком просто... Вот почему я даже не пробовал:

Конфигурация

Настройка Portrait для Ориентация устройства не влияет на ориентацию iPad.

Это означает, что раздел Ориентация устройства должен быть переименован Ориентация на iPhone, действительно, с этой конфигурацией iPhone поддерживает только Portrait, и iPad поддерживает все из них, И разделенный экран по-прежнему разрешен, так как мы не отметили Requires full screen.

PS: По крайней мере, на Xcode 8.3.1 я не тестировал его на Xcode 7.x