wake-up-neo.com

Kann ich iOS 6 SDK auf Xcode 5 installieren?

Xcode 5 hat einen Bereich für Einstellungen, über den ein iPhone 6.1-Simulator heruntergeladen werden kann. Ich kann jedoch keinen Ort finden, an dem iOS 6-SDK heruntergeladen werden kann. Daher kann das aktive SDK bei der Entwicklung mit Xcode 5 nicht auf iOS 6 gesetzt werden Gibt es eine Problemumgehung, die es Xcode 5 ermöglicht, iOS 6 SDK zu installieren?

BEARBEITEN:

Umgehungen sollten jetzt nicht mehr erforderlich sein, da Xcode 5 allgemein verfügbar ist und Sie frühere Versionen des SDK herunterladen können. 

enter image description here

246
Tony

BEARBEITEN: Ab dem 1. Februar 2014 akzeptiert Apple keine Apps vor iOS7 mehr zur Übermittlung an den App Store. Diese Technik funktioniert zwar weiterhin, ist aber für die meisten Leser nicht von Nutzen.


Ja das ist gut. Ich baue immer noch mit iOS 4.3 für ein Projekt (es ist schon eine Weile her, seit wir ein Update durchgeführt haben; es wurde jedoch nach dem Erscheinen von iOS 6 akzeptiert), und ich baue derzeit 10,5 Apps mit Xcode 5.

Siehe Wie kann ich Xcode auf ein altes SDK verweisen, damit es als "Basis-SDK" verwendet werden kann? für Einzelheiten zur Einrichtung. Sie können mein Skript fix-xcode Verwenden, um bei jedem Upgrade alles für Sie zu verknüpfen.

Der einzige Trick besteht darin, die alten SDKs zu erhalten. Wenn Sie sie nicht haben, müssen Sie in der Regel alte Xcode-Versionen herunterladen (noch unter developer.Apple.com verfügbar), das Installationspaket öffnen und nach dem benötigten SDK suchen.

SDKs finden Sie im Installationspaket unter:

Xcode.app/Contents/Developer/Platforms/

202
Rob Napier

Ich habe auch das gleiche Problem ausgeführt, als ich auf xcode 5 aktualisiert habe, da es ältere Sdk entfernte. Ich habe jedoch die Kopie des älteren SDK von einem anderen Computer mitgenommen und das gleiche können Sie unter folgendem Link herunterladen.

http://www.4shared.com/Zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com Testkonto [email protected]/test)

Es gibt zwei Möglichkeiten mit zu arbeiten.

1) Entpacken Sie diesen Ordner nach /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs und starten Sie den Xcode erneut.

Dies kann jedoch durch Xcode wieder entfernt werden, 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. Erstellen Sie hier einen symbolischen Link, sodass das SDK auch dann gleich bleibt Sie aktualisieren den Xcode.

Eine weitere von mir vorgenommene Änderung, Build Setting> Architectures> Standard (nicht 64), listen Sie alle Versionen von Deployment Target auf

Sie müssen den Zip nicht herunterladen, wenn Sie nur das Implementierungsziel ändern möchten.

Hier sind einige Screenshots .enter image description hereenter image description here

60

Ja, ich habe das Problem heute gelöst.

  1. Suchen Sie die SDK-Datei (z. B. iPhoneOS6.1.sdk) im älteren Xcode-Verzeichnis .__ Ihres älteren Freundes.
  2. Kopieren Sie es in das Xcode 5-Verzeichnis: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs.

enter image description here

Dann können Sie das SDK wie folgt auswählen:

enter image description here

Hoffe das hilft dir.

34
Jason Lee

Altes SDK finden und herunterladen. Ältere SDKs finden Sie hier .

Ich habe das Verzeichnis xcode.app als Xcode_4.6.3.app kopiert.

Jetzt können Sie in beiden Xcode-Versionen testen und debuggen. Sie müssen sie aus den entsprechenden Ordnern ausführen oder Verknüpfungen auf Ihrem Desktop erstellen. Beim Erstellen von der Befehlszeile aus geben Sie den Parameter als iPhoneOS6.1 anstelle von iPhoneOS7.0

Das funktionierte für mich in Xcode5 und iOS. 

Gehen Sie in das SDK-Verzeichnis von Xcode5. Es befindet sich normalerweise in:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

Fügen Sie dem alten SDK einen symbolischen Link hinzu: 

Sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk

Oder genauer von überall in der Befehlszeile,

Sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk
20
karim

Sie können das ältere SDK herunterladen und in installieren 

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ 

