El simulador ios 7 no replaceá la interfaz de usuario para aplicaciones comstackdas contra ios 6.1 SDK

Nuestra aplicación ios6.1-sdk-compiled ha estado funcionando bien en iOS 6.1 iPhone 4, 4 y 5 dispositivos. Al ejecutar la aplicación en ios7 iphone 5s, la interfaz de usuario todavía se parece a ios 6 (botones negros, etc.) pero estamos bien con la mayoría, excepto que encontramos un error. Supongo que esto se debe a los cambios en la implementación de la API en ios7.

Cuando nuestra aplicación se comstack contra ios7-sdk en xcode 5, todo se desmorona. Los objects de la interfaz de usuario están desalineados, las tags no se pueden leer, etc. Por lo tanto, queremos comstackr nuestro código contra ios6.1 sdk pero ejecutarlo en ios 7.

En Xcode 5 he instalado ios 6.1 sdk copiándolo desde Xcode 4.6.3 dmg como se describe en esta publicación y actualizado Base SDK a ios 6.1 en configuraciones de compilation; sin embargo, cuando ejecuto la aplicación en ios 7 simulator, la interfaz de usuario no lo haría volver a ios 6.1. Sin embargo, se networkinguce a ios 6.1 si la aplicación se testing con un iphone físico que ejecuta ios 7.

¿Cómo puedo hacer que el simulador ios 7 retroceda con la interfaz de usuario cuando se ejecutan aplicaciones comstackdas con ios6-sdk para que podamos reproducir el error en el simulador?

Si entiendo tu problema correctamente … He tenido el mismo problema con nuestra aplicación y necesitaba mantener la interfaz iOS6.1, integrada en Xcode 5 y ejecutándose en iOS7. Nuestra interfaz también estaba desorderada, desalineada y las barras de herramientas faltaban botones. Lo arreglaremos más tarde para 7, pero no tenemos time en este momento, pero necesitamos que se ejecute en iOS7 y que esté integrado en Xcode 5 todavía.

Así que esto es lo que hice: (Me gustaría publicar algunas capturas de pantalla, pero no tengo mi Mac a la mano, obtendré más tarde si es necesario)

  • Conservé Xcode 4.6.3 instalado junto con Xcode 5.
  • Agregué el enlace simbólico del 6.1 SDK en la installation de Xcode 5. (Encontré una pregunta SO sobre eso, encontraré un enlace) O puedes instalarlo como lo hiciste tú.

(estas dos opciones siguientes pueden no ser necesarias, pero terminamos usándolas en las testings, y funciona, incluso el nuevo teléfono 5S de 64 bits)

  • En Configuración de compilation, seleccioné architectures de compilation para usar la opción estándar, no de 64 bits armv7, no escoja la opción "que incluye 64 bits".

  • mismo lugar, comstackr architecture activa solo a sí

Entonces…

  • también en Configuración de compilation, establezca Base SDK para iOS 6.1. (Creo que esta fue la key para que funcione)

  • Pestaña general del destino de la aplicación, establezca Destino de deployment en 6.1 (nuestro aún está en 5.1, por ahora)

  • En nuestros Storyboards, select File Inspector, en la sección del Generador de interfaces que seleccioné se abre en Xcode 4.6 y Comstackciones para iOS 5.1 y versiones posteriores, y verlas como iOS 6.1 y versiones anteriores. (mi reproducción automática está desmarcada, no la usamos)

Advertencia sobre la última opción para "se abre". Si selecciona "abre en Xcode 4.6", perderá la edición de Storyboard para iOS7. En mi caso, no me importa por ahora, porque quiero que se quede en 4,6 puntos de todos modos. Solo ten eso en count. Creo que puedes cambiarlo, pero no lo he probado.

