Blog e News:
Lun 19, maggio 2008
Sincronizzare la versione Svn con CFBundleVersion
Per gli utenti finali ogni applicazione ha una versione espressa da un numero. Ma per gli sviluppatori, ogni applicazione ha anche un numero detto di build, che è usato dal sistema operativo (esempio: Launch Services) e che serve per capire quale codice è utilizzato nell'applicativo.
Quando si crea un'applicazione in Cocoa questi due numeri possono essere assegnati alle chiavi: CFBundleShortVersionString e CFBundleVersion all'interno del file info.plist. Come scegliere questi numeri? E' facile trovare informazioni sul web (articoli in inglese):
Noi usiamo Subversion per gestire il nostro codice sorgente, abbiamo pensato che sarebbe stato interessante avere il numero di versione Svn sincronizzato con il CFBundleVersion. Abbiamo quindi creato uno script Python che senza sforzo alcuno sincronizza i due numeri:
#!/usr/bin/python
from AppKit import NSMutableDictionary
import os
def increaseVersion():
# reading svn version
version = os.popen('svnversion -n').read()
version = version.split(':')[-1]
if not version[-1].isdigit():
version = version[:-1]
# reading info.plist file
projectPlist = NSMutableDictionary.dictionaryWithContentsOfFile_('Info.plist')
# setting the svn version for CFBundleVersion key
projectPlist['CFBundleVersion'] = version
projectPlist.writeToFile_atomically_('Info.plist', True)
if __name__ == '__main__':
increaseVersion()
Come usare questo script in Xcode:
- Creare una nuova new build phase alla fine del vostro target’s build phases: tasto destro del mouse su Target , Add -> New build Phase -> New Run Script Build Phase.
- Doppio click sul nuovo oggetto "Run Script" e copiate/incollate lo script nel campo Script.
- Assicuratevi che il campo Shell contenga questo path: /usr/bin/python.
Quando andrete a compilate la vostra applicazione, il numero di versione Svn sarà utilizzato per la chiave CFBundleVersion.
Questo script è pensato per Mac OS X 10.5; può funzionare anche con 10.4 basta installare PyObjC.
Comments rules:
- If possible please stick to English language
- We support Gravatar, go for it!
- Use BBCode for formatting: [b], [u], [s]
- Use [i] for quoting
- Use [link www.site.com] site [/link] for links
- Use [google] or [wiki] for referencies
- HTML code is not allowed in comments
Archivio:
-
Lun 06, ottobre 2008
-
Gio 02, ottobre 2008
-
Ven 05, settembre 2008
-
Lun 07, luglio 2008
-
Sab 14, giugno 2008
-
Lun 19, maggio 2008
1 Comments:
Mickaël Menu - Mag 22, 08
Great tips,thanks you !