wake-up-neo.net

iOS Der alte Startbildschirm und das App-Symbol bleiben nach dem Update erhalten

Ich habe eine App, bei der ich kürzlich die Startbilder und App-Symbole ausgetauscht habe. Ich habe alle alten Assets von überall im Projekt entfernt. Wenn ich die App von der alten auf die neue Version aktualisiere, indem ich einfach Xcode baue, ist alles in Ordnung. Wenn jedoch die alte Version meiner App installiert ist, aktualisieren Sie sie von Testflight aus. Bei jedem Abbruch der App wird das alte Startabbild neu gestartet, bevor das neue Startabbild angezeigt wird. Wenn ich die App dann wieder schließe, blinkt das alte App-Symbol kurz auf, bevor Sie zu meiner neuen App wechseln. 

Ich öffnete die App mit iExplorer und bemerkte, dass ein Bild des alten Startbildschirms im Verzeichnis/Library/Caches/Shapshots gespeichert ist (ich weiß nicht, wie oder warum es dorthin gekommen ist). Wenn ich es manuell über iExplorer lösche, wird es nicht mehr angezeigt. Wenn ich jedoch versuche, es mithilfe von NSFileManager-Methoden mit Code zu entfernen, erhalte ich die Fehlermeldung, dass das Löschen von Dateien in diesem Verzeichnis verboten ist. 

Hat jemand das schon mal erlebt und einen Ratschlag?

99
lramirez135

Ich konnte den Sprungbrett-Cache für das Testen von Startbildern zuverlässig löschen, indem Sie Folgendes tun:

  1. Löschen Sie Ihre App vom Gerät
  2. Schalten Sie das Gerät aus
  3. Gerät einschalten, installieren und App starten.

Das Bild wird jedes Mal ordnungsgemäß aktualisiert. Schade, ich muss das Gerät ausschalten, damit es funktioniert - aber zumindest konnte ich auf diesem Weg Fortschritte erzielen. Ich hoffe das hilft jemandem.

205
Brian Trzupek

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, Ihre App zu schnappen.

Dies ist jedoch kein Problem, das Sie beheben können. Dies ist ein Fehler in Apples Code, nicht in Ihrem.

30
InkGolem

Für den Simulator einfach Reset Contents and Settings...

22
Murray Sagal

@InkGolem  

Dies ist kein Problem, das Ihre Produktionsbenutzer betrifft

ist wahr.  

Dieses Problem hatte ich, als ich meinen Startbildschirm, SplashScreen und das App-Symbol änderte. Ich habe jede Methode ausprobiert, aber es hat nicht funktioniert. Schließlich habe ich gerade meine App veröffentlicht und meine Anwendung mit dem Gerät aus dem App Store heruntergeladen, das ich nicht für die Entwicklung verwendet habe . SplashScreen und App Icon funktionieren normal !!!

12
chinnawatp

Ich habe eine Problemumgehung gefunden. Was ist, wenn Sie dieses Problem wirklich beheben möchten? __ Apple hat einige Mechanismen zum Zwischenspeichern von Bildern des Startbildschirms, die nach Bilddateinamen indizieren.

Wenn Sie Bilder auf dem Startbildschirm ändern und diese Änderungen beim nächsten Durchlauf sofort sehen möchten. Bitte verwenden Sie einen neuen Bildnamen, welches Bild Sie geändert haben, und verknüpfen Sie es mit einer neuen Bilddatei im Storyboard oder XIB. 

Wenn Sie erneut ausführen, wird die neue Änderung angezeigt.

10
Yu-Sen Han

Deinstallieren Sie Ihre App, starten Sie das Telefon neu und installieren Sie die App erneut ... Dies wurde in meinem Fall tatsächlich behoben.

8
Ankit Pundhir

