Xcode: ejecutar un script antes de cada compilación que modifica el código fuente directamente

Lo que hice

Tengo un script que

Lea algunos archivos de configuración para generar fragmentos de código fuente Busque archivos fuente relevantes de Objective-C y Reemplace algunas partes del código fuente con el código generado en el paso 1.

y un Makefile que tiene un archivo de marca de tiempo especial como destino de creación y los archivos de configuración como orígenes de destino:

SRC = $(shell find ../config -iname "*.txt")
STAMP = $(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME).stamp
$(STAMP): $(SRC)
    python inject.py
    touch $(STAMP)

gregué este Makefile como una "Fase de compilación de script de ejecución" en la parte superior de la pila de fases de compilación para el objetivo del proyecto.

Que pasó

a fase de compilación del script se ejecutó antes de compilar la fuente.

in embargo, dado que el script modifica el código fuente durante su ejecución, necesitaba construirdos vece para obtener la versión más reciente del producto de compilación. Esto es lo que imagino que está sucediendo:

1ª ejecución: Xcode recopila información de dependencia ---> sin cambios 1ª ejecución: Xcode ejecuta "Run Script Build Phase" ---> la fuente se cambia a espaldas de Xcode 1ª ejecución: Xcode finaliza la compilación, pensando que no es necesario actualizar nada 2da ejecución: ¡Xcode recopila información de dependencia ---> la fuente ha cambiado, necesita reconstrucción! 2da ejecución: Xcode ejecuta Run Script Build Phase "---> todo está actualizado 2da ejecución: Xcode procede a la compilación

Despues de leerocumentación de @Xcode en Build Phases, Intenté agregar un archivo fuente que se sabe que se actualiza cada vez que el script se ejecuta como el resultado de "Ejecutar fases de compilación del script", pero nada cambió. Dado que la cantidad de archivos de configuración puede variar en mi proyecto, no quiero especificar cada archivo de entrada y salida.

Pregunta

¿Cómo hago para que Xcode esté al tanto de los cambios en el archivo fuente realizados durante la "Fase de creación de script de ejecución"

Editar Agregué que coloqué la fase de compilación del script antes que las otras fases de compilación

Respuestas a la pregunta(10)

Su respuesta a la pregunta