2013-10-07 2 views
11

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

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

  • Icon files (iOS 5)
  • CFBundleIcons~ipad

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

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

<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).

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

ответ

7

Наконец-то я нашел рабочее решение. Я больше не использую каталог активов. И я эти строки в моем 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> 

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

+0

Возможно, вы захотите добавить полный набор значков в раздел 'CFBundleIcons'; это было необходимо для меня, чтобы значок появился на iPad 1/iOS 5. – jlapoutre

+0

Это решение исправило проблему с нечеткой иконкой iPad 1, но я отметил все мои значки, а размеры iOS 7 никогда не используются в iOS 7. Мне нужно мои иконки iOS 7 соответствуют новой кривой. –

+0

Избегание использования активов не является решением. Вопрос касался существующей проблемы с активами и как ее решить. –

1

Попробуйте это:

Добавьте это в PLIST:

<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 (что является настоящим позором!)

+0

Спасибо за ваш ответ. Я не пробовал, потому что я нашел рабочее решение. См. Мой ответ. – Alx

+0

Проверьте мой ответ, описывающий источник проблемы и правильное ее решение. –

0

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

  1. Выберите ваш проект на боковой панели (самый верхний элемент в списке)
  2. Перейти к значкам приложения, щелкните поле раскрывающегося списка «Источник» и выберите «Не использовать каталоги активов»
  3. Добавьте свои изображения в проект (поместите их в боковую панель, вы можете создать для них группу)
  4. Теперь вы можете выбрать свои изображения под иконками приложений, щелкнув значки серых папок справа.

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

+0

Лучшее решение - использовать активы и просто добавить исправление для iOS 5 (см. Мой ответ выше). –

4

Я нашел лучшее решение, работающее на iOS 5 с каталогом активов.

Установить это в Info.plist (другие иконки разделы как CFBundleIcons генерируются и перезаписаны по Xcode, поэтому оставьте их пустыми):

<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 или значок или что-то еще), как вы установили в своем каталоге активов.

+0

Я обнаружил, что он по-прежнему работает, если я удалю раздел CFBundleIconFiles из Info.plist, если имена точно такие же, как в вашем примере ... –

+0

вы добавляете записи для значков 52x52, но затем вы указываете, что в ресурсы включены только версии 72x72. Это какая-то ошибка? –

+0

мои выводы заключаются в том, что 57x57 записей не требуются в info.plist, потому что они не будут в комплекте с суффиксом^ipad, как 72. Кроме того, как отмечает @BenedicteRaae, 72 записи не требуются, если (и это мое дополнение к этому, если) они имеют то же имя, что и каталог активов (в этом случае имя каталога актива было AppIcon - но это может быть что угодно) –

0

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

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

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

2

XCode 6.0.1 Update

Оказывается, что каталоги 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+.