Как включить собственное разрешение для приложений на 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.