Configurar información de nuestra aplicación iOS en la sección Settings

swift

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:

Captura de pantalla 2015-09-07 a las 9.39.42

Añadirás al array de Preference Items un Dictionary con los siguientes componentes:

  1. Type: Tipo de ítem, en nuestro caso es de tipo Title
  2. Title: El título que tendrá nuestro ítem, le colocaremos “version:”
  3. 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()
 }
 

Sofia Swidarowicz

I'm an iOS Software Engineer mostly. Known as phynet in the internez. I'm me, full of memory failure and lovely karma.

 

Leave a Reply

Your email address will not be published. Required fields are marked *