Überblick
Ich werde erklären, warum dies so ist und wie das spezifische Problem "Base SDK Missing" behoben wird. Sie können nur für die Korrektur nach unten springen, obwohl ich empfehle, all dies zu lesen. Ich empfehle auch John Muchows hervorragende Einstellung zu diesem Thema.
Wenn Sie speziell an dem Xcode 3.2.4-Upgrade interessiert sind, das ein stark verwandtes Problem aufweist, sollten Sie sich hier beraten .
Ein SDK, um sie alle zu regieren
Hier ist der Deal: 4.0 ist jetzt die einzige SDK-Version, die zum Einreichen neuer oder aktualisierter Apps nur für das iPhone zugelassen ist. Dies ist direkt aus Apples iOS 4 Readiness Checklist (reg reqd):
Alle neuen Anwendungen und Updates für vorhandene Anwendungen müssen mit dem iPhone SDK 4 erstellt werden. Bitte beachten Sie, dass der App Store keine Anwendungen mehr unterstützt, die auf iOS 2.x abzielen.
Vermutlich - ich vermute hier - sollten nur iPad- und Universal-Apps das 3.2 SDK verwenden. Aus diesem Grund sind 4.0 und 3.2 Ihre einzige Wahl für SDKs.
Das ist auch der Grund, warum Ihr Projekt jetzt kaputt ist, da das SDK, dem es zuvor zugeordnet wurde, veraltet ist , gones-ville.
(Aber) 3 ist eine magische Zahl
Entspannen. Sie können weiterhin auf Geräte mit iPhone OS 3.0 (aber nicht niedriger) abzielen. Das SDK, das Sie zum Kompilieren verwenden, beschränkt die iOS-Version, auf die Sie programmieren oder die Sie unterstützen können , nicht nach unten . Sobald Sie die Dinge in Ihrem Projekt usw. gepatcht haben (siehe nächster Abschnitt), können Sie "iPhone OS Deployment Target" auf eine niedrigere iOS-Version setzen. Für eine kurze Darstellung, wie das geht, vgl. Schritt 7 im nächsten Abschnitt.
Beachten Sie, dass Sie jetzt ein schwieriges Gelände betreten. Ihr üblicher Xcode 3.2.3-Compiler erzwingt nicht länger die Einhaltung von Nur-3.0-Aufrufen und verfügt auch nicht über einen Simulator für diese. Wenn Sie 4.0-Funktionen unterstützen möchten, müssen Sie bedingten Code ausführen, um Abstürze auf 3.0-Geräten zu vermeiden. Spaß.
Sie können weiterhin eine frühere Xcode-Version oder ein SDK herunterladen (von Apple!) Und installieren (siehe hier ). Ja, Sie können mehrere Xcode-Versionen in verschiedenen Verzeichnissen installieren, dh nur eine Version in / Developer ablegen. Sie können den alten Xcode verwenden, um die Konformität Ihrer App mit einem 3.x SDK zu testen und die harte Arbeit auf einen ausgefallenen Compiler und Simulator zu übertragen. Sie können die Produkte der vorherigen SDKs jedoch nicht mehr zum Senden an den App Store verwenden.
FWIW, ich habe vor, genau diese Prüfung durchzuführen, bevor ich versende.
In welchem Zustand ist mein Zustand?
Matt Gallagher hat einen Beitrag zu Cocoa with Love über den bedingten Versionscode mit dem Titel "Tipps und Tricks für bedingten iOS3-, iOS3.2- und iOS4-Code" . Wenn Sie die bedingte Verwendung von 4.0-Funktionen planen, ist dies eine gute Empfehlung, dies zu überprüfen.
Behebung von "Base SDK Missing"
- Laden Sie Ihr Projekt
- Wählen Sie im Menü Projekt> Projekteinstellungen bearbeiten ...
- Wählen Sie unter Architektur> Basis-SDK eine der verfügbaren Geräteoptionen aus: iPhone 3.2 oder iPhone 4.0. Wenn Sie nur ein iPhone sind, ist 4.0 der richtige Weg.
- Schließen Sie das Fenster.
- Wählen Sie im Menü Projekt> Aktives Ziel bearbeiten "YourTarget".
- Wählen Sie unter Architektur> Basis-SDK eine der verfügbaren Geräte- oder Simulatoroptionen aus: iPhone 3.2 oder iPhone 4.0.
- Wenn Sie auf frühere iOS-Versionen abzielen möchten, wählen Sie im selben Fenster unter Bereitstellung> iPhone OS-Bereitstellungsziel die niedrigste Version aus, die Sie unterstützen möchten. Beachten Sie, dass die Unterstützung für 2.x-Versionen über den App Store veraltet ist. Siehe das Zitat "Bereitschaftscheckliste" oben.
Basis-SDK-Speicherort für Xcode 4 und höher
Befolgen Sie die obigen Schritte, aber klicken Sie für Schritt 2 auf Folgendes:
- Wählen Sie den Projektnavigator mithilfe des Ordnersymbols links in der Navigator-Seitenleiste aus
- Wählen Sie das Projekt aus, das sich oben in dieser Ansicht befindet.
- Die Projektkonfiguration wird im Haupteditor angezeigt. Wählen Sie oben "Build Settings" und unten den Abschnitt "Architecture".
(Diese Antwort ist eine leicht angepasste Version von Sherman Lo ‚s Antwort )
Nachtrag
Nähere Informationen zu diesem Thema finden Sie auch in der ersten Antwort auf diese Frage . Es gibt auch einige nützliche Informationen hier .
Wenn Sie Ihre Einstellungen korrigieren und weiterhin "Base SDK Missing" sehen und nicht erstellen können, laden Sie Ihr Projekt neu. Ich habe Xcode beendet, aber das Schließen und erneute Öffnen würde wahrscheinlich auch funktionieren.
quelle
Die von Clay Bridges angegebenen Links zum Herunterladen früherer Versionen von Xcode- und iPhone OS-SDKs funktionieren nicht. Das Bearbeiten dieser Links, um die erste Instanz von 'iphone' durch 'ios' zu ersetzen, funktioniert jedoch zumindest für den Snow Leopard-Link (jetzt herunterladen).
Die richtigen Links sowie Informationen zur Installation älterer iOS-SDKs in neueren Xcode-Installationen stammen aus diesem Blogeintrag von Chris Fletcher: Howto Install Iphone SDK 2.0.3.1 für Xcode 3.2 Sehr zu empfehlen!
quelle
Ich hatte das gleiche Problem auch. Ich hatte auch ein Problem bei der Verwendung mehrerer Ziele, bei denen beim Zurückschalten auf ein vorheriges Ziel xcode einige Änderungen vergessen wurden, z. B. das Wechseln von einem iOS-Ziel zu einem MacOS-Ziel.
Option / Alt Klicken Sie auf die Dropdown-Liste
enthüllte einige zusätzliche Optionen, die sehr nützlich waren.
quelle