iPhone X: что вызывает режим совместимости по сравнению с полноэкранным режимом?

Я пытаюсь заставить довольно сложную существующую кодовую базу (базовый SDK iOS 9.0; Swift 4.0; Xcode 9.1) работать в полноэкранном режиме на iPhone X, и пока она работает только в "режим совместимости" (т. е. почтовый ящик с черными верхними и нижними границами).

Однако совершенно новый проект Xcode, отвечающий тем же требованиям, отлично работает в полноэкранном режиме.

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

Некоторые из переменных могут включать:

  • настройка проекта Base SDK
  • есть ли раскадровка запуска
  • есть ли изображения запуска iPhone X и их размеры
  • включены ли направляющие безопасной области

... и, возможно, больше.

Помимо того, что говорят Apple (и другие), кто-нибудь окончательно изолировал, какие именно перестановки параметров «щелкают переключателем» и заставляют приложение работать в одном или другом на iPhone? ИКС?

[Обратите внимание: по деловым причинам и, по крайней мере, на данный момент, мы по-прежнему хотим, чтобы приложение могло работать на iOS 9 и выше.]

Спасибо заранее!


person RonDiamond    schedule 09.11.2017    source источник
comment
Вы ответили на свой вопрос. Если вы используете раскадровку экрана запуска, вы получаете полноэкранный режим. В противном случае, если вы используете изображения запуска правильного размера, вы получите полноэкранный режим.   -  person rmaddy    schedule 09.11.2017
comment
Кстати, вам нужен базовый SDK iOS 11.1 (или последней версии). Вы хотите, чтобы целью развертывания была iOS 9.0. Вот как правильно поддерживать iOS 9.0 и более поздние версии.   -  person rmaddy    schedule 09.11.2017
comment
Большое спасибо, rmaddy -- я ценю подтверждение и информацию.   -  person RonDiamond    schedule 10.11.2017


Ответы (1)


Чтобы вырваться из почтового ящика на iPhone X, вашему приложению необходимо:

  1. Для компиляции с SDK iOS 11.0 (или новее)
  2. Чтобы иметь соответствующие ресурсы экрана запуска — либо раскадровку запуска с Auto Layout, либо изображения запуска iPhone X в каталоге ресурсов.

Использование руководств по безопасным зонам не является частью выхода из почтового ящика режима совместимости, но важно убедиться, что ваш пользовательский интерфейс правильно подходит для iPhone X после выхода из режима совместимости. Для многих приложений простое выполнение шагов 1 и 2, описанных выше, приведет к тому, что пользовательский интерфейс будет растягиваться на весь экран, скрывая важные элементы управления за закругленными углами (или неудобно близко к ним), индикатором «домой» и сенсорной выемкой.

И, как отмечает @rmaddy, вы по-прежнему можете выполнять сборку с помощью SDK для iOS 11 и развертывать обратно на менее 10% (и быстро сокращающихся на момент написания этой статьи) устройств iOS на iOS 9, просто установите минимальную цель развертывания в своем Xcode. project и убедитесь, что любое использование API iOS 10 и iOS 11 защищено проверками доступности.

person rickster    schedule 09.11.2017
comment
Большое спасибо, rickster, за информацию и хорошо написанный ответ. Очень признателен. - person RonDiamond; 10.11.2017