Ich stand auch vor demselben Problem. Dies geschieht, weil das Startbild beim ersten Start der Anwendung vom Simulator/iOS-Gerät zwischengespeichert wird. Ich füge Brian Trzupeks Antwort einige Modifikationen hinzu.

  1. Löschen Sie den Image-Satz aus Xcode-Assets (z. B. launch_image)
  2. Fügen Sie einen neuen Bildsatz hinzu und fügen Sie Bilder hinzu.
  3. Schalten Sie das iOS-Gerät aus und ein. (Inhalt und Einstellungen für den Simulator zurücksetzen).
  4. Bereinigen Sie den Xcode-Buildordner (Drücken Sie Befehlstaste + Wahltaste + Umschalttaste + K).
  5. Löschen Sie die App vom Gerät/Simulator (falls verfügbar).
  6. Führe es nochmals aus.
4
A.G

Dies funktionierte für mich: http://arsenkin.com/launch_screen_image_cache.html

Dank des Threads, auf den ich oben verwiesen habe, fand ich einen Weg zu Lösen Sie dieses Problem - benennen Sie Ihr neues Bild anders als dort war vor für den Fall, dass Ihr neuer den gleichen Namen wie der alte hat und Legen Sie es aus dem Ordner * .xcassets in das Projektverzeichnis und verweisen Sie in Ihrem UIImageView darauf. Und das ist es. Ton dumm einfach aber oh gawd, wie viel Wut ich hatte.

3
JERC

Verbinden Sie einfach Ihr Gerät, gehen Sie zu Xcode> Fenster> Geräte> Ihr Gerät, Jetzt in den installierten Apps. Wählen Sie Ihre App aus, klicken Sie mit der rechten Maustaste und laden Sie den Container herunter Dateien zwischenspeichern und löschen .. __ Gehen Sie zu Xcode> Fenster> Geräte> Ihr Gerät> Ihre App und klicken Sie mit der rechten Maustaste, um die Container zu ersetzen.

3
user6312715
  1. Löschen Sie Ihre App vom Gerät
  2. Schalten Sie das Gerät aus
  3. Gerät einschalten
  4. App installieren und starten.
2
Jone Ren

Ok, also habe ich das Problem herausgefunden. In der vorherigen Version meiner App haben wir ein Startbild-XIB verwendet. Bei der Entwicklung dieser neuen Version wurde das XIB gelöscht und nur durch statische Startabbilder ersetzt. 

Die Lösung ist die Verwendung eines Launch Screen XIB. Ich bemerkte, dass die Datei, die im Snapshots-Verzeichnis gespeichert wurde, durch den Snapshot des Xib ersetzt wurde. 

1
lramirez135

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.

0
ahbou

Dies ist der schnellste Weg, um dieses Problem zu beheben, obwohl es sich dumm anhört:

  1. Klicken Sie mit der rechten Maustaste auf LaunchScreen.xiboder in Ihrer Startbildschirmdatei und wählen Sie Remove file und dann Remove to trash aus. Dadurch werden alle Verweise auf die Datei und die früheren Aktualisierungen aus Ihrem Projekt entfernt.

  2. Gehen Sie in Ihren Papierkorb und ziehen Sie die Datei per Drag & Drop zurück in Ihr xCode-Projekt (innerhalb von yourProjectName).

  3. Reinigen und wieder aufbauen.

0
Walter Monecke

Hatte dieses Problem auch. Als absoluter Neuling habe ich das LaunchScreen.storyboard auf LaunchScreen.xib geändert. Der Lauf ist fehlgeschlagen (duh), also habe ich ihn wieder in .storyboard geändert, um die App erneut auszuführen, nur um zu testen, dass ich nichts anderes vermasselt hatte - und der alte Bildschirm wurde nicht zuerst angezeigt. Was immer ich getan habe, es muss den alten Cache geleert haben. 

0
richard s. hill

@ Chino

@InkGolem

Dies ist kein Problem, das sich auf Ihre Produktionsbenutzer auswirkt ist echt.

