Como faço para automatizar a construção da distribuição do código fonte para um aplicativo para iPhone com o Xcode? [fechadas]

StackOverflow https://stackoverflow.com/questions/376103

Pergunta

Eu estou olhando para distribuir um aplicativo para iPhone de código aberto e eu tenho algumas perguntas sobre como fazer a distribuição fonte:

  1. Como posso automatizar a criação do arquivo fonte (ou DiskImage) com o Xcode? Eu quero algo ao longo das linhas de um destino de compilação que os arquivos da fonte (limpeza alvos primeiro, se necessário, mas seria bom se ele não tem que). Eu também tenho um netbeans externos projeto com um script Ruby que é usado para construir um banco de dados SQL que as necessidades do programa (mas pode fazer um arquivo separado de que, se necessário).

  2. Qual é a melhor maneira de identificar os arquivos que constituem a 'fonte'? É simplesmente qualquer coisa que resta após a limpeza todos os alvos? Quaisquer ressalvas com essa abordagem (não completamente IDEs de confiança para limpar todo o cruft que parece fazer - também esta sujeita a incluir qualquer material codesigning que não deveria)?

Foi útil?

Solução

Você pode adicionar um Run script de construção Fase de qualquer alvo para fazer pós-processamento da compilação. A abordagem correta é geralmente para criar uma meta agregada que primeiro constrói o seu alvo do produto de construção, em seguida, executa o script na saída.

É difícil identificar todos os arquivos "fonte". É muitas vezes, tudo em $ (SRCROOT), mas se o projeto é colocado para fora na raiz -> (src) (projfiles) forma, o $ (SRCROOT) irá conter apenas o arquivo de projeto e não quaisquer fontes. Você pode ter que codificar o conhecimento de pelo menos o layout do projeto de nível superior para o script, e mantê-lo se ele for alterado.

Mesmo que seja o padrão, você provavelmente não quer colocar a sua pasta de compilação na pasta do projeto se você estiver indo para arquivar as fontes, porque muitas vezes você vai pegar os intermediários, índice de projeto, e outras coisas efêmeras. Em Get Info inspector do seu projeto, o painel Geral, defina os produtos de construção e diretório Intermediários para algum local comum fora do diretório do projeto. Isso vai simplificar o trabalho de arquivamento de suas fontes.

E Xcode tem um built-in mecanismo de arquivamento, chamado Snapshots; você pode querer usar isso, embora não seja fácil de automatizar. Mas Snapshots faz saber tudo sobre todas as suas fontes.

Outras dicas

Defina a variável de ambiente SRCROOT para o local que você quer a fonte arquivados, cd para o diretório do projeto e executar

xcodebuild installsrc build -configuration <configname> -target <targetname>

Os "installsrc" ação de compilação copia a fonte do projeto para $ {SRCROOT}.

Bem, eu não tinha respostas sobre isso até agora, então eu vou abordá-lo de outra direção, usando marca e linha de comando. Vou usar a resposta a esta pergunta:

de construção do Qt Projetos Xcode da linha de comando

... e então usar uma abordagem padrão 'make' para construir o aplicativo e o arquivo de distribuição fonte.

Tente um alvo agregado como sugerido chamando o script a seguir:

#! / Bin / bash -x

cd "$ BUILT_PRODUCTS_DIR"

APPFILE = "$ PROJECT_NAME.app"

IPAFILE = "$ PROJECT_NAME.ipa"

if [ "$ BUILD_STYLE" = "Distribuição"]; então

rm -f "$APPFILE.zip" && zip -ry "$APPFILE.zip" "$APPFILE" && open .

elif [ "$ BUILD_STYLE" = "beta testes"]; então

rm -rf "$IPAFILE" iTunesArtwork Payload && \
cp ../../Apple/iTunesArtwork . && \
mkdir Payload && cp -Rp "$APPFILE" Payload && \
zip -r "$IPAFILE" iTunesArtwork Payload && open .

fi

Err, talvez esta seja a resposta a uma pergunta diferente embora ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top