Предупреждения Xcode 7 Beta: ориентация интерфейса и запуск раскадровки

131

Я открыл свой проект в бета-версии Xcode 7 и получаю следующие предупреждения, которых нет в Xcode 6:

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


 A launch storyboard or xib must be provided unless the app requires
 full screen.

Приложение использует портретную ориентацию только для устройств, и я настроил ее именно так. У меня также есть раскадровки для интерфейсов iphone и ipad. Я не могу определить, почему получаю эти предупреждения. Это ошибка бета-версии Xcode 7?

bachma0507
источник
звучит как ошибка. Посетите форумы разработчиков Apple. Радость быть бета-тестером: p
Sam B

Ответы:

274

Это предупреждение является новым для iOS 9, поскольку оно поддерживает приложения с изменяемым размером и многооконным режимом. Раньше приложения автоматически масштабировались для новых устройств, у которых было разрешение аппаратного дисплея, отличное от разрешений в изображении запуска (именно так iOS определяет поддерживаемые разрешения интерфейса). Теперь приложения, которые поддерживают многооконность, должны определять поддерживаемые ими разрешения, включая изображение запуска или раскадровку для всех типов экранов устройств.

Если вы не переписываете свое приложение для поддержки многооконного режима, вам потребуется «Полный экран». Это намек для iOS, что вы не поддерживаете многооконность, и в основном заставляет iOS 9 работать как предыдущие версии в этом отношении.

Итак, если вы отправляете обновление приложения для iOS 9 и не поддерживаете многооконный режим, все, что вам нужно сделать, это перейти к настройкам цели проекта, выбрать «Общие» и в разделе «Информация о развертывании» найти флажок называется «Требуется полный экран». Отметьте это, и предупреждения исчезнут.

Это, конечно, не ошибка. Если это предупреждение присутствует, у вашего приложения могут быть проблемы при отправке. Не уверен в этом, потому что я еще не представил приложение с iOS 9 GM Seed, но я обязательно поставлю галочку :-)

Саймон Тилсон
источник
4
Этот ответ намного лучше, чем ведущий в настоящее время. Спасибо, что объяснили «почему» этого изменения и «что» на самом деле представляет собой полноэкранный режим. (Я подумал, что это та же настройка, что и в играх, чтобы избавиться от строки заголовка, но, похоже, это не так.)
natevw
@natevw, но далеко не такой лаконичный, как тот, который говорит вам «просто проверьте все чертовы флажки». Этот ответ заставил меня поверить, что мне нужна была куча новых изображений экрана запуска, чтобы убрать предупреждение ...
dcow
1
@dcow - Значит, вы неправильно прочитали. Я четко заявил, что вам нужно только добавить изображения запуска ИЛИ поставить галочку в поле Требуется полноэкранный режим. На эти вопросы редко можно найти простой ответ ... Все зависит от того, чего вы хотите достичь.
Саймон Тилсон
1
@SimonTillson, вы неправильно прочитали мой комментарий и явно не посмотрели на ответ ниже. Я не говорю о том, что требуется полноэкранный режим . Фактическое исправление заключается в поддержке всех ориентаций. Это не требует добавления изображений запуска. Это просто означает, что в общих настройках проекта установлены все флажки под ориентацией устройства . Возможно, вы подразумеваете, что, предлагая исправление, «включать изображение запуска или раскадровку для всех типов экранов устройств» , но, как я уже сказал, далеко не так кратко, как ответ, который явно говорит вам об этом.
dcow
@dcow OP касался только устранения предупреждений, он не спрашивал о том, как поддерживать многооконность. Поскольку многооконный режим работает должным образом только при собственном разрешении, вы правы, что изображения запуска должны быть загружены для всех типов экранов устройств, а все используемые ориентации должны быть отмечены галочкой. Я до сих пор не понимаю, в чем заключалась ваша первоначальная проблема с моим ответом, поскольку большинство пользователей просто хотели знать значение Требуется полноэкранный режим и / или как избавиться от предупреждения.
Саймон Тилсон
62

Просто перейдите к своей цели, нажмите вкладку «Общие», найдите раздел «Информация о развертывании», установите флажок «Требуется полноэкранный режим». :)

Это так просто, правда?

Кстати, это не лучшее решение. Будет все больше и больше лучших решений. Но когда я отвечу на этот вопрос, я только подумал, как убить предупреждения. Я не объяснил, зачем это нужно, но как это решить. Бета-версия Xcode может изменить ее функции, поэтому я просто предлагаю «обходной путь» в то время. Поэтому, если вы думаете, что мое решение - обходной путь, проголосуйте за другие лучшие ответы. Но это не повод для голосования "против". Спасибо :)