Dieses Problem hatte ich, als ich meinen Startbildschirm, SplashScreen und meine App änderte. Symbol. Ich habe jede Methode ausprobiert, aber es hat nicht funktioniert. Zum Schluss habe ich gerade meine App veröffentlicht und lade meine Anwendung aus dem App Store mit dem Gerät herunter, das ich nicht verwendet habe zur Entwicklung. SplashScreen und App Icon funktionieren normal !!!

Hatten Sie auf diesem Gerät die vorherige Version installiert? Ich glaube, dass dies dasselbe ist wie die obigen Antworten, die besagen, dass Sie löschen und neu installieren oder löschen, neu starten und erneut installieren sollen. 

Ich habe das gleiche Problem, und zwar bei Entwicklungs- und Produktionsgeräten, beim Simulator und im Appstore. Ich kann das Problem auch mithilfe des Simulators neu erstellen. Ich führe zuerst den Simulator mit einer früheren Version meines Codes aus und dann den Simulator mit einer späteren Version. In beiden Fällen wird der alte Startbildschirm übernommen. Das Löschen des Schnappschusses im Simulator funktioniert nicht, da er nur neu erstellt wird. Wenn Sie die App durch Drücken der Home-Taste schließen, wird ein neuer Schnappschuss mit dem älteren Startbildschirm erstellt. Nun ... wenn ich die alte Version der App vom Telefon oder Simulator lösche und die Installation dann entweder mit Xcode oder dem App Store installiere, werden die Startbildschirm-Updates ordnungsgemäß angezeigt. Dies ist jedoch keine ideale Lösung für Endbenutzer.

Hat jemand eine Lösung gefunden, bei der die vorherige Anwendung nicht vom Telefon gelöscht wird?

Ich habe Folgendes versucht: Umbenennen der LaunchScreen-Xib-Datei Umbenennen der von LaunchScreen verwendeten Bilder Hinzufügen eines leeren Bilds zum screen.window von applicationDidEnterBackground, um den Bildschirm vor dem Schnappschuss auszublenden

Hinzufügen eines Abbruchs bei [application didFinishLaunchingWithOptions] Ich kann sehen, dass der alte LaunchScreen angezeigt wird, bevor der didFinishLaunchingWithOptions-Aufruf aufgerufen wird.

0
dschlabach

Was hat für mich gearbeitet:

  • Löschen Sie den Scene- und View-Controller von LaunchScreen und erstellen Sie einen neuen (stellen Sie sicher, dass Sie im Attribut-Inspektor "Initial View Controller" festgelegt haben).

Was hat nicht für mich gearbeitet: 

  • App löschen
  • Neustart des iPhone, Mac oder Xcodes
  • Abgeleitete Daten löschen
  • Den Container des Geräts löschen
  • Reinigung
  • Burning 3 Steve Jobs Voodoo-Puppen
0
Daniel Springer

Um ehrlich zu sein, habe ich kein Risiko eingegangen, um live zu gehen, ohne sicher zu sein, ob dies aktualisiert wird.

Wenn Sie also xcassets verwenden, ist dies eine einfache Lösung:

  1. Löschen Sie den alten Image-Satz 
  2. Erstellen Sie eine mit einem anderen Namen und fügen Sie Ihre Startbildschirmbilder hinzu
  3. Aktualisieren Sie Ihr Storyboard, um diese "neue" Bildsatzreferenz zu verwenden

Es wird sicher aktualisiert! (Ich habe sogar mit bereits auf dem Gerät installierter App getestet). Keine Notwendigkeit, den Cache des Geräts zu bereinigen.

0
hico

Versuchen Sie, den Simulator zu öffnen, und gehen Sie zu Hardware -> Alle Inhalte und Einstellungen löschen.

0

Hatte das gleiche Problem, aber nur mit dem im Startbildschirm verwendeten Storyboard. Das Verschieben des Bilds aus dem Asset-Katalog in das App-Bundle (z. B. wurde das alte im Asset-Katalog festgelegte Bild als launch_logo und das Bild im App-Bundle als launchscreen_logo.png bezeichnet) löste das Problem für uns.

0
Anton Filimonov