Come faccio a costruire automaticamente la distribuzione del codice sorgente per un applicazione per iPhone con Xcode? [chiuso]

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

Domanda

Sto cercando di distribuire un'applicazione per iPhone open source e ho un paio di domande su come effettuare la distribuzione sorgente:

  1. Come posso automatizzare la creazione dell'archivio sorgente (o DiskImage) con XCode? Voglio qualcosa lungo le linee di un target di compilazione, che archivia la fonte (obiettivi di pulizia se necessario in primo luogo, ma sarebbe bello se non ha dovuto). Ho anche un progetto esterno NetBeans con uno script rubino che viene utilizzato per costruire un database SQL che le esigenze del programma (ma possono fare un archivio separato di che, se necessario).

  2. Qual è il modo migliore per identificare i file che costituiscono la 'fonte'? È semplicemente tutto ciò che è rimasto dopo la pulizia tutti gli obiettivi? Le eventuali avvertimenti con questo approccio (non abbastanza IDE fiducia per ripulire tutto il cruft che sembrano fare - è anche questo rischia di includere qualsiasi roba codesigning che non dovrebbe)?

È stato utile?

Soluzione

È possibile aggiungere uno script eseguito Costruire Fase a qualsiasi obiettivo di fare post-elaborazione del costruire. L'approccio giusto è di solito per creare un target di aggregazione che prima costruisce il vostro target di prodotto di compilazione, quindi esegue lo script in uscita.

E 'difficile individuare tutti i file "sorgente". E 'spesso tutto in $ (SRCROOT), ma se il vostro progetto è disposto nella Root -> (src) (projfiles) maniera, il $ (SRCROOT) conterrà solo il file di progetto e non tutte le fonti. Potrebbe essere necessario codificare il conoscenza di almeno il layout del progetto di livello superiore nella sceneggiatura, e mantenerlo se cambia.

Anche se è il default, probabilmente non si vuole posizionare la cartella creata nella cartella di progetto, se avete intenzione di archiviare le fonti, perché spesso si afferra le intermedie, indice di progetto, e altri effimeri. In Ottieni informazioni ispettore del progetto, pannello Generale, impostare le realizzare prodotti e directory intermedi in una certa posizione comune al di fuori della directory del progetto. Che semplificheranno il lavoro di archiviazione dei sorgenti.

E Xcode è dotato di un meccanismo di archiviazione, chiamato istantanee; si potrebbe desiderare di utilizzare tale, anche se non è semplice da automatizzare. Ma istantanee fa sapere tutto su tutte le sorgenti.

Altri suggerimenti

Impostare la variabile d'ambiente SRCROOT alla posizione che si desidera la fonte archiviata, cd alla directory del progetto ed eseguire

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

Il "installsrc" costruire copie di azione la fonte progetto per $ {} SRCROOT.

Beh, non ho avuto risposte su questo finora così ho intenzione di avvicinarsi dalla direzione opposta, utilizzando fare e la riga di comando. Ho intenzione di utilizzare la risposta a questa domanda:

costruzione Qt Xcode Progetti dalla riga di comando

... e poi usare uno standard 'make' approccio per costruire l'applicazione e l'archivio di distribuzione sorgente.

Prova un obiettivo aggregato come suggerito di chiamare il seguente script:

#! / Bin / bash -x

cd "$ BUILT_PRODUCTS_DIR"

APPFILE = "$ PROJECT_NAME.app"

IPAFILE = "$ PROJECT_NAME.ipa"

if [ "$ BUILD_STYLE" = "Distribuzione"]; poi

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

elif [ "$ BUILD_STYLE" = "betatesting"]; poi

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

fi

Err, forse questa è la risposta ad una domanda diversa però ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top