У меня есть приложение, в котором я недавно заменил образы запуска и значки приложений, я удалил все старые ресурсы из любого места в проекте. Когда я обновляю приложение со старой версии до новой, просто встроив Xcode, все в порядке. Однако, если у меня установлена старая версия моего приложения, обновите ее с TestFlight, каждый раз, когда я убиваю приложение, а затем перезагружаю его, старое изображение запуска кратко отображается перед отображением нового образа запуска. Точно так же, когда я закрываю приложение, значок старого приложения кратковременно мигает, прежде чем вернуться к моему новому.
Я открыл приложение с помощью iExplorer и заметил, что в /Library/Caches/Shapshots
каталоге сохранено изображение старого экрана запуска (я не знаю, как и почему оно туда попало). Когда я удаляю его вручную через iExplorer, он перестает появляться. Однако, когда я пытаюсь удалить его с помощью кода, используя NSFileManager
методы, я получаю сообщение об ошибке, в котором говорится, что мне запрещено удалять файлы в этом каталоге.
Кто-нибудь сталкивался с этим раньше и есть какие-либо советы?
Ответы:
Я смог надежно очистить кеш трамплина для тестирования изменений образа запуска, выполнив это:
Изображение обновляется правильно каждый раз. Жаль, мне нужно выключить устройство, чтобы оно заработало - но, по крайней мере, я смог добиться прогресса таким образом. Я надеюсь, что это поможет кому-то.
источник
Эти кеши используются Springboard для быстрого переключения приложений. Это не проблема, которая повлияет на ваших производственных пользователей и теоретически должна исчезнуть в следующий раз, когда Springboard решит сделать снимок вашего приложения.
При этом, это не проблема, которую вы можете решить. Это ошибка в коде Apple, а не ваша.
ОБНОВЛЕНИЕ: Кажется, есть обходной путь, который не требует перезагрузки устройства.
Это вступит в силу после второго запуска!
Полное объяснение того, как это работает здесь: https://rambo.codes/ios/quick-tip/2019/12/09/clearing-your-apps-launch-screen-cache-on-ios.html
источник
Для симулятора просто
Reset Contents and Settings...
источник
@InkGolem
правда.
Я столкнулся с этой проблемой, когда я изменил свой экран запуска, SplashScreen и значок приложения. Я перепробовал каждый метод, но он не работал. Наконец, я только что опубликовал свое приложение и загрузил его из магазина приложений с устройства, которое я не использовал для разработки . SplashScreen и значок приложения работают как обычно !!!
источник
Я нашел обходное решение, что если вы действительно хотите решить эту проблему. У Apple есть несколько механизмов для кэширования изображений экрана запуска, которые индексируются по имени файла изображения.
Когда вы меняете какие-либо изображения на экране запуска и хотите, чтобы они сразу же изменились в следующем запуске. пожалуйста, используйте новое имя изображения, какое изображение вы изменили, и ссылку на новый файл изображения в раскадровке или XIB.
Запустите снова, вы увидите новые изменения.
источник
Это сработало для меня: http://arsenkin.com/launch_screen_image_cache.html
источник
Удалите приложение, перезагрузите телефон и снова установите приложение ... Это на самом деле исправлено в моем случае.
источник
Я также столкнулся с той же проблемой. Это происходит потому, что симулятор / устройство iOS кэширует образ запуска при первом запуске приложения. Я добавил некоторые изменения в ответ Брайана Тшупека :
источник
Что сработало для меня:
Что не сработало для меня:
Примечание:
источник
Просто подключите ваше устройство, перейдите в Xcode> Window> Devices> Your device, теперь в установленных приложениях, выберите ваше приложение, щелкните правой кнопкой мыши и загрузите контейнер, перейдите к сгенерированному файлу, щелкните правой кнопкой мыши, Показать содержимое пакета, AppData, Library, Caches, и удалите файлы. Теперь перейдите в Xcode> Window> Devices> Your device> ваше приложение и щелкните правой кнопкой мыши, чтобы заменить контейнеры.
источник
Честно говоря, я не рискнул начать жить, не будучи уверенным, будет ли это обновлено или нет.
Итак, если вы используете xcassets, простое решение:
Это обязательно обновит! (Я даже протестировал с приложением, уже установленным на устройстве). Нет необходимости чистить кэш устройства или около того.
источник
источник
Итак, я разобрался с проблемой. В предыдущей версии моего приложения мы использовали Launch Screen XIB. Где-то при разработке этой новой версии xib был удален и заменен только статическими изображениями запуска.
Решение заключается в использовании XIB Launch Screen. Я заметил, что в тот момент, когда я впервые использовал xib стартового экрана, файл, сохраненный в каталоге моментальных снимков, был заменен снимком xib.
источник
Xcode 10 / iOS 12
Попробовав все вышеперечисленное, мне пришлось удалить изображение с LaunchScreen и заменить его новым.
источник
Это самый быстрый способ, который я нашел, чтобы решить эту проблему, хотя это звучит глупо:
Щелкните правой кнопкой мыши на
LaunchScreen.xib
файле экрана запуска и выберите,Remove file
затем выберитеRemove to trash
. Это удалит все ссылки на файл и его прошлые обновления из вашего проекта.Зайдите в корзину и перетащите файл обратно в ваш проект xCode (внутри
yourProjectName
).Очистить и восстановить.
источник
Используйте этот фрагмент кода для очистки кэша экрана запуска:
Использование:
источник
Была и эта проблема. Будучи новичком, я наивно изменил LaunchScreen.storyboard на LaunchScreen.xib. Запуск не удался (да), поэтому я изменил его на .storyboard, перезапустил приложение, просто чтобы проверить, что я больше ничего не испортил - и старый экран не появился первым. Так что, что бы я ни делал, это должно было стереть старый кеш.
источник
Была такая же проблема, но только с изображением, используемым в раскадровке на стартовом экране. Перемещение изображения из каталога ресурсов с изменением его имени на комплект приложений (например, старый набор изображений в каталоге активов назывался launch_logo, а изображение в комплекте приложений - launchscreen_logo.png) решило эту проблему для нас.
источник
Я думаю, это зависит от ситуации. Когда это происходит при отладке или тестировании, работает над удалением изображения на стартовом экране. Или удалите свои приложения, затем перезапустите запуск.
Но идет даже после архива, потом не решается с перезагрузкой и очисткой.
источник
В моем случае я не выбрал источник AppIcon в разделе «Настройки приложения» -> «Основные» - > «Значки приложений» и «Запустить изображения» -> «Источник значков приложений».
источник
Попробуйте это в AppDelegate
источник
Решение работы для меня
Снова соберите, установите и запустите приложение.
наслаждаться
источник
Убедитесь, что вы сделали все эти шаги
источник
Попробуйте открыть симулятор, зайдя в Оборудование -> Стереть все содержимое и настройки.
источник