iphone SDK: значок универсального бинарного приложения пуст для iPhone 3G - PullRequest
1 голос
/ 26 октября 2010

У меня есть универсальное бинарное приложение для iPhone / iPad.Значок приложения отображается правильно при установке приложения на iPhone4 и iPad.Однако при установке на iPhone 3G значок остается пустым (серый).Я перепробовал все, что мог придумать, чтобы решить эту проблему и был бы благодарен за предложения.Я следовал рекомендациям Apple по значкам универсальных приложений, найденным здесь: http://developer.apple.com/library/ios/#qa/qa2010/qa1686.html

  1. У меня есть значок 57x57 с именем Icon.png для значка iPhone 3G
  2. В моем списке естьзапись для CFBundleIconFile со значением «Icon.png».Согласно Apple, этот ключ должен быть включен для обратной совместимости с iPhone под управлением iOS старше v3.2.
  3. Кроме того, у меня есть запись CFBundleIconFiles, в которой перечислены все значки различных размеров - я включил все рекомендованные значки, предоставленные Apple, по ссылке для разработчиков выше.
  4. Значок на симуляторе iphone, iPad-симуляторе, iPhone 4 и iPad выглядит отлично
  5. Я попытался очистить проект
  6. Я убедился, что Icon.png работаетскопировал в цель
  7. Я проверил, что Icon.png находится в файле приложения.
  8. Я проверил, что Icon.png имеет размер 57x57.
  9. Я убедился, что значок не имеет альфа-канала.На самом деле, я протестировал значок из предыдущего приложения, которое работало, и что все еще отображается пустым на iPhone 3G.
  10. Я попытался сохранить значок как 8-битный и 24-бит PNG как с прозрачностью, так и без нее.
  11. Перед восстановлением я удалил приложение и перезагрузил iPhone.

Ответы [ 4 ]

2 голосов
/ 26 октября 2010

Попробуйте CFBundleIconFiles (тип значения в виде массива)

as Icon.png, Icon ~ iPad.png, Icon@2x.png

1 голос
/ 30 октября 2010

Может присутствовать два изображения с одинаковыми именами. Пожалуйста, проверьте это тоже.

Всего наилучшего.

0 голосов
/ 18 января 2011

У меня была та же проблема, что и у вас, и это сводило меня с ума, пока я наконец не понял это. Кажется, проблема в том, что если у вас есть две версии приложения на одном устройстве, устройство отобразит значок приложения более ранней версии этого приложения. Я уверен, что в коде отображения значков Apple есть какая-то кеширующая ошибка, которая вызывает это.

Это примерно шаги воспроизведения для полученной мной ошибки (я почти уверен, что вы видите ту же ошибку):

  1. Создан значок для MyApp.
  2. Встроенный MyApp на устройстве Foo.
  3. Я вижу значок MyApp на моем устройстве (хорошо!).
  4. Изменен значок для MyApp.
  5. Создан новый идентификатор приложения для MyApp.
  6. Созданы новые профили обеспечения для MyApp.
  7. Изменен проект MyApp Xcode для использования новых профилей обеспечения.
  8. Встроенный MyApp на устройстве Foo.
  9. Xcode устанавливает НОВУЮ копию MyApp на Device Foo (потому что идентификатор приложения изменился). Старое приложение все еще там (теперь оно почти мертвым весом).
  10. -> Device Foo отображает старый значок MyApp (плохо!).

Fix:

  1. Удалить старую копию MyApp
  2. Удалить новую копию MyApp
  3. Сборка и запуск MyApp из Xcode
  4. -> На устройстве должен появиться новый значок.

Обратите внимание, что я не собирал и не запускал свой проект между шагами 4 и 5? Похоже, что вы, вероятно, сделали что-то похожее с вашим приложением на 3GS, поэтому я бы рекомендовал внимательно посмотреть на приложения на вашем 3GS, чтобы попытаться определить, какое из них представляет эту ошибку Apple. Просто удалите эту присоску, как только найдете. В любом случае, это хорошая идея - вычистить все старое дерьмо на вашем устройстве.

Это действительно простая ошибка, с которой можно столкнуться при работе с несколькими устройствами.

0 голосов
/ 26 октября 2010

Попробуйте все вышеперечисленное и перед сборкой на свое устройство удалите приложение с телефона (при необходимости перезагрузите компьютер) и ТОЛЬКО ПОТОМ, чтобы восстановить устройство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...