Voglio mostrare l'attuale git SHA di quando il mio progetto è stato creato nella mia app. Qual è un buon modo per farlo in un progetto iOS con il minimo sforzo?Aggiungi git commit SHA all'applicazione iOS
risposta
È possibile farlo in Schemi. Apri lo schema (modifica), espandi Costruisci nello schema, fai clic su Pre-Azioni, fai clic sul pulsante +, seleziona Nuova azione Script di esecuzione e scrivi uno script che ottiene SHA e modifica un file di intestazione in cui puoi inserire SHA (il modo più semplice è #define GIT_SHA @"..."
) e utilizzare GIT_SHA
nella propria app in un luogo in cui è possibile visualizzarlo.
Versione 2.17. Costruisci a85b242.
Se si desidera aggiungere una bella versioning del genere di cui sopra, basta seguire questi passaggi:
- aperto
Build Phases
in Xcode - Press
Add Build Phase
- Press
Add Run Script Build Phase
. Puoi trovarlo nel menu in alto Editor. Trascina la riga di script nella posizione dopoTarget Dependencies
. - Set Shell linea per
/bin/sh
Impostare lo script di seguito per il campo Script. Non dimenticare di modificare Sorgenti nel percorso percorso file, dove dovrebbe essere
GitVersion.h
. Per esempio:version=$(git rev-parse --verify HEAD | cut -c 1-7) curdate=$(date +"%d.%m.%y") filesource="//\n// GitVersion.h\n//\n// Created by sig on $curdate.\n//\n\n#ifndef GitVersion_h\n#define GitVersion_h\n\n#define GIT_SHA_VERSION @\"$version\"\n\n#endif" cd ${SOURCE_ROOT}/${PROJECT_NAME} echo -e "$filesource" > Sources/GitVersion.h touch Sources/GitVersion.h
Importa
GitVersion.h
file in Xcode progettoIncollare queste righe:
NSDictionary *info = [[NSBundle mainBundle] infoDictionary]; NSString *version = [info objectForKey:@"CFBundleShortVersionString"]; NSString *app_version = [NSString stringWithFormat:@"Version %@. Build %@.", version, GIT_SHA_VERSION]; NSLog(@"app_version : %@", app_version);
risposta completamente documentato con immagini e vantaggi descritti potrebbero essere trovato here.
Perché voto negativo su questo? – Boon
- 1. Come annullare un commit utilizzando SHA
- 2. Trova SHA lungo da SHA breve per git diff
- 3. git pull basato su SHA
- 4. git format-patch senza commit
- 5. Come targetizzare uno SHA di commit specifico con capistrano deploy
- 6. git commit -m vs. git commit -am
- 7. Aggiungi/commit al repository da una cartella non-git
- 8. Ottieni informazioni su un oggetto di commit SHA-1?
- 9. Rimuovi commit vuoto in git
- 10. Intellij git revert un commit
- 11. Perché Git usa SHA-1 come numeri di versione?
- 12. Sottomoduli Git: specificare uno SHA specifico?
- 13. Git: Annulla le modifiche locali; aggiungi git. + git rm?
- 14. Come hash SHA nel cacao/iOS
- 15. riordino git commit storia per data
- 16. ^M caratteri nel messaggio di commit git (git commit -v)
- 17. Combina locale Git commit in un commit per git-svn
- 18. Come ottenere file e contenuto da SHA di commit
- 19. Git: commit modifiche parziali
- 20. Git commit bash script
- 21. git: rimuovere 2nd commit
- 22. Git commit da python
- 23. Git annulla ultimo commit
- 24. Lost Last Git Commit
- 25. git commit fuso orario
- 26. delete first git commit
- 27. Git Commit Genes 'Order
- 28. git commit - formato?
- 29. git find fat commit
- 30. Bad commit to Git
La parte "scrivi un po 'di script" è la parte non banale. La tua risposta è fondamentalmente _ "come faccio a fare Xcode in fase di compilazione" _ quando la domanda era essenzialmente _ "come faccio a fare in modo che Xcode in fase di compilazione ottenga l'attuale Git SHA e lo renda accessibile al codice Objective-C/Swift" _. –