Ответ 1
Я запросил поддержку Apple, и оказалось, что это ошибка. Они попросили меня сообщить об этом, и я это сделал. Вот идентификатор отчета: 15340531. Теперь это к ним.
Я разрабатываю приложение для iPhone для iOS 6.1 и 7 (используя Xcode 5). У меня проблема с изображениями запуска iPad.
На iPad 7.0 и 7.0.2 изображение запуска не отображается (в 6.1 работает!): я получаю черный экран во время загрузки приложения.
Я не сталкиваюсь с этой проблемой с iPhone 6.1 и 7.0.2, хотя я установил все снимки запуска, необходимые для сетчатки iPad и iPad (пейзаж и портрет), и я использую каталог активов.
Что мне не хватает?
Я запросил поддержку Apple, и оказалось, что это ошибка. Они попросили меня сообщить об этом, и я это сделал. Вот идентификатор отчета: 15340531. Теперь это к ним.
Недавно я столкнулся с той же проблемой с моим приложением, предназначенным только для iPhone, у меня была проблема, когда изображения запуска не появлялись в iPad (на iPad ios >= 7.0.x изображение запуска не появляется, я получаю черный экран, а приложение загружается (в iPad ios < 7.0.x он отлично работает)).
Я не сталкиваюсь с этой проблемой при запуске образа с iPhone, который отлично работает во всех версиях iOS.
Решение. Является ли обновление каталога активов для управления вашими изображениями приложений и целью только iOS 6 и Prior.
Шаги:
Шаг 1:
Шаг 2:
Шаг 3: в правом верхнем углу нажмите значок "Инспектор атрибутов". Здесь вы можете установить целевую ОС для изображений запуска.
Снимите флажки iOS 7 для iPhone. Теперь вы можете увидеть изображения запуска для iPad на iOS >= 7.0.x.
Если у вас такая же ситуация, как у меня, это решение:
Мое приложение - только ландшафт, только iOs7, ipad\iphone (XCode 5).
Проблема: черный запуск на iphone (и симулятор), обычный запуск в ipad.
Решение: перейдите к Images.xcassets - Launch Images - выберите его. Снимите флажки справа на все поля "iOs7 и более поздние". Установите флажки "iOs6 и предыдущие" и заполните пробелы изображениями.
Странно, но работает.
Документация на 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 и убедитесь, что оно ведет себя так, как ожидалось.
У меня была аналогичная проблема, пока я не нашел следующие настройки в Общие параметры проекта.
Main.storyboard
.LaunchScreen.storyboard
. (Это то, что я изначально искал.)После этого сначала загрузится экран запуска, а затем загрузится основная панель справки.
Попробуйте снова установить изображение, убедитесь, что разрешение экрана заставки соответствует рекомендациям iOS 7.
Я знаю, что это звучит глупо. У меня были такие ошибки, когда я сохранил файл в формате psd с расширением jpg. Только 1 неправильный клик, сохраняя при этом изображение запуска.
После того, как вы попробовали несколько решений, найденных здесь, я подозревал, что iPhone пытался запустить в альбомной ориентации и, таким образом, не нашел соответствующего изображения запуска. Действительно, симулятор начинался в Пейзаже по той причине, о которой я не понимал.
Наконец, после чтения документации Apple я обнаружил, что это, вероятно, порядок ключей в "Поддерживаемые интерфейсные ориентации" файла info.plist, который был недостаточным. Портрет был последним. Когда это первый элемент, приложение запускается в режиме портрета и находит изображение.
Удалите ранее установленное приложение с устройства или симулятора, затем перезапустите приложение после очистки.
У меня возникла проблема, когда изображения запуска не появлялись в 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 и iPad. Пейзаж подходит для iOS7. В частности, вы должны увидеть свои изображения запуска, а не пустые прямоугольники, как показано на прилагаемом pic-
Это может произойти из-за того, что у вас все еще есть изображения для запуска iPad для iOS7, за исключением области состояния. До iOS7 были созданы снимки запуска iPad, чтобы исключить область строки состояния, но на iOS7 необходимо, чтобы все изображения запуска включали область состояния. Пожалуйста, перейдите в раздел "Все, что нужно каждому приложению" в Руководстве по переходу на iOS7 для iOS7 (https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/TransitionGuide.pdf).
Следующий снимок экрана должен объяснить, о чем я говорю,
например. вы можете видеть, что размер изображения для экрана iPad Landscape Retina для iOS6.1 и предыдущего составляет 2048x1496 (исключая 40 пикселей для строки состояния), но размер для того же изображения для iOS7.0 и выше ожидается 2048x1536 (включая 40px для строки состояния). Итак, если вы не изменили свои изображения соответственно, вы увидите черный экран для изображений на iPad 7.0 и выше. На iPhone вы не столкнетесь с этой проблемой, поскольку изображения запуска iPhone всегда охватывают строку состояния, будь то iOS6.0 и iOS7.0, поэтому новое требование пользовательского интерфейса уже встречается для изображений запуска iPhone.
Я нашел этот ответ, который работал для нашего приложения (только для iPhone, но использовался на iPad): fooobar.com/questions/63607/...
Подведем итог из этого ответа:
Как это сделать. Перейдите в каталог активов. И в правом верхнем углу щелкните значок "Attribute Inspector". Здесь вы можете установить целевую ОС для изображений запуска. Снимите флажки iOS 7 для iPhone. Теперь вы должны иметь возможность просматривать изображения запуска для этих устройств.
Я столкнулся с подобной проблемой в ландшафте, мое изображение запуска 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;
}
Это работает с каталогом активов или без него.
Это обновление для 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
.
Проверьте все изображения и посмотрите, правильно ли они размещены в Asset и правильно названы и указаны размер.
Также проверьте, какие ориентации вы разрешаете и соответственно добавляете изображения в актив.
У меня была та же проблема. Мне пришлось сделать обходной путь: использовали образ по умолчанию для всех версий iOS и DELETED ключ UILaunchImageFile из info.plist.
Я не могу использовать разные стартовые изображения для iOS 7 и предыдущих версий, поэтому мне пришлось использовать один и тот же "художественный" образ для всех, вместо изображения, которое имитирует первое представление приложения (которое Apple рекомендует и я предпочитаю), но по крайней мере я больше не получаю черный экран.
Похоже на ключ UILaunchImageFile, который позволяет использовать разные образы запуска для iOS 7, а предыдущие версии не работают должным образом для Retina iPad в iOS 7.
ВНИМАНИЕ: Я все еще тестирую приложение, поэтому не знаю, могут ли быть некоторые побочные эффекты.
Я также сталкивался с подобной проблемой, но ее решение было простым (в моем случае).
Все, что я сделал, было следующее -
1. Добавьте новый файл (если вы его не добавили). Launchscreen.storyboard
UIViewController
, отметьте его как Is Initial View Controller
затем добавьте в него UIImageView
и установите изображение, которое вы хотите отобразить во время запуска вашего приложения. Убедитесь, что вы UIImageView
это ограничение UIImageView
.
3. Перейдите на Project-> Общие-> Значки приложений и Запустите изображения и выберите Launchscreen.storyboard в качестве файла экрана запуска (для него будет раскрывающийся список).