2010-05-19 10 views
7

Tengo un proyecto configurado (creo) para producir binarios universales. El SDK base se establece en 3.2 y el destino de implementación se establece en 3.1. La familia de dispositivos de destino es iPhone/iPad y la arquitectura es armv6 armv7.Creación/prueba de una aplicación universal para iPhone/iPad

tenía unas cuantas preguntas acerca de cómo esta cosa binaria universal realmente funciona:

1) Cuando quiero presentar una aplicación binaria para su revisión, qué configuración debo establecido como meta construir? Si lo configuro como "Dispositivo - 3.1" recibo una advertencia que dice "warning: building with Targeted Device Family" that includes iPad('1,2') requires building with the 3.2 or later SDK". Sin embargo, si compilo con SDK 3.2, ¿seguirá ejecutándose en iPhones con OS 3.1? ¿Cuál es la configuración correcta para el dispositivo y la arquitectura (arm6/arm7)?

2) ¿Cómo pruebo el escenario anterior (construido con SDK 3.2, pero instalado en un dispositivo que ejecuta OS 3.1)? Si compilo con SDK 3.2, cuando intento instalarlo en un teléfono con OS 3.1, aparece un error que dice que el sistema operativo del teléfono no está actualizado.

Gracias!

Respuesta

13

Nuestra primera aplicación universal acaba de ser aprobado y lanzado en la App Store de hoy, así que aquí están los ajustes que hemos utilizado con éxito:

Arquitecturas
Arquitecturas: Optimizado (ARMv7 ARMv6)
Base SDK: El dispositivo iPhone 3.2
Construir Arquitectura Sólo activo: Desactivada
Arquitecturas válidos: (vacío)

implementación
Targeted Dispositivo familia: iPhone/iPad
iPhone OS Destino de despliegue: iPhone OS 3.0
(se puede establecer esto en cualquier iPhone 3. x OS, pero queríamos apuntar a los dispositivos más antiguos posibles. Debe ser 3.0 o superior, 2.x no es válido para Universal App.)

Asegúrese de que también haya marcado estas configuraciones para el Target mismo (Proyecto-> Editar destino activo "AppName"); mis problemas iniciales al cargar en iTunes Connect se debían a que el iPhone OS Deployment Target para el Target en sí todavía estaba configurado en 2.2.1.

+0

Gracias, esto es lo que estaba buscando, ¿estableciste también el SDK base en 3.0? – Leg10n

+0

No, Base SDK es 3.2 y el objetivo de implementación de iPhone OS está configurado en 3.0 (o superior).Eso es lo que hicimos para nuestra primera aplicación universal. – hjd

+1

nota: para ejecutar la aplicación en el simulador, configure Active SDK a 3.0 a 3.1.3 y seleccione Ejecutar> Ejecutar – jrtc27

0

Por lo tanto, la clave parece ser que la configuración de "Arquitecturas" se establece en "Optimizado (arm6 arm7)", además de la configuración "Arquitecturas válidas" que se establece en "armv6 armv7".

Esto permite que se compile con el 3.2 SDK y ejecutar en un iPhone con 3.1

Los ajustes que tengo en mi pregunta, además de este cambio anterior, parece ser lo que se necesita para configurar la aplicación para la presentación como un binario universal. No lo he hecho todavía, pero estoy bastante seguro.

Corrígeme si me equivoco.

Cuestiones relacionadas