Tengo una aplicación donde recientemente reemplacé las imágenes de lanzamiento y los íconos de la aplicación, eliminé todos los activos antiguos de todas partes del proyecto. Cuando actualizo la aplicación de la versión anterior a la nueva simplemente construyendo en Xcode, todo está bien. Sin embargo, si tengo instalada la versión anterior de mi aplicación, actualícela desde TestFlight, cada vez que cierre la aplicación y luego la reinicie, la imagen de inicio anterior aparece brevemente antes de mostrar la nueva imagen de inicio. De manera similar, cuando cierro la aplicación, el ícono de la aplicación anterior parpadea brevemente antes de volver a la nueva.
Abrí la aplicación usando iExplorer y noté que hay una imagen de la pantalla de inicio antigua guardada en el /Library/Caches/Shapshots
directorio (no sé cómo ni por qué llegó allí). Cuando lo elimino manualmente a través de iExplorer, deja de aparecer. Sin embargo, cuando trato de eliminarlo con código utilizando NSFileManager
métodos, recibo errores que dicen que tengo prohibido eliminar archivos en este directorio.
¿Alguien ha experimentado esto antes y tiene algún consejo?
Respuestas:
He podido obtener de forma confiable el caché de trampolín borrado para probar los cambios de la imagen de inicio haciendo esto:
La imagen se actualiza correctamente cada vez. Es una pena que necesite apagar el dispositivo para que funcione, pero al menos he podido avanzar de esta manera. Espero que esto ayude a alguien.
fuente
Springboard utiliza estos cachés para hacer que el cambio de aplicaciones sea rápido. Este no es un problema que afectará a los usuarios de producción y, en teoría, debería desaparecer la próxima vez que Springboard decida capturar su aplicación.
Dicho esto, este no es un problema que pueda solucionar. Este es un error en el código de Apple, no el tuyo.
ACTUALIZACIÓN: Parece que hay una solución que no requiere reiniciar el dispositivo.
¡Esto surtirá efecto después del segundo lanzamiento!
Una explicación completa de cómo funciona aquí: https://rambo.codes/ios/quick-tip/2019/12/09/clearing-your-apps-launch-screen-cache-on-ios.html
fuente
Para el simulador solo
Reset Contents and Settings...
fuente
@InkGolem
es verdad.
Estaba enfrentando este problema cuando cambié la pantalla de inicio, la pantalla de bienvenida y el ícono de la aplicación. Intenté todos los métodos, pero no funcionó. Finalmente, acabo de publicar mi aplicación y la descargué de la tienda de aplicaciones con el dispositivo que no usé para el desarrollo . ¡SplashScreen y el ícono de la aplicación funcionan normalmente!
fuente
Encontré una solución alternativa, ¿y si realmente quieres solucionar este problema? Apple tiene algunos mecanismos para almacenar en caché las imágenes de la pantalla de inicio que indexan por nombre de archivo de imagen.
Cuando cambia cualquier imagen en la pantalla de inicio y desea ver esos cambios en la próxima ejecución de inmediato. utilice el nombre de la nueva imagen, la imagen que cambió y enlace al nuevo archivo de imagen en storyboard o xib.
Ejecutar nuevamente, verá aparecer nuevos cambios.
fuente
Esto funcionó para mí: http://arsenkin.com/launch_screen_image_cache.html
fuente
Desinstale su aplicación, reinicie su teléfono e instale su aplicación nuevamente ... Esto realmente se solucionó en mi caso.
fuente
También enfrenté el mismo problema. Ocurre porque el simulador / dispositivo iOS almacena en caché la imagen de inicio cuando inicia la aplicación por primera vez. Agregué algunas modificaciones a la respuesta de Brian Trzupek :
fuente
Lo que funcionó para mí:
Lo que no funcionó para mí:
Nota:
fuente
Simplemente conecte su dispositivo, vaya a Xcode> Ventana> Dispositivos> Su dispositivo, ahora en aplicaciones instaladas, seleccione su aplicación, haga clic derecho y descargue el contenedor, vaya al archivo generado, haga clic derecho, Mostrar contenido del paquete, Datos de aplicación, Biblioteca, Caches, y eliminar archivos. Ahora ve a Xcode> Ventana> Dispositivos> Tu dispositivo> tu aplicación y haz clic derecho para reemplazar los contenedores.
fuente
Honestamente, no corrí el riesgo de ponerme en marcha sin estar seguro de si esto se actualizará o no.
Entonces, suponiendo que está utilizando xcassets, una solución simple es:
¡Se actualizará seguro! (Incluso probé con la aplicación ya instalada en el dispositivo). No es necesario limpiar el caché del dispositivo más o menos.
fuente
fuente
Ok, entonces descubrí el problema. En la versión anterior de mi aplicación, estábamos usando una pantalla de inicio XIB. En algún momento del desarrollo de esta nueva versión, el xib se eliminó y se reemplazó solo con imágenes de lanzamiento estáticas.
La solución es utilizar una pantalla de inicio XIB. Noté que en el momento en que usé una pantalla de inicio xib por primera vez, el archivo almacenado en el directorio de instantáneas fue reemplazado por la instantánea de xib.
fuente
Xcode 10 / iOS 12
Después de probar todas las cosas mencionadas anteriormente, tuve que eliminar la vista de imagen de LaunchScreen y reemplazarla por una nueva.
fuente
Esta es la forma más rápida que encontré para resolver este problema, aunque suena estúpido:
Haga clic derecho sobre
LaunchScreen.xib
o en su archivo de pantalla de inicio y seleccione yRemove file
luego seleccioneRemove to trash
. Esto eliminará todas las referencias del archivo y sus actualizaciones anteriores de su proyecto.Vaya a la papelera y arrastre y suelte el archivo nuevamente en su proyecto xCode (dentro
yourProjectName
).Limpiar y reconstruir.
fuente
Use este código para limpiar la caché de la pantalla de inicio:
Uso:
fuente
Tenía este problema también. Siendo un novato total, ingenuamente cambié LaunchScreen.storyboard a LaunchScreen.xib. La ejecución falló (duh), así que la cambié a .storyboard volví a ejecutar la aplicación solo para probar que no había estropeado nada más, y la pantalla anterior no apareció primero. Entonces, sea lo que sea que hice, debe haber vaciado el viejo caché.
fuente
Tuve el mismo problema, pero solo con la imagen utilizada en el guión gráfico de la pantalla de inicio. Mover la imagen del catálogo de activos cambiando su nombre al paquete de aplicaciones (por ejemplo, la imagen antigua establecida en el catálogo de activos se llamaba launch_logo, y la imagen en el paquete de aplicaciones se llama launchscreen_logo.png) nos resolvió el problema.
fuente
Supongo que esto depende de las situaciones. Cuando sucede en la depuración o prueba, funciona al eliminar la imagen en la pantalla de inicio. O desinstale sus aplicaciones, luego reinicie el inicio.
Pero va incluso después del archivo, luego no se resuelve con restablecer y limpiar.
fuente
En mi caso, no he seleccionado AppIcon Source desde la configuración de la aplicación -> General - > Iconos de aplicaciones e imágenes de inicio -> Fuente de iconos de aplicaciones
fuente
Pruébalo en AppDelegate
fuente
Solución trabaja para mí
Nuevamente compila, instala e inicia la aplicación.
Disfrutar
fuente
Asegúrate de hacer todos estos pasos
fuente
Intente abrir el simulador, vaya a Hardware -> Borrar todo el contenido y la configuración.
fuente