Tengo una aplicación en la tienda de aplicaciones que utiliza Core Data para conservar gran parte de la información. La excepción es almacenar imágenes. Guardo imágenes en subdirectorios en el directorio Documentos y almaceno una referencia NSURL a esa imagen en el atributo de objeto apropiado en el almacén de datos central.Actualizaciones de la aplicación, NSURL y el Directorio de documentos
Hemos notado que, cuando una actualización llega a la tienda de aplicaciones, esas imágenes no se encuentran, y por lo tanto no se muestran, utilizando las referencias almacenadas con la versión anterior de la aplicación. Ahora, tengo la sospecha de que el problema es que, dado que estamos utilizando dispositivos de desarrollo para probar, este problema se propaga porque el Directorio en el directorio de Aplicaciones al que la aplicación dev utiliza es diferente al que está creando/usando la Tienda de aplicaciones. He notado diferencias entre el directorio de la App Store para la aplicación en Aplicaciones y el creado mientras se depuraban las versiones en Xcode. Como tal, la URL almacenada en los datos centrales apunta a la carpeta de aplicaciones incorrecta. Esto es un poco difícil de depurar, ya que no puedo descargar una versión de la aplicación anterior, una vez que la nueva versión se ha lanzado en la tienda.
Así que tengo un par de preguntas. ¿Puedo garantizar que el subdirectorio Aplicaciones en el que las personas que descargan versiones de la misma aplicación sean las mismas, haciendo que esto no sea problema para los dispositivos que no son de desarrollo?
¿Debo almacenar URL de imágenes relativas o cadenas para representar la ubicación de estos recursos, o debería estar bien con el almacenamiento de lo que termina siendo las URL absolutas?
Muchas gracias, Felipe
¡Muchas gracias! ¡Eso es justo lo que necesitaba saber! – flizit
No sabía que se creó un nuevo directorio de aplicaciones cuando iTunes estaba instalando actualizaciones: terminé teniendo enlaces simbólicos usando las rutas absolutas que se invalidaban. ¡Así que ten cuidado con este comportamiento de los desarrolladores de iOS! :) –
Ese enlace está roto. Pruebe: https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTips/PerformanceTips.html –