Con el SDK 6.1 vinculado / instalado, debería ser capaz de seleccionar la versión de iOS deseada para usar en el simulador cuando se ejecuta en la aplicación. Lo verá en el menu desplegable Esquema activo en la barra de herramientas superior. En mi caso, puedo, por ejemplo, seleccionar iPhone Retina (4 pulgadas) y, a continuación, tengo la opción para iOS7 o 6.1. La parte interesante para mí es, con la configuration anterior, puedo ejecutar mi aplicación en el simulador y se parece a iOS6 incluso si selecciono iOS7 como el esquema activo del simulador. Incluso funcionó en el simulador de 64 bits que, en mi configuration, solo mostrará la selección de iOS7.

Al less así puedo build y trabajar en Xcode 5, distribuir ad-hoc la aplicación para usuarios de iOS7, pero mantener intactos los styles, ubicaciones y botones de iOS6. Ahora puedo dedicar más time a hacer la transición a los styles de iOS7, pero aún puedo corregir los errores y actualizar la aplicación como si fuera iOS6.1.

Espero que tenga sentido, y espero que haya respondido a su pregunta. ¡Y espero haber recordado todo lo que hice! Agregaré más si pienso en algo.

Gracias a todos por la ayuda pero hasta ahora la mejor solución que me permite reproducir el error es seguir utilizando xcode 4.6.3 e instalar el simulador ios 7 en el código xcode 4.6.3.

Lo hice instalando ambos xcode 5 y 4.6.3 uno al lado del otro (copie xcode.app en xcode4.6.3.app luego instale xcode 5 en la tienda de aplicaciones (sobreescribirá xcode.app)), luego symlink

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk

a

/Applications/Xcode4.6.3.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk

Asegúrese de que xcode no esté abierto cuando se realice esto. Si ya sobrescribió 4.6.3 a 5, puede download dmg de 4.6.3 desde https://developer.apple.com/downloads .

Entonces puse:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iOS Simulator.app

(es decir: la versión de xcode 5 de la aplicación del simulador) en mi muelle

Al probar la aplicación, tuve que iniciar manualmente el simulador desde el muelle primero y seleccionar la versión del dispositivo correspondiente (ir a Hardware -> Dispositivo -> seleccionar iphone 3.5 "/ 4" – ios6 / 7) porque xcode 4.6.3 no estaba capaz de hacer esto automáticamente (presumiblemente debido a la diferencia de versión / porque no simulicé la aplicación del simulador xcode 5 a 4.6.3)

Al iniciar, asegúrese de que 'iPhone 7.0 Simulator' esté seleccionado en el esquema xcode 4.6.3. La aplicación comstackda ios6.1-sdk luego regresa a iOS 6.1 UI cuando se ejecuta en iOS 7 y puedo reproducir mi error.

La apariencia que usted describe es, me temo, probablemente el comportamiento correcto para iOS 7. Los tamaños de contenido de la vista de tabla se calculan de manera diferente, por ejemplo (esto cambiará las posiciones de muchos elementos) y muchos otros cambios.

Si desea conservar su apariencia de iOS 6, necesitará comstackrlo bajo Xcode 4.6, no 5. Puede seguir ejecutándolo bajo iOS 7 y, de hecho, puede hacer que un dispositivo iOS 7 aparezca en desarrollo al autorizarlo en Xcode 5 y luego cambiando de nuevo a Xcode 4.6.

Sugiero que lea la Guía de transición de iOS 7 de Apple, también, para consejos sobre el layout de una interfaz de usuario compatible con iOS 7.

Intente "reiniciar el contenido y la configuration" en el simulador y asegúrese de usar el simulador y el SDK correctos para su esquema en XCode cuando compile y ejecute. Si instala el SDK de iOS 6.1 como describe, debería ver lo que a primera vista parece ser duplicates en la list de simuladores disponibles para su esquema de destino: uno de ellos le proporcionará el comportamiento deseado (muy probablemente "iOS 7.0 | iOS 7.0 SDK ", pero no siempre parece). Asegúrese de que su destino de deployment esté configurado a 6.1 o anterior también, y su SDK base a 6.1 (como describe)