{"id":738,"date":"2015-09-07T07:56:34","date_gmt":"2015-09-07T07:56:34","guid":{"rendered":"http:\/\/phyline.com\/blog\/?p=738"},"modified":"2016-03-06T20:43:12","modified_gmt":"2016-03-06T20:43:12","slug":"configurar-informacion-de-nuestra-aplicacion-ios-en-la-seccion-settings","status":"publish","type":"post","link":"http:\/\/sophyonline.com\/blog\/2015\/09\/configurar-informacion-de-nuestra-aplicacion-ios-en-la-seccion-settings\/","title":{"rendered":"Configurar informaci\u00f3n de nuestra aplicaci\u00f3n iOS en la secci\u00f3n Settings"},"content":{"rendered":"<p><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\"><a href=\"http:\/\/sophyonline.com\/blog\/wp-content\/uploads\/2015\/08\/swift-e1456593526993.png\" rel=\"attachment wp-att-685\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-685\" src=\"http:\/\/sophyonline.com\/blog\/wp-content\/uploads\/2015\/08\/swift-e1456593526993.png\" alt=\"swift\" width=\"721\" height=\"184\" \/><\/a><\/span><\/p>\n<p><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\">Si te ha tocado trabajar en equipo o has repartido tu aplicaci\u00f3n entre varias personas para que act\u00faen como Beta Tester, probablemente te habr\u00e1s encontrado con el dilema de \u00bf<strong>qu\u00e9 versi\u00f3n de tu app tienen exactamente<\/strong>?; y aunque uses herramientas como <a href=\"https:\/\/fabric.io\/\">Fabric<\/a>\u00a0o <a href=\"http:\/\/hockeyapp.net\/features\/\">Hockey App<\/a> para poder distribuir y controlar las versiones, nada ayuda m\u00e1s que configurar en la secci\u00f3n Settings (Ajustes) del iPhone la versi\u00f3n de tu App, as\u00ed como cualquier otro tipo de caracter\u00edstica que desees implementar y que pueda verse r\u00e1pidamente.<\/span><\/p>\n<p><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\"><strong>Actualizaci\u00f3n<\/strong>: Si acabas de instalar iOS 9, no ver\u00e1s listado tus settings en la info de la aplicaci\u00f3n. Deber\u00e1s reiniciar tu dispositivo para que puede volver a verse. #EpicFailDeiOS<\/span><\/p>\n<p><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\">Para ello, deber\u00e1s realizar esta serie de pasos:<\/span><\/p>\n<p><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\">1.- Crear un <code class=\"code-voice\">Settings.bundle<\/code>\u00a0con un \u00a0<code class=\"code-voice\">Root.plist<\/code>\u00a0cuya estructura deber\u00e1 verse como la siguiente:<\/span><\/p>\n<p><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\"><a href=\"http:\/\/sophyonline.com\/blog\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-2015-09-07-a-las-9.39.42.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-739\" src=\"http:\/\/sophyonline.com\/blog\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-2015-09-07-a-las-9.39.42.png\" alt=\"Captura de pantalla 2015-09-07 a las 9.39.42\" width=\"956\" height=\"165\" \/><\/a><\/span><\/p>\n<p><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\">A\u00f1adir\u00e1s al array de\u00a0<strong>Preference Items\u00a0<\/strong>un Dictionary con los siguientes componentes:<\/span><\/p>\n<ol>\n<li style=\"text-align: left;\"><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\"><strong>Type<\/strong>:\u00a0Tipo de \u00edtem, en nuestro caso es de tipo Title<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\"><strong>Title<\/strong>: El t\u00edtulo que tendr\u00e1 nuestro \u00edtem, le colocaremos &#8220;version:&#8221;<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\"><strong>Identifier<\/strong>: Es el key que se usar\u00e1 para identificar el n\u00famero de la versi\u00f3n de nuestra app<\/span><\/li>\n<\/ol>\n<p><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\">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\u00e1sicamente es descargar y arrastrar al proyecto) aqu\u00ed:\u00a0<a href=\"https:\/\/github.com\/phynet\/SettingBundleiOSProject\">https:\/\/github.com\/phynet\/SettingBundleiOSProject<\/a><\/span><\/p>\n<p><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\">2.- Ya, para dar por finalizado el tutorial,\u00a0escribe las l\u00edneas de c\u00f3digo siguiente y haz una llamada desde:\u00a0<code class=\"code-voice\">didFinishLaunchingWithOptions<\/code>:<\/span><\/p>\n<h3><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\">Objective-C<\/span><\/h3>\n<pre class=\"theme:github lang:objc decode:true\"> (void)settingAppVersion{\r\n    NSString *appVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@\"CFBundleShortVersionString\"];\r\n    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];\r\n    [defaults setValue:appVersionString forKey:@\"appVersion\"];\r\n    [defaults synchronize];\r\n }<\/pre>\n<h3><span style=\"font-family: tahoma, arial, helvetica, sans-serif;\">Swift<\/span><\/h3>\n<pre class=\"theme:idle lang:swift decode:true \"> func settingsAppVersion(){\r\n var appVersionString: AnyObject? = NSBundle.mainBundle() .objectForInfoDictionaryKey(\"CFBundleShortVersionString\")\r\n var defaults: NSUserDefaults = NSUserDefaults .standardUserDefaults()\r\n     defaults .setValue(appVersionString, forKey: \"appVersion\")\r\n  defaults .synchronize()\r\n }<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Si te ha tocado trabajar en equipo o has repartido tu aplicaci\u00f3n entre varias personas para que act\u00faen como Beta Tester, probablemente te habr\u00e1s encontrado con el dilema de \u00bfqu\u00e9 versi\u00f3n de tu app tienen exactamente?; y aunque uses herramientas como Fabric\u00a0o Hockey App para poder distribuir y controlar las versiones, nada ayuda m\u00e1s que <a class=\"read-more\" href=\"http:\/\/sophyonline.com\/blog\/2015\/09\/configurar-informacion-de-nuestra-aplicacion-ios-en-la-seccion-settings\/\">&hellip;&nbsp;<span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-738","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/posts\/738","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/comments?post=738"}],"version-history":[{"count":18,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/posts\/738\/revisions"}],"predecessor-version":[{"id":933,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/posts\/738\/revisions\/933"}],"wp:attachment":[{"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/media?parent=738"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/categories?post=738"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/sophyonline.com\/blog\/wp-json\/wp\/v2\/tags?post=738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}