iphone - program - xcode for ipad
Ejecutar script solo para una compilaciĆ³n ''Archive'' en Xcode 4 (3)
- Agregue una "Fase de script de nueva ejecución" a las "Fases de compilación" de su proyecto
- Mueva (arrastre y suelte) su script en la posición correcta
- Compruebe el "Ejecutar script solo al instalar"
Si no lo hace, 3. el script se ejecutará todo el tiempo, pero si marca esa casilla, solo se ejecutará al archivar.
Tengo una secuencia de comandos que ejecuto utilizando osascript desde una Fase de compilación Ejecutar script en Xcode 4. Esta secuencia de comandos realiza algunas comprobaciones para intentar detectar cualquier error humano en listas y similares.
Sin embargo, solo quiero ejecutar este script cuando un desarrollador elija ''Archivar'' en lugar de ejecutarlo cada vez que compile.
¿Hay alguna forma de probar esta situación? ¿Ya sea en Shell Script o Apple Script?
En Xcode 4+, puede ejecutar este script como un script previo o posterior a la acción "Archivar". Sin embargo, los scripts previos y posteriores a la acción no se consideran parte de la construcción en sí; su resultado no es parte del registro de compilación, y un script que falla no hará que la compilación falle.
Si desea incluir este script como una parte de primera clase de la compilación, de modo que su falla ocasione que la compilación falle, entonces querrá hacer otra cosa. Cree un nuevo objetivo de "Sistema de compilación externo" y configúrelo para ejecutar su secuencia de comandos. La ruta a su script puede ser una ruta relativa, relativa a la raíz del proyecto.
Finalmente, abra su esquema de proyecto principal y en la etiqueta "Crear" agregue el nuevo objetivo de verificador y configúrelo para que solo se incluya en la acción "Archivar". Esto debería hacer que su script de comprobación se ejecute como parte de la compilación solo cuando se seleccione "Archivar", y si el script devuelve un valor distinto de cero, la compilación fallará.
Una prueba rápida en mi propio sistema no muestra ninguna diferencia en la salida del script detallado entre "Build" y "Build and Archive".
Además, no puede probar la presencia (o ausencia) del archivo, ya que solo se crea al final del proceso, cuando se han ejecutado todos los scripts.
Por lo que puedo ver, no hay una opción actual dentro de Xcode 3 para hacer esto. ¿Tal vez presentar una solicitud de mejora con Apple?
Mientras espera en Apple, la única solución que puedo ofrecer es usar xcodebuild y xcrun como parte de un script de shell de línea de comandos, donde sabría si está archivando o no. Esta no es una solución Stay-in-Xcode, pero sí tiene mucha flexibilidad.