sto usando questo come una fase di costruzione nel mio progetto:Aggiornamento CFBundleShortVersionString in dSYM alla compilazione?
export PLISTBUDDY="/usr/libexec/PlistBuddy"
export INFO="${CODESIGNING_FOLDER_PATH}/Info.plist"
export RXREVISION=`git describe --tags | perl -pi -E "s/[^-]+\-([^-]+).*/\1/"`
export RXVERSION=`git describe --tags | perl -pi -E "s/([^-]+)\-[^-]+.*/\1/"`
$PLISTBUDDY $INFO -c "add CFBundleVersion string $RXREVISION"
$PLISTBUDDY $INFO -c "set :CFBundleVersion $RXREVISION"
$PLISTBUDDY $INFO -c "add CFBundleShortVersionString string $RXVERSION"
$PLISTBUDDY $INFO -c "set :CFBundleShortVersionString $RXVERSION"
Questo funziona perfettamente per l'aggiornamento della revisione configurazione in Info.plist dell'applicazione integrata, e non mutare il mio albero dei sorgenti.
Ho provato a inserire lo script di versione di aggiornamento sia alla fine che prima della fase di collegamento. In ogni caso, è in grado di influenzare le modifiche all'applicazione creata, ma il dSYM è costruito dall'albero dei sorgenti originale.
Questa discrepanza tra i numeri di versione tra l'app sviluppata e il dSYM creato è un problema. (HockeyApp genera un errore qui.)
Se aggiorno Info.plist nell'albero dei sorgenti, ho bisogno di gestirlo cambiando. Che mi lascia due opzioni che posso vedere:
- Metti Info.plist sotto il controllo del codice sorgente e fallo modificare direttamente dallo script. Ma questo significa che dovrò controllare le modifiche dopo ogni build.
- Ignora Info.plist e fallo modificare direttamente dallo script. Ma ci sono un sacco di altre cose in Info.plist che io do voglio sotto il controllo del codice sorgente.
Come posso aggiornare automaticamente anche la versione nel dSYM, senza dover gestire Info.plist nell'albero dei sorgenti cambiando ogni build?
Inoltre, in modo tangenziale: come si vede la versione in dSYM?
sto forse manca qualcosa, ma la soluzione banale sto pensando è la cancellazione della directory dSYM se c'è qualcosa che non va. Se stai costruendo con i simboli di debug, sarà comunque rigenerato. –
A meno che non permetta alla struttura di mutare l'albero dei sorgenti, eliminando il dSYM e ricostruendo, il dSYM verrà ricostruito con CFBundleShortVersionString errato. Vorrei che la compilazione non manipolasse alcuna fonte di un git. (Ovviamente, farò qualsiasi mutazione * I * ho bisogno di fare e check-in per farlo funzionare, solo non per build.) –
Qual è l'ordine di esecuzione delle fasi di compilazione? Quando viene eseguita la fase personalizzata? – Felix