2011-03-09 16 views
14

He actualizado a XCode 4, que viene con la versión 4.3 del SDK.cómo dirigirse a la versión 4.2 con XCode 4

Pero nos gustaría asegurarnos de que nuestra aplicación se ejecuta en dispositivos que tienen 4.2 y posteriores, no sólo 4.3.

¿Hay un ajuste en XCode que se pueden configurar de modo que no tenemos que obligar a actualizar todo el mundo por el momento?

Respuesta

26

Hay dos ajustes en la configuración del proyecto que afectan qué plataformas se apoyará: aplicación

  • Base SDK: El nombre o la ruta del SDK base que se usa durante la compilación.
  • Destino de implementación: El código se cargará en esta versión y en versiones posteriores de iOS.

El primero establece el SDK con el que establece un vínculo y el segundo establece las versiones de iOS que admitirá su aplicación. Es importante entender esta nota en la Destino de despliegue de configuración:

API Framework que no están disponibles en las versiones anteriores será débil-enlazado; el código debe comprobar la nula punteros de función o sistema específico versiones antes de llamar a las API más recientes.

Por lo tanto, si utiliza cualquier API que solo exista en 4.3, asegúrese de que esas estructuras estén débilmente vinculadas y de que su código verifique la versión de iOS antes de usar esas API.

+2

En lugar de comprobar la versión de IOS, la mayoría de las veces, es mejor para comprobar si hay punteros de función nulos, o utilizar -respondsToSelector :, etc. – Elliot

+1

No estoy seguro de por qué esto es la respuesta aceptada. El problema es que en XCode 4, no hay ninguna entrada en el cuadro desplegable para el objetivo de implementación para 4.2, solo 4.3. Además, el organizador en XCode 4 dice: "Dispositivo no compatible. Los dispositivos de tipo" iPod touch (2ª generación) "no son compatibles con esta versión de Xcode". Parece que Apple ha abandonado el desarrollo de estos dispositivos más antiguos que requerirían 4.2. –

15

Siempre debe configurar SDK de base como la última versión, la versión más bajo soportado se determina por ajuste de "destino de implementación".

Mientras destino del despliegue se establece en en/por debajo de 4.2, que debería estar bien ..

+0

+1 Gracias por explicar eso. – pokstad

+0

Estoy usando 'Xcode 4.3.3 (4E3002)' y he establecido 'Base SDK' a' Último iOS (iOS 5.1) 'y' Destino de implementación' a ** 4.2 ** sin embargo, cuando despliegue la aplicación de compilación a mi antiguo iPod con jailbreak (** Ver. 4.2.1 **) no pasa nada. Tengo el Organizador para implementar la compilación de salida en el dispositivo, dice ** info.plist especifica los requisitos de capacidad del dispositivo, que mi iPod ** no cumple. Modifiqué ** UIRequiredDeviceCapabilities ** en 'info.plist' a ** armv6 ** y ahora dice ** Esta aplicación es compatible con el tipo de CPU de este dispositivo **. ¿Alguna idea? – anonim