2011-02-09 16 views
11

Tenemos un proyecto XCode que se compiló por primera vez como una aplicación universal, y luego en el camino cambiamos de idea al tener las dos aplicaciones en el mismo binario, entonces creamos dos objetivos.Proyecto One XCode, dos aplicaciones objetivo, dos aplicaciones (iPhone/iPad) no universal

  1. El primero se llama: AppName y es para iPhone: el SDK base es 4.2 y el objetivo de despliegue es 3.1.3. El dispositivo dirigido es iPhone.
  2. El segundo se llama: AppNameHD y es para iPad: el SDK base es 3.2 y el dispositivo designado es iPad.

Han sido unas pocas semanas ahora que estamos construyendo fácilmente para cada una de esas plataformas y que podemos implementar tanto en el iPad como en el iPhone.

Ahora estamos listos para enviar a la tienda de aplicaciones y estoy preocupado por el posible rechazo del código. Por el momento, queremos enviar la aplicación solo iPad, pero he buscado en todo el sitio itunesconnect, no puedo especificar el dispositivo específico, y como el proyecto se ha estructurado primero, es una aplicación universal. Me pregunto cómo determinan en qué dispositivo probar el binario.

Más información sobre la arquitectura: Estamos utilizando el archivo info.plist generado por defecto para ambos objetivos. ¿Deberíamos tener un info.plist por separado para cada uno de los objetivos? qué diferencias deberían estar presentes entre los dos archivos .plist.

Aquí se adjunta el archivo de info.plist real que estamos utilizando.

Gracias por su ayuda con anticipación. enter image description here

Respuesta

7

En primer lugar, no hay ninguna razón por la cual su SDK base para el único objetivo del ipad debe ser 3.2. De hecho, como iOS 4.2 se ejecuta en ipad, limitará su base de clientes al no cambiar el SDK base a 4.2. Puede configurar su sistema operativo objetivo en iOS 3.2 para asegurarse de que la aplicación se ejecute en iOS 3.2.

En su configuración de configuración de destino, busque "familia de dispositivo de destino", que dirá si el destino es "ipad", "iphone" o (para aplicaciones universales) "iphone/ipad".

También migré una aplicación universal a dos objetivos separados: no fue divertido. Debes verificar cuidadosamente la configuración de compilación y tus archivos .plist para asegurarte de que están en su sano dispositivo, especialmente comprobar: SDK base, destino de implementación de iOS, familia de dispositivos de destino e archivo Info.plist

+0

Gracias. Esto funcionó como un amuleto y mi versión para iPad ahora está en la tienda. el teléfono uno por venir – clide313

2

Apple usa su Info.plist para determinar el (los) objetivo (s) en itunesconnect.

Mirando su captura de pantalla Creo que solo necesita asegurarse de no especificar el NSMainNibFile ~ ipad en UISupportedInterfaceOrientations ~ ipad en el objetivo de iPhone y viceversa para el objetivo de iPad (es decir, no incluya entradas específicas de iPhone). Por cierto, la apertura de Info.plist en Xcode proporciona nombres mucho más descriptivos para las claves y también proporciona un menú desplegable para los valores permitidos.

También tenga cuidado con UIRequiredDeviceCapabilities es decir, como regla general solo incluya una tecla en su plist si es absolutamente necesario.

4

¿Deberíamos tener un info.plist por separado para cada uno de los objetivos?

  • Sí.

¿Qué diferencias deberían existir entre los dos archivos .plist?

  • identificador de paquete (por ejemplo, com.example.app para iPhone/iPod y com.example.app-hd para iPad) icono
  • (opcional) (diferente para iPhone, iPhone @ 2x y iPad)
  • (opcional) Imagen de lanzamiento (diferente para iPhone, el iPhone y el iPAD @ 2x)
  • (opcional) soportados orientaciones de interfaz (en mi experiencia, al menos 2 orientaciones para iPad)
0

para utilizar una aplicación de iPhone en el iPad, la imagen lanzamiento no es obteniendo, solución:

Seleccione "No usar catálogo de activos" para iniciar imágenes en la configuración general. Añadir ,

Cuestiones relacionadas