Как включить собственное разрешение для приложений на iPhone 6 и 6 Plus?


194

Xcode 6 GM теперь включает симуляторы для iPhone 6 и 6 Plus, и по умолчанию они запускают приложения в масштабированном режиме.

Чтобы включить новый размер экрана, я попытался добавить Default-667h@2x.png что, кажется, является частью хитрости, так как приложение теперь вообще не запускается с ошибкой «Невозможно запустить приложение в симуляторе - во время работы возникла ошибка (Domain = LaunchServicesError, Код = 0) ".

Кто-нибудь разобрался, как заставить приложение реально работать в разрешении 6/6 +?


16
Как уже говорили другие, хитрость заключается в том, чтобы добавить стартовый образ правильного размера в ваш проект. Я написал краткое руководство о том, как добавить стартовое изображение, чтобы вы могли отображать разрешение iPhone 6 здесь.
— Мэтьюпалмер

1
это сработало для меня stackoverflow.com/questions/25755443/…
— johndpope

2
Наименование изображений отличается для iphone 6/6 +. Для меня просто добавление образа запуска для 6 и 6+ работало отлично. Посмотрите на этот ответ для правильного соглашения об именах: stackoverflow.com/a/27473877/1568532
— fellowworldcitizen

Есть ли альтернатива вместо использования LaunchScreen?
— Вайбхав Джавери

Ответы:


220

Вы можете добавить файл стартового экрана, который работает для экрана нескольких размеров. Я просто добавил MainStoryboard в качестве файла экрана запуска, и приложение не масштабировалось. Я думаю, что мне нужно будет добавить постоянный экран запуска позже, но это заставило нативное разрешение работать и быстро работать. В XCode, перейдите к своей цели, общие и добавьте файл экрана запуска там.

Файл экрана запуска


2
Это, вероятно, лучшее решение, если вы используете одну раскадровку, которая обрабатывает все устройства. Мой ответ уместен, если вы не используете одну раскадровку или вам нужны отдельные, явные образы запуска.
— rmaddy

Мне нужно установить явные образы запуска для iPhone 6 и 6 Plus. Существует ли соглашение об именах, если я не хочу использовать каталог активов?
— Радиф Шарафуллин

@Radif Sharafullin Здесь приведены некоторые инструкции о том, как называть образы запуска: developer.apple.com/library/prerelease/ios/documentation/iPhone/… . Прокрутите полностью до самого низа для шаблона именования изображений запуска.
— Дэвид Л

6
Имейте в виду, что после перехода на LaunchImageiOS больше не будет растягивать приложение iPhone-5 до iPhone-6 (и 6+). Что может нарушить пользовательский интерфейс вашего приложения, если вы создаете свои представления с абсолютным размером, например, 320 пикселей в ширину, и не используете относительный размер с помощью автопоставок.
— atulkhatri

1
@ bobo2000 дизайн отзывчиво.
— mattsven

116

Если вы используете каталоги ресурсов, перейдите в каталог ресурсов LaunchImages и добавьте новые образы запуска для двух новых iPhone. Возможно, вам придется щелкнуть правой кнопкой мыши и выбрать «Добавить новое изображение запуска», чтобы увидеть место для добавления новых изображений.

Для iPhone 6 (Retina HD 4.7) требуется стартовое изображение в портретной ориентации 750 x 1334.

Для iPhone 6 Plus (Retina HD 5.5) требуются портретные и альбомные изображения размером 1242 x 2208 и 2208 x 1242 соответственно.


2
Хотел бы я выбрать два правильных ответа, так как это кажется очень правильным. Еще не начали использовать каталоги ресурсов (ну, просто безуспешно пытались выбрать один из них - каким-то образом приложение не находило там стартовые образы), но назначение файла экрана запуска было легко исправить.
— Вильяпоссу

Должна быть возможность добавить правильные образы запуска без использования каталогов ресурсов. Но я не знаю, как на них ссылаться в Info.plist.
— rmaddy

Нужно ли на самом деле добавить изображение? Я включил их, и это все еще масштабируется.
— Epic Byte

Да, вы действительно должны добавить изображения (или использовать новый «Файл экрана запуска» (но это только для iOS 8).
— rmaddy

1
@trumpetlicks Плюс выполняет рендеринг для более крупной цели, а затем уменьшает масштаб рендера до фактического размера экрана, аналогично сетчатке MacBook Pro. Кроме того, Plus может действительно запускать приложения в альбомной
— ориентации

104

Я сделал базовые чёрные экраны запуска, которые будут правильно масштабировать приложение на iPhone 6 и iPhone 6+:

iPhone 6 Портрет

iPhone 6 Plus Портрет

Если у вас уже есть LaunchImage в вашем .xcassett, откройте его, переключитесь на третью вкладку в правом меню в XCode и отметьте изображения iPhone 8.0 для iOS, чтобы добавить их в существующий набор. Затем перетащите изображения поверх:

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


52

Я не хотел вводить каталог активов.

В соответствии с ответом от seahorseseaeo здесь , добавление следующего к info.plist сработало для меня. (Я отредактировал его как «исходный код».) Затем я назвал изображения Default-667h@2x.png и Default-736h@3x.png

<key>UILaunchImages</key>
<array>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-667h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{375, 667}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-736h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{414, 736}</string>
    </dict>
</array>

Этот ответ великолепен. Это позволяет легко использовать изображения для перехода от заставки к приложению. Никакое другое решение (каталог активов или раскадровка) не позволяет сделать это так легко.
— jjxtra

7
Работал для меня (спасибо!), Но он перестал распознавать образ запуска 568h @ 2x, отключив поддержку размера iphone 5. Мне просто нужно было добавить еще один элемент, похожий на два выше, но с указанием 568h. (специфические поля: Default-568h, {320, 568})
— Steph Thirion

То же относится и к iPhone 4S.
— Джош Бернфельд

1
только что испытал (на симуляторе), что указанные файлы изображений даже не должны существовать.
— Glasz

У меня проблема с этой техникой на iPhone 6: сначала отображается экран запуска Default-667h@2x.png, а затем кратко отображается Default-Portrait@2x~iphone.png. Любая идея?
— Самуил

21

Обратите внимание, что iPhone 6 будет использовать разрешение 320pt (640px), если вы включили «Масштаб отображения» в iPhone> «Настройки»> «Экран и яркость»> «Просмотр».


Я хотел бы, чтобы это было лучше задокументировано!
— bobo2000

Вы только что спасли мой день. Я попробовал все другие решения, но моя проблема была только в том, что устройство было в режиме масштабирования.
— MessuKilkain

8

Сделайте следующее (см. На фото)

  1. Перейти к каталогу активов
  2. щелкните правой кнопкой мыши и выберите «Добавить новое изображение запуска»

    • iPhone 6 -> 750 x 1334
    • iPhone 6 Plus -> 1242 x 2208 и 2208 x 1242

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


3

Произошла ошибка во время работы (Domain = LaunchServicesError, Code = 0)

Обычно это указывает на то, что installd возвратил ошибку во время процесса установки (неверные ресурсы или аналогичные).

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

Вы должны проверить ~ / Library / Logs / CoreSimulator / CoreSimulator.log, который будет регистрировать основную ошибку для вас.


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

0

Если вы используете каталог активов и у вас есть несколько целей, использующих один и тот же файл каталога активов, убедитесь, что этот файл проверил обе цели на правой панели в xcode.

Это была моя проблема.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.