Черный экран вместо запуска образа на iPad

Я занимаюсь разработкой приложения для iPhone для iOS 6.1 и 7 (с использованием Xcode 5). У меня проблема с изображениями запуска iPad.

На iPad 7.0 и 7.0.2 образ запуска не отображается (в 6.1 работает!): У меня черный экран во время загрузки приложения.

Я не сталкиваюсь с этой проблемой с iPhone 6.1 и 7.0.2, хотя я устанавливаю все образы запуска, необходимые для сетчатки iPad и iPad (альбомная и книжная), и использую каталог активов.

Что мне не хватает?

17 ответов

Решение

Я запросил поддержку Apple, и оказалось, что это ошибка. Они попросили меня сообщить об этом, и я сделал. Вот идентификатор отчета: 15340531. Теперь дело за ними.

Недавно я столкнулся с той же проблемой с моим приложением, предназначенным только для iPhone, у меня была проблема, когда изображения запуска не появлялись на iPad (на iPad ios >= 7.0.x изображение запуска не отображается. Я получаю черный экран во время загрузки приложения). (в iPad ios < 7.0.x работает нормально)).

Я не сталкиваюсь с проблемой запуска образа с iPhone, который работал нормально во всех версиях iOS.

Решение: Обновление каталога ресурсов для управления изображениями вашего приложения и ориентация только на iOS 6 и Prior.

Шаги:

Шаг 1:

Обновление до каталога активов

Шаг 2:

Выберите для миграции

Шаг 3: в правом верхнем углу щелкните значок "Инспектор атрибутов". Здесь вы можете установить целевую ОС для Launch Images.

Снимите флажки iOS 7 для iPhone

Снимите флажки iOS 7 для iPhone, теперь вы должны увидеть образы запуска для iPad на iOS >= 7.0.x.

Если у вас такая же ситуация, как у меня, это решение:

Мое приложение только альбомное, только iOs7, ipad\iphone (XCode 5).

Проблема: черный запуск на iphone (и симуляторе), нормальный запуск на ipad.

Решение: перейдите на Images.xcassets - Запустите Images - выберите его. Снимите флажки справа от всех "iOs7 и более поздних". Установите флажки "iOs6 и предыдущие" и заполните пустые места изображениями.

Странно, но работает.

По документации Apple ( ссылка); пустой раскадровка для iPad может быть ответом. Я также видел проблемы, когда начальный контроллер представления не установлен в раскадровке, вызывает черный экран. Вариант этой проблемы может быть неправильной настройкой в ​​списке приложений.

Технические вопросы и ответы QA1780 Почему мое приложение запускается на черном экране на iPad?

В: Почему мое приложение запускается на черном экране на iPad?

О: Приложения, разработанные только для iPhone, могут запускаться на пустом экране при запуске на iPad. Это вызвано наличием пустой раскадровки для iPad в комплекте приложения, а также специфичного для iPad ключа UIMainStoryboardFile в файле информационного списка свойств приложения (Info.plist). Оба автоматически создаются различными проектами шаблонов XCode, если выбрана опция Universal.

...

В Xcode

Найдите файл с именем MainStoryboard_iPad.storyboard в файловом навигаторе. Если этот файл присутствует, удалите его из своего проекта.

В информационном списке свойств вашего приложения

Найдите ключ с именем Основное имя файла раскадровки (iPad) или UIMainStoryboardFile~ipad. Если этот ключ присутствует, удалите его. Вам также следует удалить любой другой ключ с суффиксом (iPad) или ~ ipad.

Наконец, протестируйте свое приложение на iPad или в симуляторе iPad и убедитесь, что оно работает так, как ожидалось.

Использование LaunchScreen.storyboard

У меня была похожая проблема, пока я не нашел следующие настройки в общих настройках проекта.

  1. Установите основной интерфейс для вашего основного файла раскадровки. Шахта называется Main.storyboard,

  1. Установите файл экрана запуска на файл раскадровки экрана запуска. Шахта называется LaunchScreen.storyboard, (Это то, что я изначально пропустил.)

После этого сначала загрузился стартовый экран, а вскоре после этого - основная раскадровка.

