Xcode 5 tiene un panel de preferencias que le permite a uno descargar el simulador de iPhone 6.1, sin embargo, no puedo encontrar un lugar donde permita la descarga del SDK de iOS 6, por lo que no es posible configurar el SDK activo a iOS 6 cuando se desarrolla con Xcode 5 ¿Existe alguna solución que permita a Xcode 5 instalar iOS 6 SDK?
EDITAR:
Las soluciones alternativas ya no deberían ser necesarias ahora que Xcode 5 está generalmente disponible y le permite descargar versiones anteriores del SDK.
Respuestas:
EDITAR: a partir del 1 de febrero de 2014, Apple ya no aceptará aplicaciones anteriores a iOS7 para enviarlas a la App Store. Entonces, aunque esta técnica aún funciona, no será útil para la mayoría de los lectores.
Si, esta bien. Todavía construyo con iOS 4.3 para un proyecto (ha pasado un tiempo desde que actualizamos, pero todavía lo aceptaron después de que salió iOS 6), y actualmente construyo aplicaciones 10.5 con Xcode 5.
Consulte Cómo apuntar Xcode a un SDK antiguo para que pueda usarse como un "SDK base". para obtener detalles sobre cómo configurarlo. Puede usar mi script fix-xcode para vincular todo por usted cada vez que actualice.
El único truco es obtener los viejos SDK. Si no los tiene, generalmente necesita descargar versiones antiguas de Xcode (aún disponibles en developer.apple.com ), abrir el paquete del instalador y buscar el SDK que necesita.
Los SDK se pueden encontrar dentro del paquete del instalador en:
fuente
También estaba ejecutando el mismo problema cuando actualicé a xcode 5, eliminó el sdk anterior. Pero tomé la copia del SDK anterior de otra computadora y la misma que puede descargar desde el siguiente enlace.
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com cuenta de prueba [email protected]/test)
Hay 2 formas de trabajar.
1) Descomprima y pegue esta carpeta en /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs y reinicie el xcode.
Pero esto podría ser eliminado nuevamente por Xcode si actualiza xcode.
2) Otra forma es descomprimir y pegar donde desee y vaya a /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs y cree un enlace simbólico aquí, para que el SDK permanezca igual incluso si Actualizas el Xcode.
Otro cambio que hice, Configuración de compilación> Arquitecturas> estándar (no 64), así que enumere todas las versiones de Destino de implementación
No es necesario descargar el zip si solo desea cambiar el objetivo de implementación.
Aquí hay algunas capturas de pantalla.
fuente
Sí, acabo de resolver el problema hoy.
Entonces puede elegir el SDK como a continuación:
Espero que esto te ayude.
fuente
Encuentra y descarga SDK antiguo. Los SDK más antiguos se encuentran aquí .
Copié el directorio xcode.app como Xcode_4.6.3.app.
Ahora puede probar y depurar en ambas versiones de xcode. Debe ejecutarlos desde las carpetas correspondientes o crear accesos directos en su escritorio. Al construir desde la línea de comando, dé el parámetro como
iPhoneOS6.1
lugar deiPhoneOS7.0
Esto funcionó muy bien para mí en Xcode5 e iOS.
Vaya al directorio SDK de Xcode5. Generalmente se encuentra en:
Agregue un enlace simbólico al SDK anterior como este:
O más exactamente desde cualquier lugar de la línea de comando,
fuente
Puede descargar el SDK anterior e instalarlo en
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
carpeta. Cerrar sesión + Iniciar sesión solo para asegurarse de que los cambios surtan efecto y debería ver el SDK anterior en su nuevo XCode
fuente
Solo para agregar, en realidad puede descargar versiones antiguas del simulador con Xcode 5 en sí mismo; solo vaya a las preferencias y las encontrará en Descargas:
fuente
Abrir una ventana de terminal
Se le pedirá que ingrese una contraseña ya que está dentro de una carpeta del sistema
fuente
Solo para mí la solución más fácil:
Para probar una aplicación en iOS 6 en su simulador: - Simplemente elija iOS 6.0 en su sheme activo.
Para construir su aplicación en iOS 6, el diseño de su aplicación será el diseño más antiguo en un iPhone con iOS 7 también: - Elija iOS6.1 en objetivos - SDK base
Solo tenga en cuenta: ¡Cuando cambie el SDK base en sus objetivos, iOS 7.0 ya no estará disponible para construir en el simulador!
fuente
Puede hacer esto , pero no es realmente necesario.
Como hacer esto
Jason Lee obtuvo la respuesta. Al instalar xCode, preferí mantener las instalaciones anteriores en lugar de reemplazarlas. Así que tengo estos en mi carpeta de instalación
Así que
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
contiene diferentes SDK. (Reemplace Xcode.app con el número correcto) copie sdks anteriores a/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Aquí está mi carpeta después de copiar una.
Ahora reinicie xCode y puede configurar versiones anteriores de sdks como sdk base.
Por qué no es necesario
Remitiendo la documentación de Apple
Para usar un SDK particular para un proyecto Xcode, haga dos selecciones en la configuración de compilación de su proyecto.
Elija un objetivo de implementación .
Esto identifica la primera versión del sistema operativo en la que se puede ejecutar su software.
Elija un SDK base
Su software puede utilizar las funciones disponibles en las versiones del sistema operativo hasta la correspondiente al SDK base. De forma predeterminada, Xcode establece esto en el sistema operativo más nuevo compatible con Xcode.
La regla es usar la versión más reciente como SDK base y establecer el objetivo de implementación en la versión mínima que se supone que debe ejecutar la aplicación
Por ejemplo, puede usar iOS 7 como SDK base y establecer iOS 6 como objetivo de implementación. Ejecute en el simulador de iOS 6 para probar cómo funciona en iOS 6. Instale el simulador si no está disponible con la lista de simuladores.
Además, puede utilizar incondicionalmente funciones hasta iOS 6. Y, condicionalmente, puede admitir nuevas funciones de iOS 7 para nuevos dispositivos actualizados mientras admite versiones anteriores.
Esto se puede hacer usando las clases débilmente enlazados , débilmente enlazados Métodos , Funciones y Símbolos
https://developer.apple.com/library/ios/documentation/developertools/conceptual/cross_development/Using/using.html#//apple_ref/doc/uid/20002000-SW3
Vinculación débil
Suponga que en Xcode establece el objetivo de implementación (versión mínima requerida) en iOS6 y el SDK de destino (versión máxima permitida) en iOS7. Durante la compilación, el compilador vincularía débilmente las interfaces que se introdujeron en iOS7 mientras vincula las interfaces anteriores. Esto permitiría que su aplicación continúe ejecutándose en iOS6 pero aún así aproveche las funciones más nuevas cuando estén disponibles.
fuente
Las otras respuestas aquí también son correctas, pero creo que los siguientes pasos son los más fáciles:
Simplemente descargue Xcode 4.6.3 desde el enlace del centro de desarrollo que dice "¿Está buscando una versión anterior de Xcode?" (actualmente apunta aquí ) y monta el dmg.
Luego, en la terminal, copie los archivos SDK sobre:
Finalmente, reinicie Xcode y listo.
fuente
Mi aplicación se cambió a Xcode 5 sin problemas porque todavía se puede construir con el Objetivo de implementación de iOS original que configuró en el proyecto (5.1 en mi caso). Si el nuevo SDK no causa algún problema insuperable, ¿por qué no compilarlo? Seguramente hay muchas mejoras debajo del capó.
Por ejemplo, preferiría usar Xcode 5 en lugar de Xcode 4.6.3. ¿Por qué? Obtendré mucha más duración de la batería porque el desplazamiento de la interfaz de usuario de las áreas de texto / código en Xcode 5 ya no mastica un hilo completo de la CPU.
fuente
Vincular el SDK 6.1 en Xcode 5 como se describe en las otras respuestas es un paso. Sin embargo, esto todavía no resuelve el problema de que se ejecutan en iOS 7 nuevos elementos de la interfaz de usuario, los controladores de vista se hacen a tamaño completo, etc.
Como se describe en esta respuesta , también es necesario cambiar la interfaz de usuario al modo heredado en iOS 7:
Cuidado: esta es una clave indocumentada y no se recomienda para las compilaciones de App Store.
Además, en mi experiencia durante las pruebas en el dispositivo, descubrí que solo funciona la segunda vez que inicio la aplicación, aunque estoy ejecutando el código bastante temprano en el inicio de la aplicación, en
+[AppDelegate initialize]
. También hay diferencias sutiles en una versión creada con Xcode 4.6. Por ejemplo, las barras de navegación transparentes se comportan de manera diferente (haciendo que la vista sea de tamaño completo).Sin embargo, dado que Xcode 4.6.3 se bloquea en Mavericks (al menos para mí, consulte rdar: // 15318883 ), esta es al menos una solución para continuar usando Xcode 5 para la depuración.
fuente
Descargué XCode 4 y llevé iOS 6.1 SDK al XCode 5 como se describe en otras respuestas. Luego también instalé iOS 6.1 Simulator (estaba disponible en las preferencias). También cambié Base SDK a iOS 6.1 en la configuración del proyecto.
Después de todas estas manipulaciones, el proyecto con 6.1 base sdk se ejecuta en modo de compilación en iOS 7 Simulator.
fuente
A partir del 1 de febrero, Apple rechazará la aplicación creada solo para iOS6 o inferior. Aquí también está la comunicación oficial de Apple. Mejor comenzar a construir para iOS7.
Para aclarar mi afirmación: si compila para iOS6 o inferior, Apple rechazará su aplicación. Si compila para iOS7 Y baja todo está bien, esto significa:
El contenido del correo electrónico de Apple es bastante claro para mí.
fuente
Actualmente tengo Xcode 4.6.3 y 5.0 instalado. Utilicé el siguiente script bash para vincular 5.0 a los SDK en la versión anterior:
Solo necesita proporcionarle la ruta al .app:
fuente
Xcode5-DP6
que pude recuperar 7.0.x, pero este es un buen recordatorio para hacer una copia de seguridad de los directorios del SDK (o cambiar el nombre de la aplicación por completo) antes de actualizar o instalar la última versión de Xcode.