Ich habe eine App, in der ich kürzlich die Startbilder und App-Symbole ersetzt habe. Ich habe alle alten Assets von überall im Projekt entfernt. Wenn ich die App von der alten Version auf die neue Version aktualisiere, indem ich nur Xcode einbaue, ist alles in Ordnung. Wenn ich jedoch die alte Version meiner App installiert habe und sie dann von TestFlight aktualisiere, wird jedes Mal, wenn ich die App beende und dann neu starte, das alte Startbild kurz angezeigt, bevor das neue Startbild angezeigt wird. Wenn ich dann die App schließe, blinkt das alte App-Symbol kurz, bevor ich wieder zu meinem neuen wechsle.
Ich habe die App mit iExplorer geöffnet und festgestellt, dass ein Bild des alten Startbildschirms im /Library/Caches/Shapshots
Verzeichnis gespeichert ist (ich weiß nicht, wie oder warum er dort angekommen ist ). Wenn ich es manuell über iExplorer lösche, wird es nicht mehr angezeigt. Wenn ich jedoch versuche, es mit Code mithilfe von NSFileManager
Methoden zu entfernen , wird die Fehlermeldung angezeigt, dass das Löschen von Dateien in diesem Verzeichnis verboten ist.
Hat jemand dies schon einmal erlebt und hat einen Rat?
Antworten:
Auf diese Weise konnte ich den Springboard-Cache zuverlässig zum Testen von Startbildänderungen löschen:
Das Bild wird jedes Mal ordnungsgemäß aktualisiert. Schade, dass ich das Gerät ausschalten muss, damit es funktioniert - aber zumindest konnte ich auf diese Weise Fortschritte erzielen. Ich hoffe das hilft jemandem.
quelle
Diese Caches werden von Springboard verwendet, um das Wechseln der App zu beschleunigen. Dies ist kein Problem, das Ihre Produktionsbenutzer betrifft, und sollte theoretisch verschwinden, wenn Springboard das nächste Mal beschließt, einen Snapshot Ihrer App zu erstellen.
Davon abgesehen ist dies kein Problem, das Sie beheben können. Dies ist ein Fehler in Apples Code, der nicht Ihnen gehört.
UPDATE: Es scheint eine Problemumgehung zu geben, bei der das Gerät nicht neu gestartet werden muss.
Dies wird nach dem zweiten Start wirksam!
Eine vollständige Erklärung, wie das hier funktioniert: https://rambo.codes/ios/quick-tip/2019/12/09/clearing-your-apps-launch-screen-cache-on-ios.html
quelle
Für den Simulator nur
Reset Contents and Settings...
quelle
@InKGolem
ist wahr.
Ich hatte dieses Problem, als ich meinen Startbildschirm, meinen Begrüßungsbildschirm und mein App-Symbol geändert habe. Ich habe jede Methode ausprobiert, aber es hat nicht funktioniert. Schließlich habe ich gerade meine App veröffentlicht und meine Anwendung aus dem App Store mit dem Gerät heruntergeladen , das ich nicht für die Entwicklung verwendet habe . SplashScreen und App Icon funktionieren wie gewohnt !!!
quelle
Ich habe eine Problemumgehungslösung gefunden. Was ist, wenn Sie dieses Problem wirklich beheben möchten? Apple verfügt über einige Mechanismen zum Zwischenspeichern von Bildern des Startbildschirms, die nach dem Namen der Bilddatei indiziert werden.
Wenn Sie Bilder auf dem Startbildschirm ändern und diese Änderungen beim nächsten Lauf sofort sehen möchten. Bitte verwenden Sie den neuen Bildnamen, welches Bild Sie geändert haben, und verknüpfen Sie es mit einer neuen Bilddatei im Storyboard oder in xib.
Bei erneuter Ausführung wird eine neue Änderung angezeigt.
quelle
Das hat bei mir funktioniert: http://arsenkin.com/launch_screen_image_cache.html
quelle
Deinstallieren Sie Ihre App, starten Sie Ihr Telefon neu und installieren Sie Ihre App erneut ... Dies wurde in meinem Fall tatsächlich behoben.
quelle
Ich stand auch vor dem gleichen Problem. Dies liegt daran, dass der Simulator / das iOS-Gerät das Startabbild beim ersten Start der Anwendung zwischenspeichert. Ich habe einige Änderungen an Brian Trzupeks Antwort hinzugefügt :
quelle
Was hat bei mir funktioniert:
Was bei mir nicht funktioniert hat:
Hinweis:
quelle
Schließen Sie einfach Ihr Gerät an, gehen Sie zu Xcode> Fenster> Geräte> Ihr Gerät, jetzt in installierten Apps, wählen Sie Ihre App aus, klicken Sie mit der rechten Maustaste und laden Sie den Container herunter, gehen Sie zur generierten Datei, klicken Sie mit der rechten Maustaste, Paketinhalt anzeigen, AppData, Bibliothek, Caches, und Dateien löschen. Gehen Sie nun zu Xcode> Fenster> Geräte> Ihr Gerät> Ihre App und klicken Sie mit der rechten Maustaste, um Container zu ersetzen.
quelle
Ehrlich gesagt bin ich nicht das Risiko eingegangen, live zu gehen, ohne sicher zu sein, ob dies aktualisiert wird oder nicht.
Angenommen, Sie verwenden xcassets, ist eine einfache Lösung:
Es wird sicher aktualisiert! (Ich habe sogar mit einer App getestet, die bereits auf dem Gerät installiert ist). Der Cache des Geräts muss nicht bereinigt werden.
quelle
quelle
Ok, also habe ich das Problem herausgefunden. In der vorherigen Version meiner App haben wir einen Startbildschirm XIB verwendet. Irgendwann in der Entwicklung dieser neuen Version wurde die xib gelöscht und nur durch statische Startbilder ersetzt.
Die Lösung besteht darin, einen Startbildschirm XIB zu verwenden. Ich bemerkte, dass in dem Moment, in dem ich zum ersten Mal einen Startbildschirm xib verwendete, die im Snapshots-Verzeichnis gespeicherte Datei durch den Snapshot des xib ersetzt wurde.
quelle
Xcode 10 / iOS 12
Nachdem ich alle oben genannten Dinge ausprobiert hatte, musste ich die Bildansicht vom LaunchScreen löschen und durch eine neue ersetzen.
quelle
Dies ist der schnellste Weg, um dieses Problem zu beheben, obwohl es dumm klingt:
Klicken
LaunchScreen.xib
Sie mit der rechten Maustaste auf oder auf Ihre Startbildschirmdatei und wählen SieRemove file
dann ausRemove to trash
. Dadurch werden alle Verweise auf die Datei und ihre früheren Aktualisierungen aus Ihrem Projekt entfernt.Gehen Sie in Ihren Papierkorb und ziehen Sie die Datei per Drag & Drop zurück in Ihr xCode-Projekt (innerhalb
yourProjectName
).Reinigen und wieder aufbauen.
quelle
Verwenden Sie diesen Code, um den Startbildschirm-Cache zu bereinigen:
Verwendung:
quelle
Hatte dieses Problem auch. Als absoluter Neuling habe ich das LaunchScreen.storyboard naiv in LaunchScreen.xib geändert. Der Lauf ist fehlgeschlagen (duh), also habe ich ihn wieder in .storyboard geändert und die App erneut ausgeführt, um zu testen, ob ich nichts anderes vermasselt habe - und der alte Bildschirm wurde nicht zuerst angezeigt. Was auch immer ich getan habe, es muss den alten Cache geleert haben.
quelle
Hatte das gleiche Problem, aber nur mit dem im Launchscreen-Storyboard verwendeten Bild. Das Verschieben des Images aus dem Asset-Katalog durch Ändern seines Namens in das App-Bundle (z. B. wurde das alte Image im Asset-Katalog als launch_logo und das Image im App-Bundle als launchscreen_logo.png bezeichnet) wurde für uns behoben.
quelle
Ich denke, das hängt von den Situationen ab. Wenn dies beim Debuggen oder Testen geschieht, wird das Bild auf dem Startbildschirm gelöscht. Oder deinstallieren Sie Ihre Apps und starten Sie den Start neu.
Aber es geht auch nach dem Archivieren, dann löst es sich nicht mit Zurücksetzen und Reinigen.
quelle
In meinem Fall habe ich AppIcon Source nicht über App-Einstellungen -> Allgemein - > App-Symbole und Bilder starten -> App-Symbol-Quelle ausgewählt
quelle
Versuchen Sie es in AppDelegate
quelle
Lösungsarbeit für mich
Erstellen und installieren und starten Sie die App erneut.
Genießen
quelle
Stellen Sie sicher, dass Sie alle diese Schritte ausgeführt haben
quelle
Öffnen Sie den Simulator und gehen Sie zu Hardware -> Alle Inhalte und Einstellungen löschen.
quelle