У меня была та же проблема, что и у вас, и это сводило меня с ума, пока я наконец не понял это. Кажется, проблема в том, что если у вас есть две версии приложения на одном устройстве, устройство отобразит значок приложения более ранней версии этого приложения. Я уверен, что в коде отображения значков Apple есть какая-то кеширующая ошибка, которая вызывает это.
Это примерно шаги воспроизведения для полученной мной ошибки (я почти уверен, что вы видите ту же ошибку):
- Создан значок для MyApp.
- Встроенный MyApp на устройстве Foo.
- Я вижу значок MyApp на моем устройстве (хорошо!).
- Изменен значок для MyApp.
- Создан новый идентификатор приложения для MyApp.
- Созданы новые профили обеспечения для MyApp.
- Изменен проект MyApp Xcode для использования новых профилей обеспечения.
- Встроенный MyApp на устройстве Foo.
- Xcode устанавливает НОВУЮ копию MyApp на Device Foo (потому что идентификатор приложения изменился). Старое приложение все еще там (теперь оно почти мертвым весом).
- -> Device Foo отображает старый значок MyApp (плохо!).
Fix:
- Удалить старую копию MyApp
- Удалить новую копию MyApp
- Сборка и запуск MyApp из Xcode
- -> На устройстве должен появиться новый значок.
Обратите внимание, что я не собирал и не запускал свой проект между шагами 4 и 5? Похоже, что вы, вероятно, сделали что-то похожее с вашим приложением на 3GS, поэтому я бы рекомендовал внимательно посмотреть на приложения на вашем 3GS, чтобы попытаться определить, какое из них представляет эту ошибку Apple. Просто удалите эту присоску, как только найдете. В любом случае, это хорошая идея - вычистить все старое дерьмо на вашем устройстве.
Это действительно простая ошибка, с которой можно столкнуться при работе с несколькими устройствами.