2011-07-18 15 views
6

Actualmente tengo un gran almacén de datos .sqlite de texto de cadena larga. Es alrededor de 160MB y crecerá a cerca de 200MB cuando esté completamente hecho. Este es un conjunto de datos de "solo lectura".¿Es posible eliminar un archivo del paquete de mi aplicación iOS?

Lo que hago ahora es simplemente colocar ese archivo en mi paquete y leerlo durante el tiempo de ejecución. Sin embargo, eso significa que la aplicación requiere que descargue 160MB. No es óptimo

Una solución es descomprimir gzip ese archivo, enviar la versión comprimida en el paquete, descomprimirla en la primera ejecución y colocarla en la carpeta Documentos /. Esto significa que descargaría mucho menos, pero el tamaño total que usa la aplicación en el dispositivo es (tamaño de gzip'd + tamaño de ungzip'd) que obviamente tampoco es óptimo.

Quiero usar la solución gzip, pero después de la primera ejecución de la aplicación, quiero eliminar la versión .gz. es posible? ¿Cómo lo logro? ¿Cuál sería otra buena solución?

Respuesta

8

No se puede eliminar un archivo en el paquete. La aplicación debe estar firmada y si el paquete se modifica de alguna manera, no pasará la firma.

La única otra solución que se me ocurre es configurar un servicio web y hacer que la aplicación descargue partes de su contenido según sea necesario. Esta puede o no ser una solución viable, dependiendo de lo que su aplicación realmente esté haciendo.

0

Como dice Paul, cualquier elemento de su paquete forma parte de la firma. No puedo ver este cambio ya que es una parte fundamental de la firma de aplicaciones.

El otro enfoque clásico es comprimir los datos de su paquete, de la forma más amplia posible, para que pueda descomprimirlos cuando construya el almacenamiento de trabajo.

Cuestiones relacionadas