2009-12-14 10 views
7

Tengo un proyecto Xcode bastante complejo (SDK de iPhone), con muchos objetivos: 4 bibliotecas estáticas, pruebas de unidad, varias aplicaciones de muestra, BuildAll que ejecuta un script de shell y un Paquete que ejecuta otro script de shell El objetivo "BuildAll" crea un directorio en el proyecto con algunos subdirectorios con contenidos listos para su distribución.Ejecutar script durante Limpiar/Limpiar todo en Xcode

Cuando hago clic en "Limpiar todo", Xcode no sabe cómo limpiar mi directorio de distribución. Me gustaría. Parece que no puedo encontrar la forma de hacerlo. ¿Alguien sabe cómo?


Se siente como Limpiar y Limpiar todo realmente debe ser sólo objetivos en Xcode, y yo debería ser capaz de añadir una fase de "Ejecutar script". No es así, que yo sepa.

Por cierto, el objetivo "BuildAll" se encarga de limpiar el directorio de distribución, por lo que este no es el fin del mundo para mí. Es molesto que "Limpiar todo" en realidad no limpie todo en mi caso particular.

Respuesta

0

se puede tratar de Agregar> Nuevo objetivo ...> Shell script de destino por el control del ratón sobre un Objetivos nodo en los Grupos de & archivos.

Entonces, después de hacer doble clic en un nodo de ejecución de secuencias de comandosa configurar cualquier limpieza en escenarios utilizando $ variable de acción que pueden tener valores limpia, instalan, etc.

Y, por último, de nueva creación Shell Script Target se debe agregar al destino principal como dependencia.

+1

¿El "objetivo de script de shell" es diferente de un destino vacío con una "fase de compilación de script de shell"? Agregué Build Fhases a mis objetivos de aplicaciones y revisé la variable de entorno $ ACTION, pero parece que Xcode no ejecuta el script en absoluto. – benzado

+2

Sí, parece que los objetivos y las fases de compilación tienen flujos de trabajo diferentes cuando se está construyendo el proyecto Xcode. – Stream

+1

No funciona en absoluto con "Destino de script de shell". Necesitará un "objetivo externo", como dice el siguiente enlace: http://log.yeahrightkeller.com/post/270155578/run-script-while-cleaning-in-xcode – moala

2

Puede agregar un "Objetivo externo" que realiza la limpieza en una secuencia de comandos externa y agrega ese destino como una dependencia de uno de sus destinos de biblioteca estática. Cree el objetivo y arrástrelo debajo de uno de sus objetivos de biblioteca estática. Compruebe la acción utilizando la variable de entorno $ ACTION en el script.

+0

¿Aún está actualizado? No puedo encontrar una opción de "Objetivo externo" utilizando Xcode 6 –

+1

que carece de información ... ¿qué es esta var de env de $ ACTION? ¿Te dice en qué etapa de construcción estás corriendo? No sabía que se ejecutaran fases de construcción al limpiar ... –

Cuestiones relacionadas