Xcode 5 verfügt über einen Einstellungsbereich, in dem der iPhone 6.1-Simulator heruntergeladen werden kann. Ich kann jedoch keinen Ort finden, an dem das Herunterladen des iOS 6-SDK möglich ist. Daher kann das aktive SDK bei der Entwicklung mit Xcode 5 nicht auf iOS 6 eingestellt werden Gibt es eine Problemumgehung, mit der Xcode 5 das iOS 6 SDK installieren kann?
BEARBEITEN:
Problemumgehungen sollten jetzt nicht mehr erforderlich sein, da Xcode 5 allgemein verfügbar ist und Sie frühere Versionen des SDK herunterladen können.
Antworten:
BEARBEITEN: Ab dem 1. Februar 2014 akzeptiert Apple keine Apps vor iOS7 mehr zur Übermittlung an den App Store. Während diese Technik noch funktioniert, wird sie für die meisten Leser nicht nützlich sein.
Ja, das ist in Ordnung. Ich baue immer noch mit iOS 4.3 für ein Projekt (es ist eine Weile her, seit wir aktualisiert haben; aber sie haben es immer noch akzeptiert, nachdem iOS 6 herauskam), und ich baue derzeit 10.5-Apps mit Xcode 5.
Siehe Wie zeige ich Xcode auf ein altes SDK, damit es als "Basis-SDK" verwendet werden kann? Einzelheiten zum Einrichten. Sie können mein Fix-Xcode- Skript verwenden, um bei jedem Upgrade alles für Sie zu verknüpfen.
Der einzige Trick ist, die alten SDKs zu bekommen. Wenn Sie sie nicht haben, müssen Sie im Allgemeinen alte Versionen von Xcode herunterladen (immer noch auf developer.apple.com verfügbar ), das Installationspaket öffnen und nach dem benötigten SDK suchen.
SDKs finden Sie im Installationspaket unter:
quelle
Ich hatte auch das gleiche Problem, als ich auf xcode 5 aktualisierte und ältere SDK entfernte. Aber ich habe die Kopie des älteren SDK von einem anderen Computer genommen und das gleiche können Sie über den folgenden Link herunterladen.
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com Testkonto [email protected]/test)
Es gibt zwei Möglichkeiten, mit denen Sie arbeiten können.
1) Entpacken Sie diesen Ordner und fügen Sie ihn in /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs ein. Starten Sie den xcode neu.
Dies wird jedoch möglicherweise erneut von Xcode entfernt, wenn Sie xcode aktualisieren.
2) Eine andere Möglichkeit ist das Entpacken und Einfügen, wo Sie möchten, und gehen Sie zu /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs und erstellen Sie hier einen symbolischen Link, damit das SDK auch dann gleich bleibt Sie aktualisieren den Xcode.
Eine weitere Änderung, die ich vorgenommen habe, ist Build-Einstellung> Architekturen> Standard (nicht 64). Listen Sie daher alle Versionen von Deployment Target auf
Sie müssen die Zip-Datei nicht herunterladen, wenn Sie nur das Bereitstellungsziel ändern möchten.
Hier sind einige Screenshots.
quelle
Ja, ich habe das Problem heute gerade gelöst.
Dann können Sie das SDK wie folgt auswählen:
Hoffe das hilft dir.
quelle
Suchen und laden Sie das alte SDK herunter. Ältere SDKs finden Sie hier .
Ich habe das Verzeichnis xcode.app als Xcode_4.6.3.app kopiert.
Jetzt können Sie beide xcode-Versionen testen und debuggen. Sie müssen sie aus den entsprechenden Ordnern ausführen oder Verknüpfungen auf Ihrem Desktop erstellen. Geben Sie beim Erstellen über die Befehlszeile den Parameter als
iPhoneOS6.1
anstelle von aniPhoneOS7.0
Dies funktionierte hervorragend für mich in Xcode5 und iOS.
Gehen Sie in das SDK-Verzeichnis von Xcode5. Es befindet sich normalerweise in:
Fügen Sie dem alten SDK wie folgt einen symbolischen Link hinzu:
Oder genauer von überall in der Befehlszeile,
quelle
Sie können das ältere SDK herunterladen und in installieren
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
Ordner. Abmelden + Anmelden, um sicherzustellen, dass die Änderungen wirksam werden und das ältere SDK in Ihrem neuen XCode angezeigt wird
quelle
Zum Hinzufügen können Sie alte Versionen des Simulators mit Xcode 5 selbst herunterladen. Gehen Sie einfach zu den Einstellungen und Sie finden sie unter Downloads:
quelle
Öffnen Sie ein Terminalfenster
Sie werden aufgefordert, ein Kennwort einzugeben, da Sie sich in einem Systemordner befinden
quelle
Nur für mich die einfachste Lösung:
So testen Sie eine App in iOS 6 auf Ihrem Simulator: - Wählen Sie einfach iOS 6.0 in Ihrem aktiven Schema.
So erstellen Sie Ihre App in iOS 6, sodass das Design Ihrer App das ältere Design auf einem iPhone mit iOS 7 ist: - Wählen Sie iOS6.1 in Targets - Base SDK
Beachten Sie nur: Wenn Sie das Basis-SDK in Ihren Zielen ändern, ist iOS 7.0 nicht mehr verfügbar, um auf dem Simulator aufzubauen!
quelle
Kann das , aber nicht wirklich notwendig
Wie macht man das
Jason Lee bekam die Antwort. Bei der Installation von xCode habe ich es vorgezogen, frühere Installationen beizubehalten, anstatt sie zu ersetzen. Also habe ich diese in meinem Installationsordner
So
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
enthalten verschiedene SDKs. (Ersetzen Sie Xcode.app durch die richtige Nummer) Kopieren Sie die vorherigen SDKS nach/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Hier ist mein Ordner, nachdem ich einen kopiert habe.
Starten Sie nun xCode neu und Sie können frühere Versionen von SDKS als Basis-SDK festlegen.
Warum ist es nicht notwendig
Verweisen auf Apple Documentaion
Um ein bestimmtes SDK für ein Xcode-Projekt zu verwenden, treffen Sie in den Build-Einstellungen Ihres Projekts zwei Auswahlen.
Wählen Sie ein Bereitstellungsziel .
Dies gibt die früheste Betriebssystemversion an, auf der Ihre Software ausgeführt werden kann.
Wählen Sie ein Basis-SDK
Ihre Software kann Funktionen verwenden, die in Betriebssystemversionen bis einschließlich der dem Basis-SDK entsprechenden verfügbar sind. Standardmäßig setzt Xcode dies auf das neueste von Xcode unterstützte Betriebssystem.
Die Regel lautet "Neueste als Basis-SDK verwenden" und das Bereitstellungsziel auf die Mindestversions-App festlegen, die ausgeführt werden soll
Beispielsweise können Sie iOS 7 als Basis-SDK verwenden und iOS 6 als Bereitstellungsziel festlegen. Führen Sie den iOS 6-Simulator aus, um zu testen, wie er unter iOS 6 funktioniert. Installieren Sie den Simulator, falls nicht verfügbar, mit einer Liste der Simulatoren.
Zusätzlich können Sie bedingungslos Funktionen bis iOS 6 verwenden. Bedingt können Sie neue Funktionen von iOS 7 für neue aktualisierte Geräte unterstützen, während Sie frühere Versionen unterstützen.
Dies kann mithilfe von schwach verknüpften Klassen , schwach verknüpften Methoden , Funktionen und Symbolen erfolgen
https://developer.apple.com/library/ios/documentation/developertools/conceptual/cross_development/Using/using.html#//apple_ref/doc/uid/20002000-SW3
Schwache Verknüpfung
Angenommen, Sie setzen in Xcode das Bereitstellungsziel (minimal erforderliche Version) auf iOS6 und das Ziel-SDK (maximal zulässige Version) auf iOS7. Während der Kompilierung verknüpfte der Compiler alle in iOS7 eingeführten Schnittstellen schwach, während frühere Schnittstellen stark verknüpft wurden. Auf diese Weise kann Ihre Anwendung unter iOS6 weiter ausgeführt werden, die neueren Funktionen jedoch weiterhin nutzen, sobald sie verfügbar sind.
quelle
Die anderen Antworten hier sind ebenfalls richtig, aber ich finde die folgenden Schritte am einfachsten:
Laden Sie einfach Xcode 4.6.3 über den Link "Dev Center" herunter, auf dem "Suchen Sie nach einer älteren Version von Xcode?" (zeigt derzeit hier ) und montiere das dmg.
Kopieren Sie dann im Terminal die SDK-Dateien über:
Starten Sie Xcode neu und Sie sind fertig.
quelle
Meine App wurde nahtlos auf Xcode 5 umgestellt, da sie weiterhin mit dem ursprünglichen iOS-Bereitstellungsziel erstellt werden kann, das Sie im Projekt festgelegt haben (in meinem Fall 5.1). Wenn das neue SDK kein unüberwindbares Problem verursacht, warum nicht mit ihm bauen? Sicher gibt es viele Verbesserungen unter der Haube.
Zum Beispiel werde ich Xcode 5 anstelle von Xcode 4.6.3 bevorzugen. Warum? Ich werde viel mehr Akkulaufzeit haben, weil das Scrollen der Benutzeroberfläche von Text- / Codebereichen in Xcode 5 nicht mehr einen ganzen CPU-Thread zerkaut.
quelle
Das Verknüpfen des 6.1 SDK mit Xcode 5, wie in den anderen Antworten beschrieben, ist ein Schritt. Dies löst jedoch immer noch nicht das Problem, dass unter iOS 7 neue UI-Elemente verwendet werden, View-Controller in voller Größe erstellt werden usw.
Wie in dieser Antwort beschrieben , muss die Benutzeroberfläche unter iOS 7 auch in den Legacy-Modus geschaltet werden:
Achtung: Dies ist ein undokumentierter Schlüssel, der für App Store-Builds nicht empfohlen wird.
Außerdem habe ich beim Testen auf dem Gerät festgestellt, dass es erst beim zweiten Start der App funktioniert, obwohl ich den Code ziemlich früh beim Start der App ausführe
+[AppDelegate initialize]
. Es gibt auch subtile Unterschiede zu einer Version, die mit Xcode 4.6 erstellt wurde. Beispielsweise verhalten sich transparente Navigationsleisten anders (wodurch die Ansicht in voller Größe angezeigt wird).Da Xcode 4.6.3 jedoch auf Mavericks abstürzt (zumindest für mich, siehe rdar: // 15318883 ), ist dies zumindest eine Lösung, um Xcode 5 weiterhin zum Debuggen zu verwenden.
quelle
Ich habe XCode 4 heruntergeladen und das iOS 6.1 SDK vom XCode 5 übernommen, wie in anderen Antworten beschrieben. Dann habe ich auch iOS 6.1 Simulator installiert (es war in den Einstellungen verfügbar). Ich habe auch das Base SDK in den Projekteinstellungen auf iOS 6.1 umgestellt.
Nach all diesen Manipulationen wird das Projekt mit 6.1 Base SDK im Kompatibilitätsmodus in iOS 7 Simulator ausgeführt.
quelle
Ab dem 1. Februar lehnt Apple eine App ab, die nur für iOS6 oder niedriger erstellt wurde. Hier ist auch die offizielle Mitteilung von Apple. Beginnen Sie besser mit dem Erstellen für iOS7.
Um meine Aussage zu verdeutlichen: Wenn Sie für iOS6 oder niedriger erstellen, lehnt Apple Ihre App ab. Wenn Sie für iOS7 UND niedriger bauen, ist alles in Ordnung, dies bedeutet:
Der Inhalt der Apple-E-Mail ist mir ziemlich klar
quelle
Ich habe derzeit Xcode 4.6.3 und 5.0 installiert. Ich habe das folgende Bash-Skript verwendet, um 5.0 mit den SDKs in der alten Version zu verknüpfen:
Sie müssen nur den Pfad zur .app angeben:
quelle
Xcode5-DP6
der ich 7.0.x wiederherstellen konnte, aber dies ist eine gute Erinnerung daran, die SDK-Verzeichnisse zu sichern (oder die App vollständig umzubenennen), bevor Sie auf die neueste Xcode-Version aktualisieren oder diese installieren.