¿Es posible instalar iOS 6 SDK en Xcode 5?


Xcode 5 tiene un panel de preferencias que permite descargar iPhone 6.1 simulator, sin embargo, no puedo encontrar un lugar donde permita la descarga de iOS 6 SDK, por lo que no es posible configurar el SDK activo para iOS 6 cuando se desarrolla con Xcode 5. ¿Hay alguna solución que permita a Xcode 5 instalar el SDK de iOS 6?

EDITAR:

Las soluciones ya no deberían ser necesarias ahora que Xcode 5 está generalmente disponible y le permite descargar versiones anteriores del SDK.

introduzca la descripción de la imagen aquí

Author: Ortwin Gentz, 2013-08-25

15 answers

EDITAR: A partir del 1 de febrero de 2014, Apple ya no aceptará aplicaciones pre-iOS7 para su envío a la Tienda de aplicaciones. Así que mientras esta técnica todavía funciona, no será útil para la mayoría de los lectores.


Sí, esto está bien. Todavía compilo con iOS 4.3 para un proyecto (ha pasado un tiempo desde que actualizamos; pero aún lo aceptaron después de que salió iOS 6), y actualmente compilo aplicaciones 10.5 con Xcode 5.

Ver ¿Cómo apuntar Xcode a un SDK antiguo para que pueda ser utilizado como un "SDK base"? para más detalles sobre cómo configurarlo. Puedes usar mi fix-xcode script para vincular todo por usted cada vez que actualice.

El único truco es conseguir los viejos SDK. Si no los tiene, generalmente necesita descargar versiones antiguas de Xcode (todavía disponibles en developer.apple.com ), abra el paquete del instalador y busque el SDK que necesita.

Los SDK se pueden encontrar dentro del paquete del instalador en:

Xcode.app / Contents / Developer / Platforms /

 202
Author: Rob Napier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:17:54

También estaba ejecutando el mismo problema cuando actualizé a xcode 5 que eliminó el sdk anterior. Pero tomé la copia del SDK anterior de otro equipo y el mismo se 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 maneras de trabajar.

1) Descomprima y pegue esta carpeta en /Aplicaciones/Xcode.app / Contents / Developer / Platforms / iPhoneOS.plataforma / Desarrollador / SDK y reinicie el xcode.

Pero esto podría ser eliminado de nuevo por Xcode si actualiza xcode.

2) Otra forma es descomprimir y pegar donde quieras e ir a /Applications/Xcode.app / Contents / Developer / Platforms / iPhoneOS.plataforma / Desarrollador / SDK y crea un enlace simbólico aquí, para que el SDK siga siendo el mismo 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 Deployment Target

No es necesario descargar el zip si solo desea cambiar el destino de implementación.

Aquí hay algunas capturas de pantalla. introduzca la descripción de la imagen aquíintroduzca la descripción de la imagen aquí

 60
Author: AvtarSingh Suchariya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-29 13:13:54

Sí, acabo de resolver el problema hoy.

  1. Encuentre el archivo SDK, como iPhoneOS6.1.sdk, en tu o en el de tu amigo directorio Xcode más antiguo.
  2. Cópielo y póngalo en el directorio Xcode 5 : /Aplicaciones/Xcode.app / Contents / Developer / Platforms / iPhoneOS.plataforma/Desarrollador/Sdk.

introduzca la descripción de la imagen aquí

Luego puede elegir el SDK como a continuación:

introduzca la descripción de la imagen aquí

Espero que esto te ayude.

 34
Author: Jason Lee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-22 12:13:32

Encuentre y descargue el SDK antiguo. Los SDK más antiguos se encuentran aquí.

He copiado el xcode.directorio de aplicaciones como Xcode_4. 6.3.app.

Ahora puede probar y depurar en ambas versiones de xcode. Tienes que ejecutarlos desde las carpetas correspondientes o crear accesos directos en tu escritorio. Cuando se compila desde la línea de comandos, se da el parámetro como iPhoneOS6.1 en lugar de iPhoneOS7.0

Esto funcionó muy bien para mí en Xcode5 e iOS.

Vaya al directorio SDK de Xcode5. Por lo general se encuentra at:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

