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

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

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

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

8 ответов

Решение

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

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

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

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

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

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

iPhone 6 Портрет

iPhone 6 Plus Портрет

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

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

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

В соответствии с ответом от 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>

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам