11 Stimmen

Ein XCode-Projekt, zwei Ziele, zwei Apps (iPhone/iPad), keine Universal-App

Wir haben ein XCode-Projekt, das zunächst als universelle App erstellt wurde, und dann auf dem Weg änderten wir unsere Meinung über die beiden App in der gleichen Binärdatei, so dass wir zwei Ziele erstellt.

  1. Die erste wird genannt: AppName und ist für iPhone: Das Basis-SDK ist 4.2 und das Einsatzziel ist 3.1.3. Das angepeilte Gerät ist das iPhone.
  2. Die zweite wird genannt: AppNameHD und ist für das iPad: Das Basis-SDK ist 3.2 und das Zielgerät ist das iPad.

Seit ein paar Wochen sind wir in der Lage, für jede dieser Plattformen zu bauen und sowohl auf dem iPad als auch auf dem iPhone einzusetzen.

Jetzt sind wir bereit, die App im App Store einzureichen, und ich mache mir Sorgen über eine mögliche Ablehnung des Codes. Wir wollen die App vorerst nur für das iPad einreichen, aber ich habe mich umgesehen und kann nirgends auf der itunesconnect-Website das Zielgerät angeben, und da das Projekt zunächst als Universal-App strukturiert war, kann ich es nicht ändern. Ich frage mich, wie sie bestimmen, auf welchem Gerät die Binärdatei getestet werden soll.

Weitere Informationen über die Architektur: Wir verwenden die standardmäßig generierte info.plist-Datei für beide Ziele. Sollten wir eine separate info.plist für jedes der Ziele haben? welche Unterschiede sollten zwischen den beiden .plist-Dateien vorhanden sein.

Im Anhang finden Sie die aktuelle info.plist-Datei, die wir verwenden.

Vielen Dank für Ihre Hilfe im Voraus. enter image description here

7voto

Bogatyr Punkte 18985

Zunächst einmal gibt es keinen Grund, warum Ihr Basis-SDK für das ipad nur Ziel sollte 3.2 sein. In der Tat, da iOS 4.2 auf dem iPad läuft, werden Sie Ihren Kundenstamm einschränken, indem Sie das Basis-SDK nicht auf 4.2 ändern. Sie können Ihr Zielbetriebssystem auf iOS 3.2 festlegen, um sicherzustellen, dass die App auf iOS 3.2 läuft.

Suchen Sie in den Build-Einstellungen Ihrer Zielkonfiguration nach "Targeted Device Family", die angibt, ob das Ziel "ipad", "iphone" oder (für Universal-Apps) "iphone/ipad" ist oder nicht.

Ich habe auch eine universelle Anwendung auf zwei verschiedene Ziele migriert - das war kein Spaß. Sie müssen Ihre Build-Einstellungen und Ihre .plist-Dateien sehr sorgfältig überprüfen, um sicherzustellen, dass sie für das vorgesehene Zielgerät in Ordnung sind, insbesondere überprüfen Sie:Base SDK, iOS-Bereitstellungsziel, Zielgerätefamilie und Info.plist-Datei

4voto

ohho Punkte 49013

Sollten wir für jedes Ziel eine eigene info.plist haben?

  • Ja.

Welche Unterschiede sollten zwischen den beiden .plist-Dateien vorhanden sein?

  • Bündelbezeichner (z. B., com.example.app für iPhone/iPod und com.example.app-hd für iPad)
  • (optional) Symbol (unterschiedlich für iPhone, iPhone @2x und iPad)
  • (optional) Startbild (unterschiedlich für iPhone, iPhone @2x und iPad)
  • (optional) Unterstützte Ausrichtungen der Oberfläche (meiner Erfahrung nach mindestens 2 Ausrichtungen für das iPad)

2voto

loafoe Punkte 363

Apple verwendet Ihre Info.plist, um das/die Ziel(e) in itunesconnect zu bestimmen.

Wenn ich mir Ihren Screenshot ansehe, denke ich, dass Sie nur sicherstellen müssen, dass Sie die NSMainNibFile~ipad und UISupportedInterfaceOrientations~ipad im iPhone-Ziel und umgekehrt für das iPad-Ziel nicht angeben (d. h. keine iPhone-spezifischen Einträge). BTW, Öffnen der Info.plist in Xcode bietet viel mehr beschreibende Namen für die Schlüssel und bietet auch ein Dropdown für die zulässigen Werte.

Seien Sie auch vorsichtig mit UIRequiredDeviceCapabilities, d.h. nehmen Sie generell nur dann einen Schlüssel in Ihre Liste auf, wenn er unbedingt erforderlich ist.

0voto

kiran Punkte 1

Um eine IPhone-App auf dem iPad zu verwenden, ist das Startbild nicht zu bekommen, Lösung:

Wählen Sie in den allgemeinen Einstellungen die Option "Katalog der Assets nicht verwenden" für Startbilder. Hinzufügen,

  • Default@2x.png (640x960)
  • Default-568h@2x.png (640x1136)
  • Default.png (640x960) nicht verwenden (320x480)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X