YangXiaoyu
источник
15
Это определенно не решение, а просто недоработанный обходной путь. С уважением, я не согласен с вашим ответом.
kbpontius
Другое решение - проверить всю «Ориентацию устройства» в одном месте и предоставить файл xib или раскадровки вместо файла изображения. Иногда приходится делать выбор: поставить галочку «Требуется полный экран» или все в «Ориентации устройства». Потому что Xcode просит нас сделать это. :)
YangXiaoyu
6
@kpont Какого именно решения вы ожидаете? Волшебный щелчок пальца, чтобы убрать предупреждение? Xcode 7 имеет необходимые дополнительные метаданные, и вы должны их предоставить. Если вы считаете, что это ошибка, открывали ли вы отчет об ошибке в Apple?
Лео Натан,
6
Обходной путь действителен в контексте «вчера мое приложение было создано и работало нормально, но сегодня Xcode выдает предупреждение». Очевидно, Apple хотела бы, чтобы каждый разработчик обновлял каждое приложение для работы с каждой включенной функцией. Однако, «здесь, в реальном мире», иногда нам просто нужно выдвинуть исправление ошибки или какую-либо следующую сборку, а позже разобраться с постоянно меняющимся ландшафтом Apple. Обходной путь действителен. Точно так же концепция добавления xib / раскадровок для поддержки ориентации действительна. Ура!
Olie
4
«Неполный обходной путь», для которого Apple добавила флажок в разделе «Общие настройки» ...
Ривера
15

Это потому, что Apple добавила возможность многозадачности в iOS 9. Все, что вам нужно сказать Xcode, - это то, что вашему приложению требуется полноэкранный режим.

Добавьте ключ UIRequiresFullScreen в файл Info.plist вашего проекта Xcode и примените логическое значение YES.

Чтобы прочитать об этом в целом.
https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/index.html

Рохит Гоял
источник
11

Я только что увидел эту ошибку, и после прочтения комментариев я определенно хочу поддерживать iPad и использование нескольких окон. Это так же просто, как проверить ориентацию устройства. параметры «Пейзаж влево» и «Пейзаж вправо» и убедиться, что мой интерфейс поддерживает их.

Лучший способ, который я нашел для проверки хорошей поддержки многооконности, - это использовать симуляторы с изменяемым размером или, что лучше, на мой взгляд, использовать iPad Pro в XCode 7.1 и фактически активировать функцию многооконного режима, перетаскивая его вправо. После выполнения этих шагов мое приложение поддерживает эти функции, и я могу быстро увидеть, что мне нужно обновить или оптимизировать для их полной поддержки.

d2burke
источник
«Лучший способ, который я нашел для проверки хорошей поддержки многооконного режима, - это использовать симуляторы с изменяемым размером или, лучше, IMO, использовать iPad Pro в XCode 7.1 и фактически активировать функцию многооконного режима, перетаскивая его вправо». Это буквально ответ, в разговорной речи. Вы могли уточнить в своем комментарии перед голосованием против.
d2burke 08
Хороший момент, мне не хватало разговорного стиля. Я приношу извинения. Но, возможно, вы захотите его переписать - я пропустил первый раз, и я носитель языка.
Abizern 08
Понимаю :) Спасибо за отзывчивость. Сейчас обновлю.
d2burke 08
2
ЭТО НАСТОЯЩИЙ ответ на этот вопрос. Спасибо!
Aviel Gross
вверх ногами у меня не проверяли. включение удаляет предупреждение. Я тоже думаю, что это правильный ответ
neelabh
8

По умолчанию ориентация устройства включает только книжную, альбомную левую и альбомную правую. Вам также необходимо включить Upside Down.

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

CosmicMind
источник
3

«Очистить папку сборки» и построить заново

Я получил All interface orientations must be supported unless the app requires full screen.сообщение сегодня в Xcode 7.3.1, по-видимому, без причины, никаких изменений, которые я сделал.

  • У меня естьLaunchScreen.storyboard
  • Я не проверял Requires full screen.

Я попробовал обычный маневр, когда Xcode оставил меня озадаченным какой-то новой ошибкой без уважительной причины:

  1. Удерживая нажатой клавишу Option , нажмите кнопкуProduct меню.
  2. Выберите Clean Build Folder( не Clean ).
  3. Выберите Product> Build.

Больше никаких проблем. После еще нескольких сеансов сборки и запуска сообщение об ошибке еще не появилось.

Базилик Бурк
источник
0

Вы предусмотрели для своего приложения «Раскадровку запуска»? Или вы просто предоставили статические изображения разных размеров.

Проверьте здесь: https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html

cbiggin
источник
Я использую изображение запуска, а не раскадровку запуска. Я думал, что раскадровка запуска необязательна. Я предполагаю, что настоятельно рекомендуется использовать раскадровку запуска вместо изображения запуска в Xcode 7, поэтому предупреждение? Текущая версия приложения уже одобрена Apple. Думаю, я включу раскадровку запуска в следующую версию, когда Xcode 7 уже будет выпущен для общественности. Спасибо
bachma0507
У меня такая же проблема, поэтому просто чтобы подтвердить @cbiggin - вам нужна раскадровка запуска, чтобы избавиться от этой ошибки?
amitsbajaj 03
Не могу подтвердить это, просто то, что я предполагаю, может быть причиной проблемы. Попробуйте добавить Launch Storyboard и посмотрите, исчезнет ли он. Если да, то проголосуйте за мой ответ :)
cbiggin 03
1
имейте в виду, что вы можете использовать раскадровку запуска только для ios> = 8
troppoli
0

Установите для UIRequiresFullScreen значение ДА в Info.plist. Установите флажок Требуется полный экран .введите описание изображения здесь

Прасад Патил
источник