J'ai une application dans laquelle j'ai récemment remplacé les images de lancement et les icônes d'application, j'ai supprimé tous les anciens actifs de partout dans le projet. Lorsque je mets à niveau l'application de l'ancienne version vers la nouvelle version en créant simplement Xcode, tout va bien. Cependant, si l'ancienne version de mon application est installée, mettez-la à niveau à partir de TestFlight, chaque fois que je tue l'application, puis la redémarre, l'ancienne image de lancement apparaît brièvement avant d'afficher la nouvelle image de lancement. De même, lorsque je ferme l'application, l'ancienne icône de l'application clignote brièvement avant de revenir à la nouvelle.
J'ai ouvert l'application en utilisant iExplorer et j'ai remarqué qu'une image de l'ancien écran de lancement était enregistrée dans le /Library/Caches/Shapshots
répertoire (je ne sais pas comment ni pourquoi elle y est arrivée). Lorsque je le supprime manuellement via iExplorer, il cesse d'apparaître. Cependant, lorsque j'essaie de le supprimer avec du code en utilisantNSFileManager
méthodes, j'obtiens des erreurs indiquant que je suis interdit de supprimer des fichiers dans ce répertoire.
Quelqu'un a-t-il déjà vécu cela et a-t-il des conseils?
Réponses:
J'ai été en mesure de faire effacer de manière fiable le cache du springboard pour tester les changements d'image de lancement en faisant ceci:
L'image se met à jour correctement à chaque fois. Dommage que je doive éteindre l'appareil pour le faire fonctionner - mais au moins j'ai pu progresser de cette façon. J'espère que ça aidera quelqu'un.
la source
Ces caches sont utilisés par Springboard pour accélérer le changement d'application. Ce n'est pas un problème qui affectera vos utilisateurs de production et devrait en théorie disparaître la prochaine fois que Springboard décidera de créer un instantané de votre application.
Cela étant dit, ce n'est pas un problème que vous pouvez résoudre. C'est un bogue dans le code d'Apple, pas le vôtre.
MISE À JOUR: Il semble y avoir une solution qui ne nécessite pas le redémarrage de l'appareil.
Cela prendra effet après le deuxième lancement!
Une explication complète de la façon dont cela fonctionne ici: https://rambo.codes/ios/quick-tip/2019/12/09/clearing-your-apps-launch-screen-cache-on-ios.html
la source
Pour le simulateur juste
Reset Contents and Settings...
la source
@InkGolem
est vrai.
J'étais confronté à ce problème lorsque j'ai changé mon écran de lancement, mon écran Splash et mon icône d'application. J'ai essayé toutes les méthodes, mais cela n'a pas fonctionné. Enfin, je viens de publier mon application et de télécharger mon application depuis l'App Store avec l' appareil que je n'ai pas utilisé pour le développement . SplashScreen et l'icône de l'application fonctionnent normalement !!!
la source
J'ai trouvé une solution de contournement si vous voulez vraiment résoudre ce problème. Apple a quelques mécanismes pour mettre en cache les images de l'écran de lancement qui indexent par nom de fichier image.
Lorsque vous modifiez des images sur l'écran de lancement et que vous souhaitez voir ces modifications immédiatement lors de la prochaine exécution. Veuillez utiliser le nouveau nom de l'image que vous avez modifié et créer un lien vers un nouveau fichier image dans le storyboard ou xib.
Exécutez à nouveau, vous verrez un nouveau changement apparaître.
la source
Cela a fonctionné pour moi: http://arsenkin.com/launch_screen_image_cache.html
la source
Désinstallez votre application, redémarrez votre téléphone et réinstallez votre application ... Cela a été résolu dans mon cas.
la source
J'ai également fait face au même problème. Cela se produit parce que le simulateur / appareil iOS met en cache l'image de lancement lorsque vous lancez l'application pour la première fois. J'ai ajouté quelques modifications à la réponse de Brian Trzupek :
la source
Ce qui a fonctionné pour moi:
Qu'est-ce que pas fonctionné pour moi:
Remarque:
la source
Connectez simplement votre appareil, allez dans Xcode> Fenêtre> Appareils> Votre appareil, maintenant dans les applications installées, sélectionnez votre application, faites un clic droit et téléchargez le conteneur, accédez au fichier généré, faites un clic droit, Afficher le contenu du package, AppData, Bibliothèque, Caches, et supprimez les fichiers. Maintenant, allez dans Xcode> Fenêtre> Appareils> Votre appareil> votre application et faites un clic droit pour remplacer les conteneurs.
la source
Honnêtement, je n'ai pas pris le risque de passer en direct sans être sûr si cela sera mis à jour ou non.
Donc, en supposant que vous utilisez xcassets, une solution simple est:
Il sera mis à jour à coup sûr! (J'ai même testé avec l'application déjà installée sur l'appareil). Pas besoin de nettoyer le cache de l'appareil ou plus.
la source
la source
Ok, alors j'ai compris le problème. Dans la version précédente de mon application, nous utilisions un Launch Screen XIB. Quelque part dans le développement de cette nouvelle version, le xib a été supprimé et remplacé uniquement par des images de lancement statiques.
La solution est d'utiliser un Launch Screen XIB. J'ai remarqué qu'au moment où j'ai utilisé un écran de lancement xib pour la première fois, le fichier stocké dans le répertoire snapshots a été remplacé par l'instantané du xib.
la source
Xcode 10 / iOS 12
Après avoir essayé toutes les choses mentionnées ci-dessus, j'ai dû supprimer l'image vue du LaunchScreen et la remplacer par une nouvelle.
la source
C'est le moyen le plus rapide que j'ai trouvé pour résoudre ce problème, même si cela semble stupide:
Faites un clic droit sur
LaunchScreen.xib
ou sur votre fichier d'écran de lancement et sélectionnezRemove file
puis sélectionnezRemove to trash
. Cela supprimera toutes les références du fichier et ses mises à jour passées de votre projet.Allez dans votre corbeille et faites glisser et déposez le fichier dans votre projet xCode (à l'intérieur
yourProjectName
).Nettoyez et reconstruisez.
la source
Utilisez ce morceau de code pour nettoyer le cache de l'écran de lancement:
Usage:
la source
Eu ce problème aussi. Étant un novice total, j'ai naïvement changé le LaunchScreen.storyboard en LaunchScreen.xib. La course a échoué (duh), alors je l'ai changé en .storyboard a relancé l'application juste pour tester que je n'avais rien foiré d'autre - et l'ancien écran n'est pas apparu en premier. Donc, quoi que j'ai fait, cela a dû vider l'ancien cache.
la source
J'ai eu le même problème mais uniquement avec l'image utilisée dans le storyboard de l'écran de lancement. Le déplacement de l'image du catalogue d'actifs en changeant son nom vers l'ensemble d'applications (par exemple, l'ancien ensemble d'images dans le catalogue d'actifs s'appelait launch_logo et l'image dans l'ensemble d'applications s'appelle launchscreen_logo.png) a résolu le problème pour nous.
la source
Je suppose que cela dépend des situations. Quand cela se produit au débogage ou au test, fonctionne sur la suppression de l'image sur l'écran de lancement. Ou désinstallez vos applications, puis redémarrez le lancement.
Mais cela va même après l'archivage, alors cela ne résout pas avec la réinitialisation et le nettoyage.
la source
Dans mon cas, je n'ai pas sélectionné AppIcon Source à partir des paramètres de l'application -> Général - > Icônes d'application et images de lancement -> Source des icônes d'application
la source
Essayez-le dans AppDelegate
la source
Solution travailler pour moi
Encore une fois, créez et installez et lancez l'application.
Prendre plaisir
la source
Assurez-vous d'avoir suivi toutes ces étapes
la source
Essayez d'ouvrir le simulateur, allez dans Matériel -> Effacer tout le contenu et les paramètres.
la source