mappe. Abmelden + Anmelden, um sicherzustellen, dass die Änderungen wirksam werden und das ältere SDK in Ihrem neuen XCode angezeigt wird

11
unspokenblabber

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: 

enter image description here

11
Smikey
  • Laden Sie Xcode 4.6.x vom Apple Dev Center herunter: https://developer.Apple.com/downloads/index.action
  • Erstellen Sie einen Ordner mit dem Namen Xcode4 im Anwendungsordner und ziehen Sie die heruntergeladene dmg dorthin.
  • Öffnen Sie ein Terminalfenster

    $Sudo cp -R /Applications/Xcode4/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
    
  • Sie werden aufgefordert, ein Kennwort einzugeben, da Sie sich in einem Systemordner befinden

  • Öffnen Sie Xcode 5 und Sie sollten jetzt beide SDKs sehen
10
autremoi

Nur für mich die einfachste Lösung:

  1. Suchen Sie ein älteres SDK wie zum Beispiel "iPhoneOS6.1 sdk" in einer älteren Version von xcode, zum Beispiel . Falls nicht, können Sie es vom Apple Developer Server unter dieser Adresse herunterladen: https: //developer.Apple.com/downloads/index.action?name=Xcode Wenn Sie die xcode.dmg öffnen, können Sie sie finden, indem Sie Xcode.app öffnen (Rechtsklick und "Inhalt anzeigen") und gehen Sie zu Inhalt/Entwickler/Plattformen/iPhoneOS.platform/Entwickler/SDKs/iPhoneOS6.1 sdk enter image description here
  2. Einfach Kopieren Sie den Ordner iPhoneOS6.X sdk und fügen Sie ihn in Ihre xcode.app .__ ein.
    • klicken Sie im Anwendungsordner mit der rechten Maustaste auf Ihre xcode.app.
    • Gehe zu Inhalt/Entwickler/Plattformen/iPhoneOS.platform/Entwickler/SDKs /
    • Einfach hier einfügen.

enter image description here

  1. Schließen Sie Ihre Xcode-App und öffnen Sie sie erneut.

So testen Sie eine App in iOS 6 auf Ihrem Simulator: - Wählen Sie einfach iOS 6.0 in Ihrem aktiven Schema aus.enter image description here

Um Ihre App in iOS 6 zu erstellen, wird das Design Ihrer App auf einem iPhone mit iOS 7 ebenfalls das ältere Design sein: - Wählen Sie iOS6.1 in Targets - Base SDK

enter image description here

Nur zu beachten: Wenn Sie das Basis-SDK in Ihren Targets ändern, ist iOS 7.0 nicht mehr für den Simulator verfügbar!

10
Daniel C.

Kann das, aber nicht wirklich notwendig

Wie macht man das

Jason Lee bekam die Antwort. Bei der Installation von xCode habe ich es vorgezogen, vorherige Installationen beizubehalten, anstatt sie zu ersetzen. Also habe ich diese in meinem Installationsordner

enter image description here

Also /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs enthält 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.

enter image description here

Starten Sie jetzt xCode neu und Sie können frühere Versionen von SDK 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 zwei Auswahlmöglichkeiten in den Build-Einstellungen Ihres Projekts.

  1. Wählen Sie ein Implementierungsziel aus.

    Dies kennzeichnet die früheste Betriebssystemversion, auf der Ihre Software ausgeführt werden kann.

  2. Wähle ein Basis-SDK

    Ihre Software kann Funktionen verwenden, die in Betriebssystemversionen verfügbar sind, einschließlich der Funktionen, die dem Basis-SDK entsprechen. Standardmäßig setzt Xcode dies auf das neueste von Xcode unterstützte Betriebssystem.

Regel ist Letzte als Basis-SDK verwenden und das Implementierungsziel auf die Mindestversion der App setzen, die ausgeführt werden soll

Sie können beispielsweise 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 er nicht mit einer Liste von Simulatoren verfügbar ist.

enter image description here

Zusätzlich können Sie die Funktionen bis iOS 6 uneingeschränkt nutzen. Außerdem 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 mit 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 Verlinkung

Angenommen, Sie setzen in Xcode das Implementierungsziel (mindestens erforderliche Version) auf iOS6 und das Ziel-SDK (maximal zulässige Version) auf iOS7. Während der Kompilierung würde der Compiler alle Schnittstellen, die in iOS7 eingeführt wurden, schwach verknüpfen, während frühere Schnittstellen stark verknüpft wurden. Auf diese Weise kann Ihre Anwendung unter iOS6 weiter ausgeführt werden, sie kann jedoch auch neuere Funktionen nutzen, wenn sie verfügbar sind.

