Launch Image не отображается в моем приложении iOS

Я хочу получить простой экран запуска, который будет показан в моем приложении, построенный с использованием Xcode 6.0.1.

Я добавил экран запуска двумя способами: как XIB (с именем по умолчанию, LaunchScreen.xib) и в качестве запуска, установленного в xcassets.

Я убедился, что для моего "файла экрана запуска" установлено значение LaunchScreen.xib.

Я смоделировал все доступные устройства (например, "iPhone5 iOS8" / "iPhone5s iOS8" / "iPhone6 ​​iOS8". Обратите внимание, что в симуляторе доступен только iOS 8).

Ответ 1

Так что это было довольно болезненно для чего-то, что должно быть тривиально. Вот что я сделал:

Использовать xcassets

Я решил использовать .xcassets против .xib для запуска. Я удалил .xib. Если у вас есть images.xcassets уже в вашем проекте, тогда отлично, иначе вы можете добавить его из файлa > Создать > файл:

AddNewASsetCatalog

Создать набор изображений запуска

Теперь создайте как минимум набор запуска и набор значков в файле .xcassets, щелкнув правой кнопкой мыши в области навигатора.

Add new Launch image and app icon

Обновить значки приложений и запустить настройки изображений

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

Очень важно: убедитесь, что параметр "Запустить экранный файл" пуст.

Apps icon and image sets

Добавить изображения

И последнее, но не менее важное: терминология, используемая Apple для выбора устройства, сбивает с толку. Первоначально я думал, что, поскольку я развертываю только для iOS8 (iPhone Portrait), я могу это сделать и просто добавить изображения для iPhone 6 и iPhone 6+:

Devices

Я быстро понял, что это не так, и я получаю предупреждение: "Заставка iPhone Retina (4 дюйма) для iOS 7.0 и более поздних версий требуется".

Поэтому мне пришлось выбрать iPhone под iOS 7.0 и более поздними версиями и добавить изображение для iPhone 5s.

Итак, чтобы узнать, какие поля проверить справа, не задавайте вопрос: что такое минимальная iOS и ориентация устройства и устройства, но спросите:

Какие устройства могут поддерживать мой минимальный iOS? Теперь Какая минимальная поддержка iOS на этих устройствах? И убедитесь, что вы проверяете все эти поля. Поэтому для меня я ориентирую iPhone 5s, 6 и 6 Plus на 8.0, но учитывая, что iPhone 5s может существовать с 7.0, мне нужно также проверить коробку 7.0, чтобы показать место для изображения. Другими словами, флажок (iOS) справа показывает минимальную версию iOS, доступную для этого устройства, и вам нужно щелкнуть по ней, чтобы показать место для замещения изображения, и поместить изображение независимо от того, развертываетесь ли вы в этой версии iOS или нет..

Надеюсь, это поможет кому-то.

Adding all devices

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

Ответ 2

LaunchScreen.xib и информационное значение Launch screen interface file base name взяты из моего опыта как заполнителей, созданных при создании проекта. Если вы хотите использовать Images.xcassets исключительно для ваших экранов запуска, удалите как элементы LaunchScreen.xib, так и info.plist.

Если вы укажете параметр info.plist, приложение будет использовать xib, а не ваш Images.xcassets

Ответ 3

Xcode 8:

Изображения, используемые в LaunchScreen.xib , не должны быть на .xcassets, попробуйте удалить их в комплекте.

Похоже, что к моменту загрузки .xib изображения в .xcassets еще не доступны.

ОБНОВЛЕНИЕ: По какой-то непрозрачной причине после добавления некоторых локализаций экран запуска перестал работать, теперь он работает с изображением из ресурсов, очень странно.

Ответ 4

Мое решение состояло в создании всех изображений запуска. enter image description here

Затем я установил источник изображений запуска для актива LaunchImage и оставил пустой файл запуска.

Наконец, если проект не имеет Launch Screen.xib, добавьте этот файл и оставьте его как есть. enter image description here

Ответ 5

Для меня это сработало, когда я удалил приложение и перезапустил симулятор. При повторной установке изображение запуска появляется, как ожидалось. Это также работало на реальном устройстве.

Ответ 6

Для людей, которые используют Asset Catalog Launch Image, поскольку я узнал это самым сложным способом, у меня был такой сценарий, когда мне впервые был предоставлен файл jpg, после чего я попросил их преобразовать его в PNG.

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

TL; DR: Убедитесь, что на самом деле вы используете правильный файл PNG, а не файл с переименованным расширением.

Ответ 7

Удаление "Базового имени файла интерфейса экрана запуска" из файла Info.plist И сбой "Launch Screen.xib" работал у меня.

Ответ 8

Проблема с принятым ответом заключается в том, что , если вы не установили файл запуска Launch Screen, ваше приложение будет в режиме масштабирования на таких устройствах, как iPhone 6 и 6+ = > размытый рендеринг.