Agregue un enlace simbólico al SDK antiguo como este:

sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk

O más exactamente desde cualquier lugar de la línea de comandos,

sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk
 20
Author: karim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-10 14:20:14

Puede descargar el SDK anterior e instalarlo en

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

Carpeta. Logout + Login solo para asegurarse de que los cambios surtan efecto y debería ver el SDK anterior en su nuevo XCode

 11
Author: unspokenblabber,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-17 19:28:20

Solo para agregar, en realidad puede descargar versiones antiguas del simulador con Xcode 5 en sí - solo tiene que ir a preferencias y las encontrará en Descargas:

introduzca la descripción de la imagen aquí

 11
Author: Smikey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-14 17:09:52
  • Descargar Xcode 4.6.x desde el Centro de Desarrollo de Apple: https://developer.apple.com/downloads/index.action
  • Cree una carpeta llamada Xcode4 dentro de la carpeta Aplicaciones y arrastre y suelte el dmg descargado allí.
  • Abre una ventana de terminal

    $sudo cp -R /Applications/Xcode4/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
    
  • Se le pedirá que introduzca una contraseña ya que está dentro de una carpeta del sistema

  • Abra Xcode 5 y ahora debería ver ambos SDK
 10
Author: autremoi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-25 16:24:56

Solo para mí la solución más fácil:

  1. Busque un SDK anterior como por ejemplo "iPhoneOS6.1 sdk" en una versión anterior de xcode, por ejemplo. Si no lo ha hecho, puede descargarlo desde Apple Developer Server en esta dirección: https://developer.apple.com/downloads/index.action?name=Xcode Cuando abres el xcode.dmg puedes encontrarlo abriendo el Xcode.aplicación (clic derecho y " mostrar contenido") y vaya a Contenidos / Desarrollador / Plataformas / iPhoneOS.plataforma/Desarrollador/SDKs/iPhoneOS6.1 sdk introduzca la descripción de la imagen aquí
  2. Copie la carpeta iPhoneOS6.X sdk y pégalo en tu xcode.app
    • haga clic derecho en su xcode.aplicación en la carpeta Aplicaciones.
    • Vaya a Contents/Developer/Platforms/iPhoneOS.plataforma / Desarrollador / SDKs /
    • Simplemente pegue aquí.

introduzca la descripción de la imagen aquí

  1. Cierra tu aplicación xcode y vuelve a abrirla.

Para probar una aplicación en iOS 6 en tu simulador: - Solo tienes que elegir iOS 6.0 en tu sheme activo. introduzca la descripción de la imagen aquí

Para construir su aplicación en iOS 6, por lo que el diseño de su aplicación será el diseño anterior en un iPhone con iOS 7 también: - Elegir iOS6. 1 en Objetivos - Base SDK

introduzca la descripción de la imagen aquí

Solo tenga en cuenta: Cuando cambie el SDK base en sus destinos, iOS 7.0 ya no estará disponible para construir en el simulador.

 10
Author: Daniel C.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-21 16:34:59

Puede hacer esto, Pero no es realmente necesario

Cómo 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

introduzca la descripción de la imagen aquí

Así que /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs Contienen diferentes sdk. (Reemplace Xcode.aplicación con el número correcto) copiar sdk anteriores a

/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

Aquí está mi carpeta después de copiar una.

introduzca la descripción de la imagen aquí

Ahora reinicia xCode y puede establecer versiones anteriores de SDK como sdk base.

¿por Qué no es necesario

Referencia a Apple Documentaion

Para usar un SDK en particular para un proyecto Xcode, realice dos selecciones en la configuración de compilación de su proyecto.

  1. Elija un destino de implementación .

    Esto identifica la primera versión del sistema operativo en la que se puede ejecutar el software.

  2. Elija un SDK base

    Su software puede utilizar funciones disponibles en Versiones del sistema operativo hasta e incluyendo la correspondiente al SDK base. De forma predeterminada , Xcode establece esto en el sistema operativo más reciente compatible con Xcode.

La regla es Usar la última como SDK base y establecer el destino de implementación en la versión mínima de la aplicación que se supone que debe ejecutarse

