Подтвердить что ты не робот

Поддержка значков iOS 5.0 с XCode 5

Я использую новый каталог активов AppIcon для установки правильных значков для iOS 5 (теоретически), 6 и 7. К сожалению, при установке приложения на iPad 1 (с iOS 5.1.1) отображаемый значок не является правильным (он масштабируется от другого, конечно, 57x57).

Я увидел, что после создания каталога активов в файл Info.plist добавляются 2 пустых записи:

  • Icon files (iOS 5)
  • CFBundleIcons~ipad

Я читал много "решений", но ничего не работало для меня: (

Одним из решений было добавить эти записи в plist (и добавить соответствующие значки в проект):

<key>CFBundleIcons</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>Icon.png</string>
            <string>[email protected]</string>
            <string>Icon-72.png</string>
            <string>[email protected]</string>
        </array>
        <key>UIPrerenderedIcon</key>
        <true/>
    </dict>
</dict>
<key>CFBundleIcons~ipad</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>Icon-Small</string>
            <string>Icon-Small-50</string>
            <string>[email protected]</string>
            <string>Icon-72.png</string>
        </array>
        <key>UIPrerenderedIcon</key>
        <true/>
    </dict>
</dict>

Но он вообще не работает.

Я использую XCode 5.0 (5A1413).

Любая помощь будет действительно оценена.

4b9b3361

Ответ 1

Наконец-то я нашел рабочее решение. Я больше не использую каталог активов. И я помещаю эти строки в свой файл info.plist:

<key>CFBundleIconFile</key>
<string>Icon-57.png</string>
<key>CFBundleIconFiles</key>
<array>
    <string>Icon-72.png</string>
    <string>[email protected]</string>
    <string>Icon-57.png</string>
    <string>[email protected]</string>
    <string>[email protected]</string>
    <string>Icon-60.png</string>
    <string>[email protected]</string>
    <string>Icon-76.png</string>
    <string>[email protected]</string>
    <string>Icon-29.png</string>
    <string>[email protected]</string>
    <string>Icon-50.png</string>
    <string>[email protected]</string>
    <string>Icon-40.png</string>
</array>
<key>CFBundleIcons</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>[email protected]</string>
            <string>Icon-57.png</string>
            <string>Icon-72.png</string>
        </array>
        <key>UIPrerenderedIcon</key>
        <true/>
    </dict>
</dict>

Теперь он работает как шарм:)

Ответ 2

Я нашел лучшее решение для работы с iOS 5 с каталогом активов.

Задайте это в Info.plist(другие X-коды, такие как CFBundleIcons, и перезаписаны), поэтому оставьте их пустыми):

<key>CFBundleIconFiles</key>
<array>
    <string>AppIcon57x57.png</string>
    <string>AppIcon72x72.png</string>
    <string>[email protected]</string>
    <string>[email protected]</string>
</array>

и добавьте еще два значка в свои ресурсы (внешние ресурсы):

AppIcon72x72.png
[email protected]

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

Источником проблемы является то, что каталог ресурсов генерирует такие значки с суффиксами ~ ipad, которые iOS 5 не понимает, поэтому мы должны добавлять эти файлы без суффикса ~ ipad вручную. iOS 6 не имеет этой проблемы и находит правильные значки с суффиксом ~ ipad и без него.

Используйте имя значка (AppIcon или значок или что-либо еще), как вы указали в своем каталоге активов.

Ответ 3

Обновление XCode 6.0.1

Кажется, что XCode 6 Icon Asset каталоги теперь корректно работают для iOS5 - iOS8.0.2. Я подтвердил это на iPad 1 под управлением iOS 5.1.1. Проверяя скомпилированное приложение, я обнаружил, что XCode правильно сгенерировал следующие записи значков Info.plist и скопировал файлы значков в корневой каталог приложения с соответствующими именами файлов (это было создано при использовании каталога активов с именем AppIcon - по умолчанию):

XCode 6.0.1 Generated Info.plist

Это содержит иконки для всех устройств iPad и iPhone через iPhone 6 +.

Ответ 4

Попробуйте следующее:

Добавьте это в свой слой:

<key>CFBundleIcons</key>
    <dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>Icon</string>
                <string>Icon-72</string>
                <string>Icon-Small</string>
                <string>Icon-Small-50</string>
            </array>
        </dict>
    </dict>

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

Icon-72.png          (72x72)
[email protected]       (144x144)
Icon-Small-50.png    (50x50)
[email protected] (100x100)
Icon-Small.png       (29x29)
[email protected]    (58x58)

Вам может понадобиться или не нужно делать все эти шаги, но это сработало для меня. Мой проект использует каталоги активов XCode 5, но мне все же пришлось сделать это, чтобы получить правильную иконку на iPad1 с iOS 5.1.1 (что является настоящим позором!)

Ответ 5

Вы также можете отключить каталог активов в интерфейсе:

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

Я предполагаю, что iOS 5 просто не поддерживает каталог активов, поэтому вам нужно сделать Xcode 5 старым способом.

Ответ 6

В моем случае единственным решением было создать новую запись App Icon в активах и убедиться, что там установлены значки iPad.

Я работал над старым проектом в Xcode 5. Я разрешаю Xcode делать некоторые преобразования в старых файлах проекта, которые включали преобразование в использование активов. Проект был только iPhone, поэтому преобразованные в App Icon наборы в активах не содержали записей для iPads - даже слотов. Когда я создал новый значок приложения, он также включил слоты для iPads (проект по-прежнему "только для iPhone" ). Заполнение всех записей привело к тому, что значок был показан на iPad 1 (iOS 5.1.1).

Обратите внимание, что мне не нужно было изменять Info.plist. Также мне не нужно было указывать конкретное имя файлов значков.