2011-09-26 15 views
10

Me gustaría agregar algunos archivos a la fase de compilación de Compile Sources usando un script en XCode, que se extrae de algunas referencias de carpetas. Hasta ahora no he podido encontrar mucha documentación.Tutorial o guía para crear secuencias de comandos XCode Build Phases

  1. ¿Dónde está la documentación general (o un buen tutorial) para crear scripts de las fases de compilación de XCode?
  2. ¿Cómo puedo agregar archivos a la fase de compilación de orígenes?
  3. ¿Cómo puedo descubrir información sobre el proyecto y las referencias de la carpeta dentro de él?
  4. ¿Hay alguna consideración especial si quiero crear un script en Ruby o Python vs. bash scripting?
+0

Estoy tratando de hacer lo mismo, ¿lograron obtener un script para hacer esto? Mi problema es que estoy modificando el proyecto.pbxproj durante la construcción, por lo que Xcode no actualiza los orígenes de compilación durante la misma compilación, solo para la próxima compilación. –

Respuesta

20

Para añadir archivos a la fase de construcción Compile Sources usando un script, tendrá que manipular el archivo de su proyecto project.pbxproj mediante programación.

En general, esto se logrará analizando el archivo project.pbxproj en una estructura de datos en memoria, manipulando esa estructura de datos a través de una interfaz programática y luego escribiendo la estructura de datos en un nuevo archivo project.pbxproj.

Hay varios proyectos por ahí que podrían ayudar a hacer esto, no he probado ninguno de ellos:

Y aquí hay una serie de publicaciones en el blog con gran información general sobre los contenidos y el formato de los archivos XCode project.pbxproj.

Por último, puede valer la pena señalar que para las manipulaciones muy sencillas, especialmente si no está preocupado por los cosméticos de su archivo project.pbxproj conseguir en mal estado arriba, puede seguir la sugerencia en this Stack Overflow answer para analizar el archivo project.pbxproj en la línea de comandos como sigue:

plutil -convert xml1 -o - myproj.xcodeproj/project.pbxproj

Happy parsing!

+0

Aunque es más que posible lograrlo de esta manera, sería un crimen pagar por hora para hacerlo. – ctpenrose

+0

No confíe en 'plutil' para hacer el trabajo, solo tuve casos donde produjo datos corruptos sin siquiera mostrar un mensaje de advertencia. – jcayzac

+2

Aquí hay otra API de Xcode: https://github.com/jasperblues/XcodeEditor –

Cuestiones relacionadas