Xcode: executando um script antes de cada compilação que modifica o código-fonte diretamente

O que eu fiz

Eu tenho um script que

Leia alguns arquivos de configuração para gerar trechos de código fonte Encontre arquivos de origem Objective-C relevantes e Substitua algumas partes do código fonte pelo código gerado na etapa 1.

e um Makefile que possui um arquivo de carimbo de data / hora especial como destino de criação e os arquivos de configuração como fontes de destino:

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

Adicionei esse Makefile como uma "Fase de criação de script de execução" na parte superior da pilha de fases de criação do destino do projet

O que aconteceu

A fase de criação do script foi executada antes da compilação do código-font

No entanto, como o script modifica o código-fonte durante sua execução, eu precisava criarduas veze para obter a versão mais recente do produto de construção. Aqui está o que eu imagino estar acontecendo:

1ª execução: o Xcode coleta informações de dependência ---> sem alterações 1ª execução: o Xcode executa a "Fase de Criação de Script de Execução" ---> a fonte é alterada nas costas do Xcode 1ª execução: o Xcode termina a compilação, pensando que nada precisa ser atualizado 2ª execução: o Xcode coleta informações de dependência ---> a fonte mudou, precisa ser reconstruída! 2ª execução: o Xcode executa a Fase de criação do script de execução "---> tudo está atualizadoª execução: o Xcode prossegue para a compilaç

Depois de lerocumentação do @Xcode sobre Fases de Compilação, Tentei adicionar um arquivo de origem que é conhecido por ser atualizado toda vez que o script é executado como o resultado de "Executar fases de criação de script", mas nada mudou. Como o número de arquivos de configuração pode variar no meu projeto, não quero especificar todos os arquivos de entrada e saíd

Questão

Como informar o Xcode sobre as alterações no arquivo de origem feitas durante a "Fase de Criação de Script de Execução"

EditarAdicionado que eu coloquei a fase de criação do script antes das outras fases da criação

questionAnswers(10)

yourAnswerToTheQuestion