Si te ha tocado trabajar en equipo o has repartido tu aplicación entre varias personas para que actúen como Beta Tester, probablemente te habrás encontrado con el dilema de ¿qué versión de tu app tienen exactamente?; y aunque uses herramientas como Fabric o Hockey App para poder distribuir y controlar las versiones, nada ayuda más que configurar en la sección Settings (Ajustes) del iPhone la versión de tu App, así como cualquier otro tipo de característica que desees implementar y que pueda verse rápidamente.
Actualización: Si acabas de instalar iOS 9, no verás listado tus settings en la info de la aplicación. Deberás reiniciar tu dispositivo para que puede volver a verse. #EpicFailDeiOS
Para ello, deberás realizar esta serie de pasos:
1.- Crear un Settings.bundle
con un Root.plist
cuya estructura deberá verse como la siguiente:
Añadirás al array de Preference Items un Dictionary con los siguientes componentes:
- Type: Tipo de ítem, en nuestro caso es de tipo Title
- Title: El título que tendrá nuestro ítem, le colocaremos “version:”
- Identifier: Es el key que se usará para identificar el número de la versión de nuestra app
P.D: Si te vuelves loc@ tratando de realizar el bundle, no desesperes puedes bajarte el que he creado yo en mi github, solo sigue las instrucciones (básicamente es descargar y arrastrar al proyecto) aquí: https://github.com/phynet/SettingBundleiOSProject
2.- Ya, para dar por finalizado el tutorial, escribe las líneas de código siguiente y haz una llamada desde: didFinishLaunchingWithOptions
:
Objective-C
(void)settingAppVersion{ NSString *appVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setValue:appVersionString forKey:@"appVersion"]; [defaults synchronize]; }
Swift
func settingsAppVersion(){ var appVersionString: AnyObject? = NSBundle.mainBundle() .objectForInfoDictionaryKey("CFBundleShortVersionString") var defaults: NSUserDefaults = NSUserDefaults .standardUserDefaults() defaults .setValue(appVersionString, forKey: "appVersion") defaults .synchronize() }