ios - for - xcode mac
¿Es posible instalar iOS 6 SDK en Xcode 5? (15)
Xcode 5 tiene un panel de preferencias que permite descargar un simulador de iPhone 6.1, 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 en iOS 6 cuando se desarrolla con Xcode 5 ¿Existe alguna solución que permita que Xcode 5 instale iOS 6 SDK?
EDITAR:
Las soluciones ya no deberían ser necesarias ahora que Xcode 5 está generalmente disponible y le permite descargar versiones anteriores del SDK.
A partir del 1 de febrero, Apple rechazará la aplicación creada solo para iOS6 o inferior. Aquí también está la communication oficial de Apple. Mejor empezar a construir para iOS7.
Para aclarar mi declaración: si compila para iOS6 o una versión inferior, Apple rechazará su aplicación. Si construyes para iOS7 Y todo está bien, esto significa:
- debes usar xcode5
- deberías desplegar en iOS7 al menos.
El contenido del correo electrónico de Apple es bastante claro para mí
"Asegúrese de que sus aplicaciones funcionen a la perfección con las tecnologías innovadoras en iOS 7. A partir del 1 de febrero, las nuevas aplicaciones y las actualizaciones de aplicaciones enviadas a la App Store deben construirse con Xcode 5 y iOS 7 SDK".
Actualmente tengo Xcode 4.6.3 y 5.0 instalado. Usé la siguiente secuencia de comandos 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 debes proporcionarle la ruta al archivo .app:
./xcode.sh /Applications/Xcode-463.app
Descargué XCode 4 y llevé el SDK de iOS 6.1 al XCode 5 como se describe en otras respuestas. Luego también instalé el simulador iOS 6.1 (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 habilidad comp en iOS 7 Simulator.
EDITAR: A partir del 1 de febrero de 2014, Apple ya no aceptará aplicaciones anteriores a iOS7 para enviarlas a App Store. Entonces, si bien esta técnica aún 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 la actualización, pero aún así lo aceptaron después de que salió iOS 6), y actualmente compilo 10.5 aplicaciones con Xcode 5.
Consulte ¿Cómo dirigir Xcode a un SDK antiguo para que pueda usarse como un "SDK base"? para más detalles sobre cómo configurarlo. Puede usar mi script fix-xcode para vincular todo por usted cada vez que realice una actualización.
El único truco es conseguir 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:
Xcode.app/Contents/Developer/Platforms/
Encuentra y descarga el SDK antiguo. Los SDK más antiguos se encuentran aquí .
He copiado el directorio xcode.app como Xcode_4.6.3.app.
Ahora puedes probar y depurar en ambas versiones de xcode. Debe ejecutarlos desde las carpetas correspondientes o crear accesos directos en su escritorio. Al iPhoneOS6.1
desde la línea de comandos, iPhoneOS6.1
el parámetro como iPhoneOS6.1
lugar de iPhoneOS7.0
Esto funcionó muy bien para mí en Xcode5 y iOS.
Accede al directorio SDK de Xcode5. Generalmente se encuentra en:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Agrega un enlace simbólico al antiguo SDK 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 en la línea de comando,
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
Las otras respuestas aquí también son correctas, pero me parece 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:
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/
Por último, relanzar Xcode y listo.
Mi aplicación se cambió a Xcode 5 sin problemas porque aún puede compilarse con el objetivo de implementación de iOS original que estableció en el proyecto (5.1 en mi caso). Si el nuevo SDK no causa algún problema insuperable, ¿por qué no construirlo usándolo? Seguramente hay muchas mejoras bajo el capó.
Por ejemplo, preferiría mucho 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 IU de las áreas de texto / código en Xcode 5 ya no mastiza un hilo de CPU completo.
Puedes 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
Sí, acabo de resolver el problema hoy.
- Busque el archivo SDK, como iPhoneOS6.1.sdk, en su directorio Xcode anterior o en el de su amigo.
- Copie y colóquelo en el directorio de Xcode 5: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs.
Entonces puedes elegir el SDK como a continuación:
Espero que esto te ayude.
Solo para agregar, puedes descargar versiones antiguas del simulador con Xcode 5, solo ve a las preferencias y las encontrarás en Descargas:
Solo para mi la solución más fácil:
- 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 del servidor de desarrolladores de Apple en esta dirección: https://developer.apple.com/downloads/index.action?name=Xcode Cuando abre xcode.dmg, puede encontrarlo abriendo Xcode.app (clic derecho y "mostrar contenido") y vaya a Contenido / Desarrollador / Plataformas / iPhoneOS.platform / Desarrollador / SDKs / iPhoneOS6.1 sdk
- Simple Copie la carpeta iPhoneOS6.X sdk y péguela en su xcode.app
- Haga clic derecho en su xcode.app en la carpeta Aplicaciones.
- Ir a Contenido / Desarrollador / Plataformas / iPhoneOS.platform / Desarrollador / SDKs /
- Sólo pega aquí.
- Cierra tu aplicación xcode y vuelve a abrirla.
Para probar una aplicación en iOS 6 en su simulador: - Simplemente elija iOS 6.0 en su esquema activo.
Para construir su aplicación en iOS 6, el diseño de su aplicación será el más antiguo en un iPhone con iOS 7 también: - Elija iOS6.1 en Objetivos - Base SDK
Solo tenga en cuenta: cuando cambie el SDK básico en sus objetivos, ¡iOS 7.0 ya no estará disponible para construir en el simulador!
También estaba ejecutando el mismo problema cuando actualicé a xcode 5 que eliminó sdk anterior. Pero tomé la copia del SDK anterior de otra computadora y la misma que puedes descargar desde el siguiente enlace.
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com test account [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 actualizas xcode.
2) Otra forma es Descomprimir y pegar donde desee y vaya a /Aplicaciones/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, Construyendo Configuración> Arquitecturas> estándar (no 64), enumere todas las versiones de Destino de Implementación
No es necesario descargar el archivo zip si solo desea cambiar el destino de la implementación.
Aquí hay algunas capturas de pantalla.
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 al ejecutarse en iOS 7 se toman nuevos elementos de la interfaz de usuario, los controladores de vista se hacen de tamaño completo, etc.
Como se describe en esta respuesta , también se requiere 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 no documentada y no se recomienda para compilaciones de la App Store.
Además, en mi experiencia mientras probaba en el dispositivo, descubrí que solo funciona la segunda vez que ejecuto la aplicación, aunque ejecuto el código bastante temprano en el inicio de la aplicación, en +[AppDelegate initialize]
. También hay diferencias sutiles a una versión construida utilizando Xcode 4.6. Por ejemplo, las barras de navegación transparentes se comportan de manera diferente (lo que hace que la vista sea de tamaño completo).
Sin embargo, como Xcode 4.6.3 se bloquea en Mavericks (al menos para mí, vea rdar://15318883 ), esta es al menos una solución para continuar usando Xcode 5 para la depuración.
Puede hacer esto , pero no es realmente necesario.
Como hacer esto
Jason Lee tiene la respuesta. Al instalar xCode, prefería 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
contienen diferentes SDK. (Reemplace Xcode.app con el número correcto) copie los sdks anteriores a
/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Aquí está mi carpeta después de que copié una.
Ahora reinicie xCode y puede establecer versiones anteriores de sdks como base sdk.
¿Por qué no es necesario?
Referir la documentación de Apple
Para usar un SDK particular para un proyecto de Xcode, haga dos selecciones en la configuración de compilación de su proyecto.
Elija un destino de despliegue .
Esto identifica la primera versión del sistema operativo en la que se puede ejecutar su software.
Elige un SDK base
Su software puede usar las funciones disponibles en las versiones del sistema operativo hasta la que corresponde al SDK básico. De forma predeterminada, Xcode establece esto en el sistema operativo más nuevo compatible con Xcode.
La regla es el uso más reciente como SDK base y establece el destino de la implementación en la versión mínima que se supone que debe ejecutar
Por ejemplo, puede usar iOS 7 como base sdk y configurar iOS 6 como destino de implementación. Ejecute 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 las características hasta iOS 6. Y, de manera condicional, puede admitir nuevas características de iOS 7 para nuevos dispositivos actualizados al mismo tiempo que admite versiones anteriores.
Esto se puede hacer usando clases débilmente vinculadas , métodos débilmente vinculados , funciones y símbolos.
Vinculación débil
Supongamos que en Xcode establece el destino de la 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 cualquier interfaz que se introdujera en iOS7 mientras que vinculaba fuertemente las interfaces anteriores. Esto permitiría que su aplicación continúe ejecutándose en iOS6, pero aún así aproveche las características más nuevas cuando estén disponibles.
- Descargue 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 de aplicaciones y arrastre y suelte el dmg descargado allí.
Abrir 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 ingrese una contraseña ya que está dentro de una carpeta del sistema
- Abra Xcode 5 y ahora debería ver ambos SDK