Por ejemplo, puede usar iOS 7 como sdk base y establecer iOS 6 como destino de implementación. Ejecutar en iOS 6 simulador para probar cómo funciona en iOS 6. Instalar simulador si no está disponible con la lista de simulador.

introduzca la descripción de la imagen aquí

Además, puede usar funciones incondicionalmente hasta iOS 6. Y condicionalmente puede admitir nuevas características de iOS 7 para nuevos dispositivos actualizados mientras admite versiones anteriores.

Esto se puede hacer usando Débilmente Vinculadas Clases ,Débilmente Vinculadas 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

Enlaces débiles

Supongamos que en Xcode se establece el destino 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 enlazaría débilmente cualquier interfaz que se introdujera en iOS7 mientras enlazaba fuertemente interfaces anteriores. Esto permitiría que su aplicación continúe ejecutándose en iOS6, pero aún así aprovechar las características más nuevas cuando estén disponibles.

 9
Author: MadNik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-02 09:13:57

Las otras respuestas aquí también son correctas, pero encuentro 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 terminal, copie los archivos SDK sobre:

cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

Finalmente, relanzar Xcode y listo.

 4
Author: nioq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-01 04:12:15

Mi aplicación se hizo la transición a Xcode 5 sin problemas porque todavía se puede compilar con el destino 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 construirlo? Seguramente hay muchas mejoras bajo el capó.

Por ejemplo, prefiero 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 subproceso completo de CPU.

 3
Author: Steven Lu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-19 04:33:08

Vincular el SDK 6.1 a 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 interfaz de usuario se toman, controladores de vista se hacen de 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:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"UIUseLegacyUI"];
[[NSUserDefaults standardUserDefaults] synchronize];

Cuidado: ¡Esta es una clave indocumentada y no se recomienda para compilaciones de App Store!

También, en mi experiencia, mientras que la prueba en el dispositivo I se encontró que solo funciona la segunda vez que inicie la aplicación a pesar de que estoy ejecutando el código bastante temprano en el lanzamiento de la aplicación, en +[AppDelegate initialize]. También hay diferencias sutiles con una versión construida usando 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í, ver rdar://15318883), esta es al menos una solución para continuar usando Xcode 5 para la depuración.

 2
Author: Ortwin Gentz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:27

Descargué XCode 4 y llevé el SDK de iOS 6.1 al XCode 5 como se describe en otras respuestas. Luego también instalé iOS 6.1 Simulator (estaba disponible en preferencias). También cambié el SDK base a iOS 6.1 en la configuración del proyecto.

Después de todas estas manipulaciones, el proyecto con sdk base 6.1 se ejecuta en modo de habilidad comp en iOS 7 Simulator.

 1
Author: OneSman7,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-25 10:07:58

A partir del 1 de febrero, Apple rechazará la aplicación creada solo para iOS6 o inferior. Aquí está también la comunicación oficial de Apple. Mejor empezar a construir para iOS7.

Para aclarar mi afirmación: Si compilas para iOS6 o versiones anteriores, Apple rechazará tu aplicación. Si construyes para iOS7 Y bajas todo está bien, esto significa:

  1. debe usar xcode5
  2. debe implementar en iOS7 al menos.

El contenido del correo electrónico de Apple es bastante claro para mí

" Asegúrese de que sus aplicaciones funcionen sin problemas con las tecnologías innovadoras en iOS 7. A partir del 1 de febrero, nuevas aplicaciones y actualizaciones de aplicaciones enviadas a la App Store debe estar construida con Xcode 5 y iOS 7 SDK."

 1
Author: Andrea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-19 07:40:31

Actualmente tengo Xcode 4.6.3 y 5.0 instalados. Usé el siguiente script bash para vincular 5.0 a los SDK en la versión anterior:

platforms_path="$1/Contents/Developer/Platforms";
if [ -d $platforms_path ]; then
    for platform in `ls $platforms_path`
    do
        sudo ln -sf $platforms_path/$platform/Developer/SDKs/* $(xcode-select --print-path)/Platforms/$platform/Developer/SDKs;
    done;
fi;

Solo tiene que suministrarlo con la ruta a la .aplicación:

./xcode.sh /Applications/Xcode-463.app
 0
Author: Wayne Burkett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-26 15:03:14