it-swarm.com.ru

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

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

35
nicky_1525

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

9
nicky_1525

Недавно я столкнулся с той же проблемой с моим приложением, предназначенным только для 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: в правом верхнем углу щелкните значок «Инспектор атрибутов». Здесь вы можете установить целевую ОС для Launch Images.

Uncheck the iOS 7 check boxes for iPhone

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

33
Samyukt Shah

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

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

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

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

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

24
djdance

По документации 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 и убедитесь, что оно работает должным образом.

11
Tommie C.

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

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

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

 enter image description here

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

 enter image description here

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

5
Suragch

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

4
user2503864

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

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

3
phbardon

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

3
Jodocus

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

2
Sanjeev sharma

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

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

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

2
Alex M

Это обновление для 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 в xib и сделайте UIImageView полным экраном. Не забудьте принять во внимание классы размера и ограничения.

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

1
Brian

Я нашел ответ, который работал для нашего приложения (только для iPhone, но использовался на iPad): https://stackoverflow.com/a/19448782/1258419

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

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

1
Stephen C

enter image description here

in Xcode 5 , make sure thay you add all needed images mentioned in your app target.

1
PJR

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

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

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

    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; 
    

    }

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

1
Eran Talmor

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

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

Это может произойти из-за того, что у вас все еще есть образы запуска iPad для iOS7, созданные за исключением области строки состояния. До iOS7 образы запуска iPad создавались для исключения области строки состояния, но на iOS7 обязательно, чтобы все образы запуска включали область строки состояния. Пожалуйста, ознакомьтесь с разделом «Что должно делать каждое приложение» в Руководстве по переходу пользовательского интерфейса Apple 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.

1
Subzero

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

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

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

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

0
Elga

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

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

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

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

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

0
Ashutosh Shukla

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

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

0
Geekoder