Попробуйте установить изображение еще раз, чтобы убедиться, что разрешение заставки соответствует рекомендациям iOS 7.

Попробовав несколько решений, найденных здесь, я заподозрил, что iPhone пытался запустить в альбомной ориентации, и, таким образом, не нашел соответствующего изображения запуска. Действительно, симулятор запускался в Ландшафте по причине, которую я не понимал.

Наконец, после прочтения документации Apple, я обнаружил, что, вероятно, порядок ключей в "Поддерживаемых ориентациях интерфейса" файла info.plist не соответствует требованиям. Портрет был последним предметом. Когда это первый элемент, приложение запускается в портретном режиме и находит изображение.

Я знаю, это звучит глупо. У меня были такие ошибки, когда я сохранял файл в формате psd с расширением jpg. Просто 1 неправильный клик при сохранении вашего образа запуска.

У меня была проблема, когда изображения запуска не появлялись на iPhone (3,5 или 4 дюйма) в iOS 7, но у iPad не было проблем с iOS 7.

Короче говоря, я отключил каталог ресурсов только для изображений запуска. Поэтому я добавляю образы запуска по старинке. Кажется, это решило проблему.

Завтра мне придется больше тестировать, но, похоже, проблема решена (по крайней мере, в моем случае).

Удалите ранее установленное приложение с устройства или симулятора, затем перезапустите приложение после очистки.

в Xcode 5 убедитесь, что вы добавляете все необходимые изображения, упомянутые в целевом приложении.

Я предполагаю, что при использовании каталога активов вы убедитесь, что у вас правильно добавлено целевое членство Images.xcassets. Я упоминаю об этом, поскольку, если у вас есть несколько целей, похоже, что вы должны добавить их вручную (и вы не предоставили скриншотов, так что можно быть уверенным).