9
MadNik

Die anderen Antworten hier sind auch richtig, aber ich finde die folgenden Schritte am einfachsten:

Laden Sie einfach Xcode 4.6.3 von der Dev Center-Verknüpfung herunter, die besagt "Suchen Sie nach einer älteren Version von Xcode?" (aktuell zeigt hier ) und mounte die dmg.

Dann kopieren Sie im Terminal die SDK-Dateien über:

cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

Starten Sie zum Schluss Xcode erneut und Sie sind fertig.

4
nioq

Meine App wurde nahtlos auf Xcode 5 umgestellt, da sie immer noch mit dem ursprünglichen iOS-Implementierungsziel erstellt werden kann, das Sie im Projekt festgelegt haben (in meinem Fall 5.1). Wenn das neue SDK nicht zu einem unüberwindbaren Problem führt, warum sollten Sie es nicht mit dem SDK erstellen? Sicherlich gibt es viele Verbesserungen unter der Haube. 

Zum Beispiel würde ich lieber Xcode 5 anstelle von Xcode 4.6.3 verwenden. Warum? Ich werde viel mehr Akkulaufzeit erhalten, da das Scrollen der UI von Text-/Codebereichen in Xcode 5 nicht länger einen ganzen CPU-Thread belastet.

3
Steven Lu

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 Elemente der Benutzeroberfläche verwendet werden, View-Controller in voller Größe usw. erstellt werden.

Wie in diese Antwort beschrieben, ist es auch erforderlich, die Benutzeroberfläche unter iOS 7 in den Legacy-Modus zu schalten:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"UIUseLegacyUI"];
[[NSUserDefaults standardUserDefaults] synchronize];

Achtung: Dies ist ein undokumentierter Schlüssel, der nicht für App Store Builds empfohlen wird!

Nach meinen Erfahrungen beim Testen auf dem Gerät habe ich festgestellt, dass es nur beim zweiten Start der App funktioniert, obwohl ich den Code ziemlich früh beim Start der App in +[AppDelegate initialize] ausgeführt habe. Es gibt auch geringfügige Unterschiede zu einer Version, die mit Xcode 4.6 erstellt wurde. Beispielsweise verhalten sich transparente Navigationsleisten anders (wodurch die Ansicht in voller Größe dargestellt wird).

Da Xcode 4.6.3 jedoch bei Mavericks abstürzt (zumindest für mich siehe rdar: // 15318883 ), ist dies zumindest eine Lösung, um Xcode 5 weiterhin für das Debugging zu verwenden.

2
Ortwin Gentz

Ab dem 1. Februar wird Apple eine App ablehnen, die nur für iOS6 oder niedriger erstellt wurde. Hier ist auch die offizielle Kommunikation von Apple. Beginnen Sie besser mit dem Aufbau für iOS7. 

Um meine Aussage zu verdeutlichen: Wenn Sie für iOS6 oder eine niedrigere Version erstellen, lehnt Apple Ihre App ab. Wenn Sie für iOS7 bauen und alles in Ordnung ist, bedeutet dies: 

  1. sie müssen xcode5 verwenden
  2. sie sollten mindestens auf iOS7 bereitstellen.

Der Inhalt der Apple-E-Mail ist bei mir ziemlich klar 

"Stellen Sie sicher, dass Ihre Apps nahtlos mit den innovativen Technologien zusammenarbeiten In iOS 7. Ab dem 1. Februar müssen neue Apps und App-Aktualisierungen an Des App Store mit Xcode 5 und iOS 7 SDK erstellt werden."

1
Andrea

Ich habe XCode 4 heruntergeladen und das iOS 6.1 SDK von dort auf den XCode 5 übertragen, wie in anderen Antworten beschrieben. Dann habe ich auch den iOS 6.1 Simulator installiert (dieser war in den Einstellungen verfügbar). Ich habe das Base SDK in den Projekteinstellungen auch auf iOS 6.1 umgestellt.

Nach all diesen Manipulationen läuft das Projekt mit 6.1 base sdk im Kompatibilitätsmodus in iOS 7 Simulator.

1
OneSman7

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:

platforms_path="$1/Contents/Developer/Platforms";
if [ -d $platforms_path ]; then
    for platform in `ls $platforms_path`
    do
        Sudo ln -sf $platforms_path/$platform/Developer/SDKs/* $(xcode-select --print-path)/Platforms/$platform/Developer/SDKs;
    done;
fi;

Sie müssen nur den Pfad zur .app angeben:

./xcode.sh /Applications/Xcode-463.app
0
Wayne Burkett