Generación de una pantalla pnetworkingeterminada aleatoria en iOS

Uno de los requisitos previos dentro de xCode es configurar las imágenes 'Pnetworkingeterminado' y 'Pnetworkingeterminado @ 2x' para cuando la aplicación de iPhone se cargue.

¿Es posible tener una serie de pantallas pnetworkingeterminadas realizadas, insertadas en el proyecto en formatting png y cada vez que se carga la aplicación, elija una pantalla pnetworkingeterminada aleatoria para usar?

No puedes cambiar Default.png. Una vez que se envía la aplicación, está "en piedra". Hasta la próxima versión, eso es. La razón es simple (y la misma razón por la que no puede cambiar el ícono de aplicaciones). El package de la aplicación es de solo lectura. Se hace de solo lectura porque está firmado por usted y por apple. La modificación del contenido del package invalidaría la firma.

Puede cambiar la pantalla pnetworkingeterminada en iOS (al less después del primer inicio) configurando la propiedad UILaunchImageFile en info.plist y luego escribiendo una nueva image en la carpeta Documentos.

p.ej.

<key>UILaunchImageFile</key> <string>../Documents/NewDefault.png</string> 

luego escribe tu bienvenida aleatoria en /Documents/NewDefault.png .


Parece que tengo que ser más prescriptivo … No estoy sugiriendo que modifiques nada en tu package de aplicaciones en time de ejecución, como se ha dicho, que no puede ocurrir.

Pero debido a que la carpeta /Documents encuentra junto a la carpeta .app , puede configurar UILaunchImageFile través de una ruta relativa y luego colocar un file en la ruta especificada cuando se ejecuta la aplicación. Hemos hecho esto, y funciona, entonces antes de votar, inténtalo tú mismo.

No hay forma de cambiar la pantalla de inicio sin rebuild la aplicación. Su nombre está codificado en el pliego de información o se establece en el valor pnetworkingeterminado de "Default.png" si no se establece nada en el plist.

Dado que tanto el file de image como el file Plist están dentro del package de la aplicación que está firmado digitalmente, incluso si pudiera cambiar cualquiera de ellos (no puede, ya que es de solo lectura), la firma de su aplicación invalidaría y bloqueará los dispositivos que no estén en jail.