Ниже приведено то, что я сделал, чтобы иметь полное рабочее решение (я ориентируюсь на iOS 7.1 и используя Xcode 8) на каждом устройстве (действительно, я сходил с ума от этой проблемы масштабирования)

1. Подготовьте свои .xcassets

Чтобы упростить это, я использую вектор .PDF файл. Это очень удобно и не позволяет создавать несколько изображений для каждого разрешения (1x, 2x, 3x...). Я также предполагаю, что вы уже создали свои xcassets.

  • Добавьте изображение вашего запуска (или векторный файл) в свой проект
  • Перейдите к своим .xcassets и создайте Новый набор изображений. В окне "Атрибуты изображения" выберите "Масштабы → Единый масштаб"
  • Перетащите векторный файл в набор изображений.

Создать набор изображений для ваших .xcassets

2. Создайте свой файл экрана запуска

Создать файл экрана запуска

3. Добавьте свое изображение в свой файл экрана запуска

  • Добавить объект изображения в свой файл экрана запуска (удалите ярлыки, которые были автоматически созданы). Это представление изображения должно относиться к предыдущему набору изображений .xcassets. Вы можете ссылаться на него из атрибута Имя. На этом этапе вы должны правильно увидеть изображение с экрана запуска в представлении изображения.
  • Добавьте ограничения этого изображения, чтобы сохранить соотношение сторон в зависимости от разрешения экрана.

Добавить образ заставки в файл экрана запуска

4. Добавьте свой файл экрана запуска в свою цель

Fianlly, в свойствах Target Target, обратитесь к файлу экрана запуска. Свойства цели и экран запуска

Запустите приложение, и ваш экран заставки должен отображаться. Попробуйте также на iPhone6 ​​и iPhone6 ​​+, и ваше приложение должно быть правильно отображено без какого-либо масштабирования (для этого должен быть создан файл экрана запуска).

Ответ 9

Простое удаление и переустановка приложения помогло мне:

  • Тестирование в симуляторе

    1. Удалить приложение в симуляторе.
    2. Закройте и перезапустите симулятор.
    3. Запустите проект снова в Xcode.

  • Тестирование на устройстве

    1. Удалить приложение с устройства.
    2. Запустите проект снова в Xcode.

Ответ 10

Спустя несколько часов, разочаровавшись в этом, я решил использовать этот путь. Он работает как для iPhone, так и для iPad (на Xcode 6.1).

  • Файл → Новый файл → Пользовательский интерфейс → Экран запуска
  • Создать новый ключ/значение: "Запустить базовое имя файла интерфейса экрана" / "Ваше имя экрана запуска" в YourApp-Info.plist

1 картинка стоит более тысячи слов. Посмотрите ниже:

File>>New File>> User Interface >> Launch Screen

Create new key/value "Launch screen interface file base name"/"Your Launch Screen Name" in YourApp-Info.plist

Ответ 11

Я читал об ошибке в Xcode 6, которая не позволяет приложениям отображать стартовый образ только в альбомной ориентации.

Попробуйте установить изображения и ориентацию в Images.xcassets:

Xcode screenshot of Images.xcassets

Ответ 12

Сделайте то, что ответил Spectravideo328 и:

Попробуйте ОТКЛЮЧИТЬ коробку iOS 7 и более поздние версии и ПРОВЕРЬТЕ рамку iOS 6 и более ранние версии в каталоге ресурсов. Кажется, есть ошибка с iOS 7 Launch Image. (Оба имеют одинаковые образы запуска, за исключением изображения 320x480)

Надеюсь, это поможет, это помогло мне!

Ответ 13

Существует ошибка, при которой Xcode 6 запускает изображения, хранящиеся в файлах активов, заставляя iphone использовать только приложения на iOS7/iOS8 для отображения черного изображения запуска. iPad отлично работает.

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=10868

Решение: Используйте новый Launchscreen.xib для ios8 + и далее. (это намного лучше)

Для работы устройств ios7 вы просто отключите источник исходных изображений и используйте старые имена файлов изображений запуска школы в plist

iphone5 - [email protected] 
iphone4s - [email protected]
ipad2 - Default-Landscape~ipad.png
ipad retina - [email protected]~ipad.png

Болезненно, но работает. B
введите описание изображения здесь

Ответ 14

Я перепробовал все, но решение было очень простым. Просто используйте файл .jpg вместо .png на вашей LaunchScreen.storyboard. Похоже, что iOS не отображает файл .png или относительно большой размер изображения на экране запуска.

Ответ 15

Я установил "LaunchImage" в своем каталоге активов и просто очистил поле "Launch Screen" и пусто! У меня появились изображения запуска...

Ответ 16

Один из способов - добавить "Экран запуска" (LaunchScreen.xib), вставить изображение в UIImageView, а затем установить его в "Горизонтальный центр в контейнере" и "Вертикальный центр в контейнере" "в " Выровнять ", если вы используете автоматическую компоновку.

