Sto tentando di semplificare il processo di compilazione-> archivio-> invio per la pubblicazione di app iOS. Abbiamo più di 50 app mobili con un framework quasi identico, ma con diverse impostazioni grafiche e di configurazione.Creazione batch e archivio di app iOS tramite Terminal
Normalmente caricherò ciascun progetto in xcode 4.2 e build-> archive-> invierò il solito modo con la GUI xcode, ma ora ci sono più di 50 app e questo processo è molto faticoso ogni volta che inviamo un aggiornamento .
Detto questo, sto cercando di accelerare questo processo utilizzando una funzione shell. Ho fatto un sacco di ricerca e ha scoperto che xcodebuild (Si veda la risposta di Reid) dovrebbe funzionare, tuttavia l'opzione di archivio non funziona come ottengo il seguente errore:
unsupported build action 'archive'
Così ho scritto il seguente:
# $1 should be a date like: 2012-07-17
# $2 should be a time like: 10.31AM
# $mybase will be the current directory at the time the function was called
# so make sure to cd into the folder containing the xcode project folders first
function xcodeArchive {
mkdir ~/Library/Developer/Xcode/Archives/$1
mybase=$PWD
for x in `ls`
do
mkdir ~/Library/Developer/Xcode/Archives/$1/$x
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/dSYMs
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/Products
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/Products/Applications
cd $mybase/$x
xcodebuild
#read -p "Press [Enter] to continue"
cd $mybase/$x
cp $x/$x-Info.plist ~/Library/Developer/Xcode/Archives/$1/$x/Info.plist
cp -r build/Release-iphoneos/$x.app.dSYM ~/Library/Developer/Xcode/Archives/$1/$x/dSYMs/$x.app.dSYM
cp -r build/Release-iphoneos/$x.app ~/Library/Developer/Xcode/Archives/$1/$x/Products/Applications/$x.app
cd ~/Library/Developer/Xcode/Archives/$1/
mv $x $x\ $1\ $2.xcarchive
cd $mybase
done
}
export -f xcodeArchive
Inserisco questo nel mio .bash_profile e tutto funziona correttamente come mi aspetterei, tranne che non sto copiando il file "Info.plist" corretto e non riesco a capire dove copiarlo o come generarlo. Quindi ora sono bloccato.
Xcode riconoscerà gli archivi, ma li elenca sotto "Schema sconosciuto" e "Archivio senza nome" nell'organizzatore.
Qualsiasi aiuto per ora per ottenere il corretto Info.plist è molto apprezzato.
Accolgo anche raccomandazioni su come migliorare lo script e/o un modo più efficiente di compilare in batch + archiviare queste app iOS.
Nota:
non sono in grado di aggiornare al di là di Xcode 4.2, trattandosi di (se ho capito bene) OS X 10.7 e versioni successive che io non sono in grado di ottenere ancora (computer aziendale) .
Sono ancora un principiante di shell/bash, quindi mi scuso per qualsiasi brutto codice/pratica sopra.
Inoltre, questo è per la presentazione ufficiale dell'app, non per ad hoc o qualcosa del genere.
Grazie ancora per il vostro aiuto.
In effetti, quello era anche il mio punto di vista. Non ho ancora trovato una spiegazione per questo, ma la mia ipotesi è che è proprio come quel programma è stato progettato per l'esecuzione, che richiede uno schema ... ma questo non spiega perché il messaggio di errore restituito è così vago ... – mason81
@ mason81 Ciò che è particolarmente confuso mentre ti confondi, è che il comando top (l'errore) funziona bene se stai semplicemente costruendo, non tentando di archiviare quella build per l'invio del negozio. – Tal
oh questo è davvero confuso (e stranamente interessante). Non l'ho provato per scopi non di archiviazione, ma ho appena provato e hai ragione, ha funzionato bene ... Che strano! – mason81