ios - экран - не перемещаются иконки на айфоне




iOS Сохраняя старый экран запуска и значок приложения после обновления (12)

  1. Удалить приложение с устройства
  2. Выключите устройство
  3. Включите устройство
  4. Установите и запустите приложение.

У меня есть приложение, в котором я недавно заменил образы запуска и значки приложений, я удалил все старые ресурсы из любого места в проекте. Когда я обновляю приложение со старой версии до новой, просто встроив Xcode, все в порядке. Однако, если у меня установлена ​​старая версия моего приложения, обновите ее с TestFlight, каждый раз, когда я убиваю приложение, а затем перезагружаю его, на короткое время появляется старое изображение запуска, прежде чем показывать новое изображение запуска. Аналогичным образом, когда я закрываю приложение, значок старого приложения кратковременно мигает, прежде чем вернуться к моему новому.

Я открыл приложение с помощью iExplorer и заметил, что в каталоге /Library/Caches/Shapshots есть изображение старого экрана запуска (я не знаю, как и почему оно туда попало). Когда я удаляю его вручную через iExplorer, он перестает появляться. Однако, когда я пытаюсь удалить его с помощью кода, используя методы NSFileManager , я получаю сообщение об ошибке, в котором говорится, что мне запрещено удалять файлы в этом каталоге.

Кто-нибудь сталкивался с этим раньше и есть какие-либо советы?


Была такая же проблема, но только с изображением, используемым в раскадровке на стартовом экране. Перемещение изображения из каталога ресурсов с изменением его имени на комплект приложений (например, старый набор изображений в каталоге ресурсов назывался launch_logo, а изображение в комплекте приложений - launchscreen_logo.png) решило эту проблему для нас.


Для симулятора просто Reset Contents and Settings...


Итак, я разобрался с проблемой. В предыдущей версии моего приложения мы использовали Launch Screen XIB. Где-то при разработке этой новой версии xib был удален и заменен только статическими изображениями запуска.

Решение заключается в использовании XI Launch Screen. Я заметил, что в тот момент, когда я впервые использовал xib стартового экрана, файл, сохраненный в каталоге моментальных снимков, был заменен снимком xib.


Просто подключите ваше устройство, перейдите в Xcode> Window> Devices> Your device, теперь в установленных приложениях, выберите ваше приложение, щелкните правой кнопкой мыши и загрузите контейнер, перейдите к сгенерированному файлу, щелкните правой кнопкой мыши, Показать содержимое пакета, AppData, Library, Caches, и удалите файлы. Теперь перейдите в Xcode> Window> Devices> Your device> ваше приложение и щелкните правой кнопкой мыши, чтобы заменить контейнеры.


Удалите приложение, перезагрузите телефон и снова установите приложение ... Это на самом деле исправлено в моем случае.


Что сработало для меня:

  • Удалите контроллер сцены и вида на LaunchScreen и создайте новый (убедитесь, что вы установили его как «Начальный контроллер представления» в Инспекторе атрибутов).

Что не сработало для меня:

  • Удаление приложения
  • Перезагрузка iPhone, Mac или Xcode
  • Удаление полученных данных
  • Удаление контейнера устройства
  • очищающий
  • Горящие 3 куклы Стива Джобса Вуду

Эти кеши используются Springboard для быстрого переключения приложений. Это не проблема, которая повлияет на ваших производственных пользователей и теоретически должна исчезнуть в следующий раз, когда Springboard решит сделать снимок вашего приложения.

При этом, это не проблема, которую вы можете решить. Это ошибка в коде Apple, а не ваша.


Это сработало для меня: http://arsenkin.com/launch_screen_image_cache.html

Опять же, благодаря ветке, на которую я ссылался выше, я нашел способ решить эту проблему - назовите ваше новое изображение не так, как раньше, на случай, если у вашего нового будет то же имя, что и у старого, и выведите его из * .xcassets в каталог проекта и ссылки на него в вашем UIImageView. Вот и все. Звучит глупо легко, но о боже, сколько ярости у меня было.


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

Когда вы меняете какие-либо изображения на экране запуска, и вы хотите увидеть эти изменения в следующем запуске немедленно. пожалуйста, используйте новое имя изображения, какое изображение вы изменили, и ссылку на новый файл изображения в раскадровке или XIB.

Запустите снова, вы увидите новые изменения.


Я также столкнулся с той же проблемой. Это происходит потому, что симулятор / устройство iOS кэширует образ запуска при первом запуске приложения. Я добавил несколько изменений в ответ Брайана Тшупека :

  1. Удалить набор изображений из ресурсов Xcode (например, launch_image)
  2. Добавьте новый набор изображений и добавьте изображения к нему.
  3. Выключите и включите устройство iOS. (Сбросить содержимое и настройки для симулятора).
  4. Очистите папку сборки Xcode (Нажмите команду + опция + Shift + K ).
  5. Удалить приложение с устройства / симулятора (если доступно).
  6. Беги снова.

@InkGolem

Это не проблема, которая повлияет на ваших производственных пользователей

правда.

Я столкнулся с этой проблемой, когда я изменил свой экран запуска, SplashScreen и значок приложения. Я перепробовал каждый метод, но он не работал. Наконец, я только что опубликовал свое приложение и загрузил его из магазина приложений с устройства, которое я не использовал для разработки . SplashScreen и значок приложения работают как обычно !!!





cocoa-touch