Черный экран вместо запуска изображения на iPad - программирование
Подтвердить что ты не робот

Черный экран вместо запуска изображения на 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 (пейзаж и портрет), и я использую каталог активов.

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Шаги:

Шаг 1:

Update to Asset Catalog

Шаг 2:

Select to Migrate

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

Uncheck the iOS 7 check boxes for iPhone

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

Ответ 3

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

Мое приложение - только ландшафт, только iOs7, ipad\iphone (XCode 5).

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

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

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

Ответ 4

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

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

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

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

...

В Xcode

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

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

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

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

Ответ 5

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

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

  • Установите Основной интерфейс в основной файл раскадровки. Мой называется Main.storyboard.

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

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

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

После этого сначала загрузится экран запуска, а затем загрузится основная панель справки.

Ответ 6

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

Ответ 7

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

Ответ 8

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

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

Ответ 9

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

Ответ 10

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

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

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

Ответ 11

enter image description here

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

Ответ 12

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

Теперь, когда вы не предоставили скриншот обзора "LaunchImage" в папке Images.xcassets в своем проекте, я могу только догадываться о возможной причине. Глядя на то, что снимки запуска отлично работают для iPhone (6.1 и 7.0.2 и iPad (6.1) и не работают только для iPad (7.0 и выше), я думаю, вы могли бы посмотреть, зависит ли измерение изображения для iPad и iPad. Пейзаж подходит для iOS7. В частности, вы должны увидеть свои изображения запуска, а не пустые прямоугольники, как показано на прилагаемом pic- iOS7 iPad Launch Images (portrait and landscape)- not correctly sized

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

Следующий снимок экрана должен объяснить, о чем я говорю, iPad launch images dimensions- iOS6 and iOS7

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

Ответ 13

Я нашел этот ответ, который работал для нашего приложения (только для iPhone, но использовался на iPad): fooobar.com/questions/63607/...

Подведем итог из этого ответа:

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

Ответ 14

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

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

  • В 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)
    
  • Реализован этот метод в контроллере представления:

    -(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape; 
    

    }

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

Ответ 15

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

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

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

Мое решение:

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

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

  • Установите изображение, разрешение которого достаточно для iPhone 6 плюс к UIImageView.

Ответ 16

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

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

Ответ 17

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

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

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

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

Ответ 18

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

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

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

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

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