Xcode Run script Build Phase "executar script somente ao instalar" opção

90

Há uma opção "executar script somente ao instalar" na fase de criação do script Xcode Run, não consigo encontrar documentação sobre isso. O que isso faz?

Boon
fonte

Respostas:

139

Com a opção Executar script apenas durante a instalação marcada, o script é executado apenas quando o arquivo do produto é executado.

vladof81
fonte
12
Não ao construir / instalar em um dispositivo? (Isto é: CMD-Bconstruir e executar em um dispositivo físico (não sim) com o dispositivo conectado. Isso não conta como "ao instalar" para este switch?)
Olie
6
A instalação de depuração em um dispositivo real (compilar e executar a partir do Xcode) não conta como "instalação". O script de execução só é executado durante o arquivamento (testado com Xcode 9).
seeppp
Na verdade, isso está apenas parcialmente correto. Depende da configuração DEPLOYMENT_PROCESSING. Estou baseando isso na execução do Xcode 10. Parece que, quando você arquiva, DEPLOYMENT_PROCESSING é definido como YES e substitui a configuração para a configuração. Eu confirmei isso através da construção e vendo as configurações na saída, uma vez que tenho "Mostrar variáveis ​​de ambiente no log de construção" definido como ativado.
Celular Ben
17

No Xcode Build System Guide (Xcode 3.2.x), ele diz:

Execute o script apenas durante a instalação. Executa o script apenas durante as compilações de instalação, ou seja, ao usar a opção de instalação de xcodebuild ou quando as configurações de compilação Localização de implantação (DEPLOYMENT_LOCATION) e Pós-processamento de implantação (DEPLOYMENT_POSTPROCESSING) estão ativadas.

Ericg
fonte
Quando você precisa / deseja ...? Eu sugeriria a leitura da documentação em DEPLOYMENT_LOCATION, DEPLOYMENT_POSTPROCESSING e TARGET_BUILD_DIR.
ericg
1
Leia, mas para que situações as pessoas os usam?
Boon
15
Re: quando você gostaria de usar isto: Eu uso este sinalizador em scripts que incrementam o número de compilação, de modo que só aconteça em compilações que eu arquivar para enviar aos testadores beta (e não sempre que executo o aplicativo)
Wayne
1
Ou ao fazer upload de arquivos de símbolo para firebase ou crashlytics. Não há necessidade de fazer upload em cada compilação de depuração.
seeppp
Na verdade, o Fabric diz que os arquivos de símbolo devem ser carregados a cada construção. Há uma maneira melhor de configurar o upload do dSYM. support.crashlytics.com/knowledgebase/articles/…
Nik Kov