Теперь, когда вы в действительности не предоставили скриншот обзора LaunchImage папки Images.xcassets в своем проекте, я могу только догадываться о вероятной причине. Глядя на тот факт, что образы запуска отлично работают для iPhone (6.1 и 7.0.2 и iPad (6.1) и не работают только для iPad (7.0 и выше), я думаю, что вы, возможно, могли бы взглянуть на то, является ли размерность изображения для iPad Portrait и iPad Landscape подходят для iOS7. В частности, вы должны увидеть свои стартовые изображения, а не пустые прямоугольники, как показано на прилагаемой картинке.iOS7 iPad Launch Images (портретная и альбомная ориентация) - неправильного размера

Это может произойти из-за того, что у вас все еще есть образы запуска iPad для iOS7, созданные за исключением области строки состояния. До iOS7 образы запуска iPad создавались для исключения области строки состояния, но на iOS7 обязательно, чтобы все образы запуска включали область строки состояния. Пожалуйста, ознакомьтесь с разделом "Что должно делать каждое приложение" в Руководстве по переходу пользовательского интерфейса Apple iOS7 ( https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/TransitionGuide.pdf).

Следующий скриншот должен объяснить, о чем я говорюРазмеры запуска изображений iPad - iOS6 и iOS7

Например, вы можете видеть, что размер изображения iPad Landscape Retina для iOS6.1 и более ранних версий составляет 2048x1496 (без учета 40 пикселей для строки состояния), но ожидается, что размер для того же изображения для iOS7.0 и более поздних версий будет 2048x1536 (включая 40 px для статуса бар). Таким образом, если вы не изменили свои изображения соответственно, вы увидите черный экран для изображений на iPad 7.0 и выше. На iPhone вы не столкнетесь с этой проблемой, поскольку изображения запуска iPhone всегда покрывают строку состояния, будь то iOS6.0 и iOS7.0, поэтому новое требование пользовательского интерфейса уже выполнено для изображений запуска iPhone.

Я столкнулся с подобной проблемой в альбомной ориентации, мое изображение запуска iOS 7 не отображалось, в то время как iOS 6 показывало. Моим был iPhone Retina 3.5”.

Так как у меня есть другое приложение в портрете, которое не разделяло эту проблему, я сделал 2 вещи:

  1. В info.plist в разделе "Поддерживаемые ориентации интерфейса" я также добавил 2 портретных режима и поместил их перед пейзажем, например так:

    Item 0: Portrait (top home button)
    Item 1: Portrait (bottom home button)
    Item 2: Landscape (right home button)
    Item 3: Landscape (left home button)
    
  2. Реализовал этот метод в View Controller:

    -(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape; 
    

    }

Это работает с или без Каталога активов.

Я нашел ответ, который работал для нашего приложения (только для iPhone, но использовался на iPad): /questions/4668099/iphone-tolko-dlya-pejzazha-net-izobrazheniya-zapuska-ios7-r4/4668114#4668114

Подводя итог этого ответа:

Как это сделать. Перейти в каталог активов. А в правом верхнем углу щелкните значок "Инспектор атрибутов". Здесь вы можете установить целевую ОС для Launch Images. Снимите флажки iOS 7 для iPhone. Теперь вы сможете увидеть образы запуска для этих устройств.

Это обновление для iOS 8.

У меня такая же проблема, когда я пытался добавить LaunchImage в мое приложение iOS 8.

Apple позволяет разработчикам использовать xib, имя по умолчанию LaunchScreen.xib, чтобы сделать представление запуска с iOS 8. Я считаю, что разработчики могут использовать либо LaunchImage или же LaunchScreen.xib, К сожалению, я не смог найти ни одного документа, описывающего, как бороться с LaunchImage после LaunchScreen.xib был представлен. У меня всегда был черный экран, когда я пытался использовать LaunchImage как представление запуска.

Мое решение:

  1. Не думай о LaunchImage, использование LaunchScreen.xib, (Вы должны держать пустой LaunchImage в вашем каталоге активов, хотя. Я считаю, что это ошибка.)

  2. Перетащите UIImageView к черту и сделать UIImageView полноэкранный. Не забудьте принять во внимание классы размера и ограничения.

  3. Установите изображение с разрешением, достаточным для iPhone 6 plus, на UIImageView,

У меня такая же проблема. Мне пришлось сделать обходной путь: использовать изображение по умолчанию для всех версий iOS и УДАЛИТЬ ключ UILaunchImageFile из info.plist.

Я не могу использовать разные образы запуска для iOS 7 и предыдущих версий, поэтому мне пришлось использовать одно и то же "художественное" изображение для всех, вместо этого изображение, которое имитирует первый вид приложения (которое Apple рекомендует и я предпочитаю), но при по крайней мере, я больше не получаю черный экран.

Похоже, ключ UILaunchImageFile, который позволяет использовать разные образы запуска для iOS 7, а предыдущие версии не работают должным образом для Retina iPad в iOS 7.

ВНИМАНИЕ: Я все еще тестирую приложение, поэтому не знаю, могут ли быть побочные эффекты.

Проверьте все свои изображения и посмотрите, правильно ли они размещены в Активе, правильно ли они названы и имеют размеры.

Также проверьте, какие ориентации вы разрешаете, и соответственно добавьте изображения в ресурс.

Из-за iOS 13 и более поздних версий приложение запускается иначе, чем в более ранних версиях.

Получите решение по адресу ниже.

/questions/48755460/posle-obnovleniya-do-xcode-102-build-na-testflight-poyavlyaetsya-chernyij-ekran/55106619#55106619

Я просто забыл вызвать super.loadView() в моем контроллере представления...

override func loadView() {
    super.loadView()
}

Я также сталкивался с подобной проблемой, но ее решение было простым (в моем случае).

Все, что я сделал, было следующее -

1. Добавьте новый файл (если вы его не добавили). Launchscreen.storyboard

2. Получить UIViewControllerпометить как Is Initial View Controller затем добавить UIImageView в нем и установите изображение, которое вы хотите отобразить во время запуска вашего приложения. Убедитесь, что вы даете это UIImageView обязательное ограничение.

3. Перейдите в Project->General-> Значки приложений и Запустите изображения и выберите Launchscreen.storyboard в качестве файла экрана запуска (для него будет раскрывающийся список).

Другие вопросы по тегам