Экран: http://i.stack.imgur.com/CfnHT.png

Не забудьте поставить LaunchScreen.xib в "Запустить экранный файл".

Ответ 17

У меня была такая же проблема после того, как я начал использовать Xcode 6.1 и изменил мои снимки запуска. У меня были все изображения в каталоге активов. Вместо ожидаемого статического изображения я бы получил только черный экран. Попытавшись так много всего, я понял, что проблема заключается в том, что в Каталоге активов был выделен проект "Целевое членство" в представлении FileInspector. При нажатии на кнопку "ВКЛ" магия и изображение начали появляться при запуске приложения.

Ответ 18

  • Убедитесь, что ваши изображения имеют точный размер в соответствии с рекомендациями Apple.
  • Удостоверьтесь, что вы выберете только один вариант: файл запуска или файл запуска запуска. Эти два параметра можно найти в настройках сборки проекта → Общие

Мое предложение для вас - выбрать "Запустить источник изображения как изображение". Создайте активы с всплеском изображения в папке Image.assests.

Ссылка для правильной конфигурации: введите описание изображения здесь

Ответ 19

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

По умолчанию .xib был установлен как "Файл экрана запуска", а белый экран с меткой показывал полтора секунды в симуляторе.

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

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

После удаления указанного "Файл экрана запуска" и "Чистый: Продукт → Очистить" из верхнего меню, изображения запуска, наконец, отображаются.

Может быть, это поможет?

Ответ 20

Я столкнулся с этой ошибкой и в моем приложении только для ландшафта. Следующее решение Carlodurso работает:

  1. установите флажок "Пейзаж"
  2. перетащите изображение на место.

Ответ 21

В файл добавлен файл LaunchScreen.xib. Удаление этого приведет к смещению xCode с использованием изображений по умолчанию в Images.xcassets

отредактирован для добавления перейдите в "Приложения" и "Запуск изображений" Файл экрана запуска должен быть пустым/emtpy

Ответ 22

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

Я исправил это, когда я изменил конфигурацию сборки, чтобы выпустить кнопку запуска Launch Image Source, и мне пришлось снова выбрать Use Asset Catalog.

Для тех, кому это интересно, это то, что выглядел мой project.pbxproj.

...
...
...
XXXXXXXXXXXXXXXXXXXXXXXX /* Release */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ALWAYS_SEARCH_USER_PATHS = NO;
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; <---THIS LINE WAS MISSING
...
...
...

Ответ 23

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

Я также удалил приложение с моего телефона и переустановил его, но это был, вероятно, "по отношению к проекту", который сделал это.

Ответ 24

* (Xcode 7.2/Цель развертывания 7.0/Ориентация только на ландшафт) *

Я знаю, это старый вопрос, но с Xcode 7.2 я все еще получаю сообщение, и я исправил это:

1) Выберите PORTRAIT и оба ландшафта. Добавьте "Источник запуска изображений" и "Запустить файл экрана"

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

2) В своем стартовом изображении выберите iPhone "8.0 и более поздние" и "7.0 и более поздние версии".

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

3) Добавьте этот код в свой appDelegate:

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}
#else
- (UIInterfaceOrientationMask)application:(UIApplication *)application     supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return (UIInterfaceOrientationMaskLandscape);
}
#endif

4) Добавьте это на свой ViewController

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
#else
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
#endif
{
     return UIInterfaceOrientationMaskLandscape;
}

Я надеюсь помочь кому-то еще.

Ответ 25

Это сработало для меня. Нажмите LaunchScreen.storyboard, затем на правой панели вы можете установить флажок "Исходный контроллер просмотра".

LaunchScreen.storyboard → Контроллер начального просмотра

Ответ 26

Я просто понял это. Мой образ запуска не показывался, я получаю белый экран при запуске на устройстве (iPhone 6, 7+) или testFlight. Исправлено: переименован "Landing_screen.png" на "Landing_screen", удалив часть .png. Значок изображения в Xcode изменился на белый значок, а на раскадровке экрана запуска изображение теперь отображается как знак вопроса. Теперь появляется изображение запуска, а не белый экран. Моя установка: я использую Swift 3.1 с Xcode 8.3.1. В LaunchScreen.storyboard я добавил простой образ и растянул изображение, чтобы он соответствовал контроллеру вида. Я устанавливаю ограничения автоматической компоновки Top/Bottom/Leading/Trailing space для просмотра до 0.

Ответ 27

Если вы изменили свой стартовый образ с предыдущего изображения, обратите внимание на следующее:

  • устройства/симуляторы, на которых приложение было установлено ранее, по-прежнему показывают предыдущее изображение и отказываются показывать новое (удаление и повторная установка приложения не помогают)
  • устройства/симуляторы, на которых приложение ранее не было установлено, показать новый образ запуска

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

Ответ 28

Для меня это работает, когда я удаляю LaunchScreen.xib и меняю его на файл раскадровки LaunchScreen.storyboard.