2010-09-19 28 views
18

Tengo instaladas varias versiones de Xcode. Puedo construir mi proyecto contra versiones anteriores de iOS lanzando el viejo Xcode. Pero, ¿cómo podría usar versiones más nuevas de Xcode para compilar contra versiones anteriores de iOS?¿Cómo compilar contra versiones anteriores de iOS con las últimas descargas de Xcode?

En la configuración del proyecto, hay un menú desplegable Base SDK. Solo ofrece la última versión de iOS para su selección.

Bajo/desarrollador/Plataformas/hay una carpeta que contiene este iOS.platform:

SDKs/ 
    iPhoneOS3.2.sdk 
    iPhoneOS4.1.sdk 

Y, por último, hay una carpeta llamada DeviceSupport interesante, que contiene un montón de versiones que van de 3,0 a 4.1!

Debe haber una forma de copiar archivos SDK/DeviceSupport del antiguo Xcode al nuevo Xcode y hacer funcionar los antiguos como iOS 4.0 o incluso 3.0. ¿Cómo?

+0

Aquí hay un hilo muy útil sobre esto, especialmente para los usuarios de Xcode 4 en OS X Lion: http://stackoverflow.com/questions/7459399/ios-simulator-only-list-the-latest-ios-version- how-can-i-set-previous-versions – Jan

Respuesta

21

Hacer que un destino de la aplicación que se ejecuta en varias versiones de iOS sea relativamente simple: Establezca el "SDK base" en la configuración de sus proyectos en el último número de versión de iOS cuyas características desee. Ajuste el “iPhone OS Destino de despliegue” para el número de versión más antigua de iOS que va a apoyar

tendrá que instalar versiones anteriores de Xcode ya que el nuevo simulador sólo apoyará las nuevas versiones de iOS

http://developer.apple.com/library/mac/#documentation/Xcode/Conceptual/XcodeCoexistence/Contents/Resources/en.lproj/Details/Details.html

+1

si tiene SDK anteriores, puede colocarlos en {Xcode_Path} /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ Copié mi antiguo (4.1, 4.2, 4.2, 5.0) SDK cuando actualicé Xcode (ya que las actualizaciones de Xcode solo tienen el SDK más reciente), y las pegué de nuevo en esta carpeta y ahora puedo simular SDK anteriores en el mismo simulador de iOS. Aún debe instalar Xcode anteriores para tener acceso a los SDK anteriores, pero una vez que tenga eso, puede eliminar el antiguo Xcode. – Daniel

+9

El enlace está muerto. – cmroanirgo

4

Esto se hizo más difícil en Xcode 3.2.5 (iOS 4.2.1) ya que los valores separados de "Base SDK" para Dispositivo y Simulador son reemplazados por un solo "iOS SDK".

Consulte mi publicación en XCode/Simulator: How to run older iOS version? para obtener detalles sobre cómo acceder a versiones antiguas de Simulator SDK en este último Xcode.

0

Creo que siempre debe compilar con el SDK más reciente y simplemente establecer el destino de despliegue en la versión adecuada. Para garantizar que su aplicación se ejecute correctamente, compruebe todo cuidadosamente en todas las versiones y, además, consulte la documentación si las API que está utilizando han cambiado/eliminado/han quedado obsoletas en las diferentes versiones del SDK.

+4

Vale la pena construir en comparación con SDK anteriores para detectar los casos en los que ha utilizado una llamada API más reciente que no existe en un SDK anterior. Se convierten en errores de tiempo de compilación en lugar de excepciones de tiempo de ejecución, mucho más fáciles de depurar. – SteveCaine

Cuestiones relacionadas