2011-02-09 15 views
11

Abbiamo un progetto XCode che è stato inizialmente creato come app universale, e poi sulla strada abbiamo cambiato idea per avere le due app nel stesso binario, quindi abbiamo creato due obiettivi.Un progetto XCode, due target, due app (iPhone/iPad) non universali

  1. Il primo è chiamato: AppName ed è per iPhone: l'SDK di base è 4.2 e l'obiettivo di distribuzione è 3.1.3. Il dispositivo mirato è iPhone.
  2. Il secondo è chiamato: AppNameHD ed è per iPad: l'SDK di base è 3.2 e il dispositivo di destinazione è iPad.

Sono ormai poche settimane che stiamo costruendo facilmente per ciascuna di queste piattaforme e in grado di implementare sia su iPad che su iPhone.

Ora siamo pronti per inviare all'app store e sono preoccupato per il potenziale rifiuto del codice. Vogliamo inviare l'app per iPad solo per ora, ma ho guardato in giro non c'è in nessun luogo nel sito di itunesconnect posso specificare il dispositivo di destinazione, e come il progetto è stato strutturato in primo luogo per essere un'app universale. Mi chiedo come determinano su quale dispositivo testare il binario.

Ulteriori informazioni sull'architettura: Stiamo utilizzando il file info.plist generato per impostazione predefinita per entrambi i target. Dovremmo avere un info.plist separato per ciascun target? quali differenze dovrebbero essere presenti tra i due file .plist.

Qui è allegato il file info.plist che stiamo utilizzando.

Grazie per il vostro aiuto in anticipo. enter image description here

risposta

7

Prima di tutto, non c'è motivo per cui il tuo SDK di base per il solo target ipad debba essere 3.2. Infatti, dal momento che iOS 4.2 funziona su ipad, limiterai la tua base clienti non modificando l'SDK di base a 4.2. Puoi impostare il tuo SO di destinazione su iOS 3.2 per assicurarti che l'app funzioni su iOS 3.2.

Nelle impostazioni di configurazione della configurazione di destinazione, cercare "famiglia di dispositivi di destinazione", che dirà se la destinazione è "ipad", "iphone" o (per app universali) "iphone/ipad".

Ho anche eseguito la migrazione di un'app universale a due target separati: non è stato divertente. Devi controllare molto attentamente le impostazioni di compilazione e i file .plist per assicurarti che siano sani per il dispositivo di destinazione, in particolare controlla: SDK di base, target di distribuzione iOS, famiglia di dispositivi mirati e file Info.plist

+0

Grazie. Questo ha funzionato come un fascino e la mia versione per iPad è ora nel negozio. il telefono a venire. – clide313

2

Apple utilizza il tuo Info.plist per determinare il target (s) in itunesconnect.

Guardando il tuo screenshot Penso che devi solo assicurarti di non specificare NSMainNibFile ~ ipad un UISupportedInterfaceOrientations ~ ipad nel target iPhone e viceversa per il target iPad (ad esempio non includere le voci specifiche di iPhone). BTW, aprendo Info.plist in Xcode fornisce nomi molto più descrittivi per le chiavi e fornisce anche un menu a discesa per i valori consentiti.

Inoltre, prestare attenzione a UIRequiredDeviceCapabilities, ad esempio, come regola generale, includere solo una chiave nel proprio plist se è assolutamente necessaria.

4

Dovremmo avere un info.plist separato per ciascun target?

  • Sì.

Quali differenze devono essere presenti tra i due file .plist?

  • identificatore Bundle (per esempio, com.example.app per iPhone/iPod e com.example.app-hd per iPad)
  • icona (opzionale) (diverso per iPhone, iPhone @ 2x e iPad)
  • immagine Launch (opzionale) (diverso per iPhone, iPhone @ 2x e iPad)
  • (opzionale) orientamenti interfaccia supportati (nella mia esperienza, almeno 2 orientamenti per iPad)
0

per utilizzare un applicazione per iPhone a iPad, immagine lancio non è get, soluzione:

Selezionare "Non utilizzare il catalogo delle risorse" per le immagini di avvio in Impostazioni generali. Aggiungere,

Problemi correlati