¿Mantener el directorio de la aplicación igual al compilar para iPhone Simulator?

StackOverflow https://stackoverflow.com/questions/1046893

  •  20-08-2019
  •  | 
  •  

Pregunta

Estoy creando una aplicación para iPhone, y mi aplicación copia un montón de recursos al directorio de Documentos de la aplicación en la primera instalación. Mientras desarrollo la aplicación, simplemente modifico los archivos en el directorio Documentos de la aplicación para el Simulador de iPhone para que sea más fácil probar cosas sin tener que reconstruir la aplicación.

Pero cuando reconstruyo la aplicación, el GUID de la aplicación, que se usa en el nombre del directorio de instalación, cambia, y cualquier archivo que haya abierto ahora apunta a un directorio no válido.

Entonces, en resumen, ¿hay alguna forma de forzar que el GUID de la aplicación sea constante cuando se instala en el simulador de iPhone? Esto me permitiría editar archivos en VIM y no tenerlos & "Desaparecer" cuando hago una compilación. He buscado una respuesta en StackOverflow y no he visto ninguna ... Lo más cercano fue esto:

cómo mantener el directorio de la aplicación del simulador de iPhone igual cuando se ejecuta cada vez

¡Pero no era exactamente la misma pregunta!

¡Gracias!

¿Fue útil?

Solución

Nunca encontré una manera de hacer esto usando el guid de la aplicación, pero finalmente encontré una solución. Todo lo que hice fue poner todas mis referencias al directorio de instalación de aplicaciones en una función, y cambiar esa función, así que si estoy ejecutando en el simulador, devuelve un directorio codificado en mi sistema ... De esa manera, el directorio siempre permanece igual incluso si reinstalo la aplicación, para poder editar mis archivos sin perderlos cuando realice una compilación.

+(NSString *) appDocsDir
{
#if TARGET_IPHONE_SIMULATOR

        NSString* result = @"/Users/brad/ezappdir";
#else

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                                                             NSUserDomainMask, 
                                                             YES); 
        NSString* result = [paths objectAtIndex:0];
#endif

    return result;
}

Otros consejos

La forma en que generalmente manejo esto es creando Copiar archivos o Ejecutar script Fase de compilación que se ejecuta después del proceso de compilación estándar. La fase de compilación se omitirá si no se han realizado cambios en la fuente, por lo que solo se ejecutarán las fases de compilación. Luego, asegúrese de que su editor (Photoshop / vim, etc.) esté editando los archivos originales, no los archivos en el directorio de compilación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top