iPhone SDK 4.3 App auf einem iPhone 2.x-Gerät auch mit Einsatz Ziel gesetzt bis 2,0 nicht ausgeführt

StackOverflow https://stackoverflow.com/questions/3009498

Frage

Ich weiß, über den Unterschied zwischen der Basis / aktiv SDKs und Bereitstellungsziel. Ich habe meine Basis SDK Satz bei 4,0 und die Bereitstellung Zielsatz bei 2,0. Ich benutze keine APIs Beitrag 2.x, bedingte oder auf andere Weise. Da ich auf einem 2.x-Gerät nicht debuggen kann, nachdem es den Bau, verwende ich das iPhone-Konfigurationsprogramm die App auf dem Gerät zu installieren, die es einfach gut tut. Das Problem ist, es läuft nicht! Bekomme ich nur einen leeren Bildschirm. Das Hauptfenster kommt nie auf!

Nun, bevor Sie fragen ...

  1. Ich hatte das gleiche Problem mit dem iPhone SDK 3.x. Ich habe ein Upgrade auf die 4.x gehofft, wäre es gelöst werden. Es war nicht.

  2. Ja, das Provisioning-Profil installiert ist. (Könnte die App nicht installieren, wenn es nicht.)

  3. Das gleiche kompilierte App funktioniert auf 3.x-Geräte. Das Gleiche gilt für 4.x Geräten. Nur eben nicht 2.x-Geräte.

  4. Auch hier, nein, ich bin keinen post-2.x-SDKs verwenden. Um dies zu beweisen ich eine brandneue erstellt, Fenster-basierte Anwendung aus dem ‚New Project‘ Dialog und die einzigen Änderungen hat ich die Hintergrundfarbe des Fensters war (um zu beweisen, die XIB geladen) und ich das Implementierungsziel auf 2,0 ( es ist immer noch kompiliert gegen die 4.x SDK though.) Wieder ist es läuft gut auf 3.x oder 4.x Geräten, aber nur einen schwarzer, leerer Bildschirm auf 2.x-Geräten.

Ich habe versucht, diese auf drei separaten 2.x-Geräte enthalten eine frisch restauriert. Ich habe drei verschiedene Entwickler Maschinen (MacBook Pro mit dem 3.x SDK, MacBook Pro mit dem 4.x SDK und einem Mac Pro mit der 3.x SDK.) Den gleichen Ergebnis jedes Mal.

Ich bin ratlos.

Die Tatsache, dass auch ein nicht modifiziertes Projekt nicht wirklich laufen hat mich verwirrt. Könnte es die XIB-Datei sein? Haben sie in der 3.x SDK das Format von 2.x auf neuer etwas ändern? Wenn ja, wie stelle ich es zurück zu 2.x. (Auch dies ist nur eine vollständige Vermutung.) Aber ich bin wirklich ratlos!

War es hilfreich?

Lösung 3

Stellt sich heraus, Apple hat einen Bruch Änderung vornehmen (oder genauer gesagt, eine ‚Fixierung‘ ändern), dass sie nicht auf kommentierte. Insbesondere unsere App nicht explizit einstellen das Hauptfenster sichtbar entweder über Code oder über die ‚Show beim Start‘ Option in IB. ABER ... in einer Version des SDK, die Laufzeit, nichts Set zu sehen, sondern Anzeige etwas benötigt, zeigte implizit das Fenster in der Haupt XIB-Datei. Doch das neuere (und älter) SDKs (Runtimes eigentlich) nicht dieses implizite Verhalten so, wenn unser Code nicht explizit aus dem Fenster zeigte, wir haben nur einen leeren Bildschirm einsehen.

So wir einfach die Option in IB ‚beim Start anzeigen‘ aktiviert und es funktionierte. Fertig und fertig!

Andere Tipps

Haben Sie den applicationDidFinishLaunching geprüft: Optionen: Anruf auf AppDelegate

Die Optionen:. Parameter wurde in 3.0 hinzugefügt und ist nicht in jedem meines Pre-3.0-Code, obwohl die frühere Form noch funktioniert

Das Wörterbuch auf Optionen. Verwendet, um Informationen zu Ihrer App passieren, wie etc ‚war ich mit einer URL von Safari gestartet‘

Wenn Sie auf 2.0 laufen erwarten, sollten Sie wahrscheinlich diese wieder auf den ursprünglichen ändern ‚applicationDidFinishLaunching:‘.

2.x ist für die Veröffentlichung auf den App Store völlig veraltet. Sie sollten sie in der Lage sein, auf einem Gerät zu installieren, um eine frühere Version von Xcode, aber das ist es. Mehr Informationen in meiner Community Wiki hier:

Installieren xCode 3.2.3 w / iPhone SDK 4, erhalten "Basis SDK fehlt", können keine anderen SDKs sehen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top