2010-09-19 11 views
5

Hace unos meses, recibí un impactante correo electrónico de Apple que decía que rechazarían todas las aplicaciones que no están compiladas con iOS 4.x SDK. Ahora me pregunto si:¿Todavía es posible desarrollar dispositivos iOS anteriores?

1) ¿es esta una mala broma?

2) de lo contrario, ¿eso significa que mi aplicación solo se ejecutará en dispositivos como iPhone4, iPod touch 4 o cualquier dispositivo que tenga iOS 4.x instalado?

He descargado el último iOS SDK y solo puedo compilar contra 3.2 o 4.1, donde creo que 3.2 es solo para iPad. Ahora puedo descartar mis 6 toques de iPod con un sistema operativo anterior o tengo suerte y todavía hay una forma de codificarlos sin actualizarlos todos a 4.1.

¿Qué opinas? ¿Cuál es la verdad?

+1

Esta pregunta supone que el SDK 4.x es solo para dispositivos 4.x de orientación. Eso no es verdad. Hay una diferencia entre "SDK" y "Objetivo de despliegue". – benzado

Respuesta

7

unos meses recibí un correo electrónico impactante de Apple, diciendo que rechazarán todas las aplicaciones que no está construido contra SDK de iOS 4.x. Ahora yo pregunto si:

1) ¿es esto una mala broma?

No, pero es algo bueno.

Primero, anima a los desarrolladores a seguir usando el SDK más actualizado.

En segundo lugar, anima a los usuarios a actualizar a la última versión del firmware. (Menos errores, más estabilidad, menos agujeros de seguridad).

En tercer lugar, presenta un objetivo fijo del que debe preocuparse a la hora de enviar su aplicación. Si Apple probara cada versión de iOS, las aplicaciones tardarían una eternidad, y terminarías recibiendo todo tipo de pequeños errores en versiones específicas de firmware en dispositivos específicos. Sería una locura.

2) si no: ¿quiere decir que mi aplicación sólo se ejecutará en las mismas lates dispositivos como iPhone4, iPod touch 4, o cualquier dispositivo que tenga instalado iOS 4.x?

Puede establecer el Objetivo de despliegue en la configuración de compilación para lo que desee, pero yo recomendaría no menos de 3.1.x para cualquier aplicación. Debido a (1), la mayoría de los usuarios usan 4.x, con un pequeño porcentaje usando 3.x, y virtualmente nadie ejecutando 2.x o 1.x.

he descargado el último SDK de iOS y yo sólo se puede construir en contra de 3.2 o 4.1, donde creo que 3.2 es sólo para iPad. Ahora puedo tirar mis 6 iPod toques con OS anterior o tengo suerte y todavía hay una forma de codificar para ellos sin actualizarlos todos a 4.1.

Si tienes un iPod Touch mayores (como yo - 1 ª generación) mantenerlo alrededor (con 3.1.3) para probar sus aplicaciones. No lo tires.

+0

¿se detalla cómo establecer ese destino de despliegue? ¿Y qué significa exactamente eso? ¿Xcode me dice cuándo uso métodos que no están disponibles en iOS 3.0, por ejemplo? (Sí, tengo aquí toda la generación de iPod touch ... supongo que los desarrolladores son los mejores clientes de Apple) – openfrog

+0

Estableces el destino de implementación en la configuración de compilación del proyecto: obtén información sobre tu proyecto y haz clic en la pestaña "Generar". Especifica para el dispositivo la versión mínima de iOS que debe estar en el dispositivo, para que el dispositivo ejecute la aplicación. Xcode no te dice qué métodos están en 3.0 a menos que esos métodos estén en desuso. Debes vincular débilmente la biblioteca de UIKit y luego revisar tu código para comprobarlo y probarlo a fondo. –

3
  1. No, no es, es "la ley según Apple".
  2. No, no lo hace. Hay una configuración llamada "destino de implementación" que puede configurar iOS 3.0 o versiones posteriores. Úselo. Pero debe compilar contra el iOS 4 SDK.

La verdad es lo que Apple dice, y lo que acabo de aclarar anteriormente. :)

+0

¿Puede entrar en detalles sobre cómo establecer ese destino de despliegue? ¿Y qué significa exactamente eso? ¿Xcode me dice cuándo uso métodos que no están disponibles en iOS 3.0, por ejemplo? – openfrog

+0

La documentación del SDK le indica cuándo estuvo disponible una API, y cuándo (si ha sido) se desaprobó. 'comando-opción-doble clic' en un método para abrir la documentación en línea para ese método. Además, en la configuración de compilación para su objetivo, puede encontrar "Destino de despliegue" allí. Tiene una lista desplegable, elige una. – jer

+0

En la configuración del proyecto, configure "Base SDK" para que sea "Último", luego configure su "Destino de despliegue" para que sea lo más bajo que desee. ¡Todavía apoyo 3.0! (pero no por mucho…). –

1

Todavía puede desarrollar para dispositivos más antiguos. Solo necesita establecer el destino de implementación a la versión de iOS anterior que admita. Sin embargo, tienes que compilar contra el SDK más reciente.

Puede encontrar más información en la dirección oficial documentation. Hace

+0

"compilar contra SDK más reciente" significa configurar el SDK base a algo alto? – openfrog

0

A partir de la versión 4.5 de Xcode, el desarrollo para Arm v6 ya no es compatible. Eso significa que no se puede construir una aplicación que se ejecutará en un iPhone, iPhone 3G o iPod Touch de primera/segunda generación. Si intentas construir usando un 3G, te dará una advertencia diciendo que no es un dispositivo compatible.

Si necesita admitir esos dispositivos más antiguos, deberá usar Xcode 4.4.1. Si usa esa versión, puede seguir respaldando el iPhone OS 3 estableciendo el destino de implementación. Puede descargar older Xcode versions from Apple.

La realidad es que muy pocas personas usan el iPhone OS 3 y, a menos que tenga una muy buena razón, debería simplemente acceder al iOS 4. Check the stats para ver si realmente vale la pena.

Cuestiones relacionadas