Wie können wir ppc / ppc64 sowie die vollständige 10.4 / 10.5 SDK-Unterstützung für Xcode 4 wiederherstellen?

93

Da Apple SDK 10.6 nur mit Xcode4 ausliefert, wurde die Entwicklung von PPC-Anwendungen mit Xcode4 unmöglich. Es ist zwar möglich, Anwendungen mit Xcode4 zu entwickeln, die auch auf 10.5 und möglicherweise sogar auf 10.4-Systemen ausgeführt werden können (durch Auswahl von SDK 10.6, aber Bereitstellungsziel 10.5 oder 10.4), sie können jedoch nur auf Intel-Macs ausgeführt werden, da Sie mindestens SDK 10.5 für benötigen Erstellen von PPC-Anwendungen.

Darüber hinaus gibt es einige seltene Fälle, in denen Sie wirklich vor 10.6 gegen ein SDK bauen müssen, um vollständige Plattformunterstützung zu erhalten, z. B. wenn bestimmte veraltete Funktionen vollständig aus dem 10.6 SDK verschwunden sind, Sie sie jedoch verwenden müssen und dynamische Verknüpfungen nicht in diesen Fällen immer die beste Option. Auch das Verknüpfen mit einem früheren SDK erleichtert manchmal die Entwicklung, da Funktionen, die Sie nicht verwenden sollten, nicht kompatibel mit früheren Betriebssystemversionen sind, nicht verfügbar sind und jeder Versuch, es zu verwenden, sofort zu Compiler- oder Linkerfehlern führt.

Last but not least hat Apple auch die GCC 4.0-Unterstützung von Xcode4 entfernt, die möglicherweise erforderlich ist, damit bestimmte Software korrekt erstellt werden kann, und Apple hat es nie zugelassen, Software mit GCC 4.2 zu kompilieren, wenn SDK 10.4 verwendet wird, obwohl ich kaum glaube, dass dies wirklich dazu führen würde Probleme, nachdem alle mit GCC 4.2 und SDK 10.6 erstellten Programme auch unter Mac OS 10.4 ohne Probleme ausgeführt werden können, solange das Bereitstellungsziel korrekt festgelegt wurde und keine unter MacOS 10.4 nicht verfügbaren Funktionen verwendet wurden.

Natürlich können Sie Xcode3 immer parallel neben Xcode4 installieren, aber das bedeutet, dass Sie auf alle (großartigen?) Neuen Funktionen von Xcode4 verzichten und weiter mit der veralteten Xcode3-IDE arbeiten müssen. Es wäre sicherlich viel besser, wenn Sie auch alle Ihre alten Projekte in derselben IDE wie Ihre neuen verwalten und von allen neuen verfügbaren Funktionen profitieren könnten. Nicht alle Projekte können nur in absehbarer Zeit mit 10.6 oder Intel durchgeführt werden. Außerdem bin ich strikt dagegen, die Unterstützung für ältere Plattformen früher als wirklich notwendig abzuschaffen.

Können wir diese Funktionalität auf Xcode4 wiederherstellen?

Mecki
quelle

Antworten:

111

Die schnelle Antwort lautet: Ja, wir können!

Bevor ich zum Teil " Wie es gemacht wird " komme , hier einige Hinweise zu meinem Patch / Hack / Fix. Die Hauptziele waren von Anfang an:

  1. Halten Sie alle Änderungen auf ein absolutes Minimum.
    Wir möchten die Xcode-Setups so original wie möglich halten.

  2. Vermeiden Sie auf jeden Fall das Patchen oder Ändern von Dateien.
    Wir möchten, dass alle Dateien unberührt bleiben und ihren ursprünglichen Inhalt behalten.

  3. Vermeiden Sie das Verschieben oder Kopieren von Dateien, es sei denn, dies ist unbedingt erforderlich.

Ich konnte all diese Ziele halten. Fast alles wird durch das Erstellen von Symlinks erledigt. Es musste nur ein einziger vorhandener Symlink ersetzt werden, und wir werden ihn vor dem Austausch sichern, nur für den Fall.

Wenn Sie kein Experte für Terminaloperationen sind, empfehle ich Ihnen dringend, alle Terminalbefehle aus meiner Antwort auf Ihr Terminal zu kopieren / einzufügen, um Tippfehler zu vermeiden. Denken Sie daran, dass auch Abstände, Anführungszeichen und insbesondere Groß- und Kleinschreibung wichtig sein können. Kopieren Sie sie Zeile für Zeile, fügen Sie sie nicht mehr als eine Zeile gleichzeitig ein und drücken Sie nach jeder eingefügten Zeile die Eingabetaste, um den Befehl auszuführen. Sollte Sie bei einem Vorgang jemals zur Eingabe eines Kennworts aufgefordert werden, ist dies das Kennwort des aktuell angemeldeten Administratorbenutzers (Ihre Tastenanschläge werden während der Eingabe nicht angezeigt. Dies ist normal. Machen Sie sich keine Sorgen, geben Sie das Kennwort einfach weiter ein und drücken Sie die Eingabetaste -Versuchen Sie, ob Sie einen Tippfehler hatten und erneut aufgefordert werden).

Voraussetzung

Bevor wir beginnen können, stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:

  • Sie sind als Administrator angemeldet.
  • Sie haben Terminal.app (Anwendungen / Dienstprogramme) gestartet und ein Terminalfenster ist geöffnet.
  • Sie haben eine Kopie des Xcode3- (z. B. 3.2.5) und Xcode4-Disk-Images (DMG) oder des Installationsprogramms zur Verfügung.
  • Wenn Sie bereits eine der Xcode-Versionen installiert haben, sollten Sie diese zuerst deinstallieren , damit Sie mit einem neuen / sauberen Setup beginnen können. Durch die Deinstallation von Xcode werden Ihre Einstellungen, Farbschemata oder Anpassungen der Schlüsselbindung nicht entfernt. Idealerweise beginnen Sie mit einem System, auf dem derzeit keine Xcode-Version (weder 3 noch 4) installiert ist.

Schritt 1: Installieren von Xcode3

Wichtig : Installieren Sie nicht " System Tools " oder " Unix Development" Paket " von Xcode3.
Ob Sie " Mac OS X 10.4 SDK " und / oder " Dokumentation " installieren möchten, liegt bei Ihnen. Wenn dies ein Xcode3 mit iOS-SDKs ist, liegt es auch an Ihnen, ob Sie diese installieren oder nicht.

Sie können einen beliebigen Zielordner für Ihre Installation auswählen. Für diese Anleitung habe ich " / Xcode3 " gewählt, kann aber auch eine andere auswählen. Stellen Sie einfach sicher, dass Sie alle Terminalbefehle entsprechend ändern.

Die Reihenfolge der hier angegebenen Schritte ist normalerweise nicht wirklich wichtig, aber ich rate Ihnen dringend, Schritt 1 und Schritt 2 nicht auszutauschen. Xcode installiert immer ein paar Dateien außerhalb des ausgewählten Zielordners und vertraut mir, am Ende möchten Sie das Xcode4-Versionen dieser Dateien auf Ihrer Festplatte. Wenn Sie Xcode3 vor Xcode4 installieren, können Sie sicher sein, dass Xcode4 diese Dateien bei Bedarf überschreibt. Ich habe einmal die Schritte 1 und 2 getauscht und am Ende hatte ich einige ziemlich seltsame Probleme, die möglicherweise mit der falschen Reihenfolge zusammenhängen (ich kann nicht sicher sagen, aber nach der Neuinstallation in der richtigen Reihenfolge waren die Probleme verschwunden).

Schritt 2: Installieren von Xcode4

Wählen Sie alle Pakete, die Sie mögen. Installieren von " System Tools " ist ratsam, aber nicht unbedingt erforderlich (obwohl die meisten Benutzer diese Funktionalität früher oder später vermissen werden).

Sie können auch hier einen beliebigen Zielordner auswählen. Für diese Anleitung habe ich den normalen Zielordner " / Developer" ausgewählt " ausgewählt. Wenn Sie einen anderen verwenden, ändern Sie alle Terminalbefehle entsprechend.

Schritt 3: Wiederherstellen der 10.4 / 10.5 SDK-Unterstützung

Wechseln Sie zu Ihrem Terminalfenster und führen Sie die folgenden Befehle aus:

CD / Entwickler / SDKs
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk.
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk.

Führen Sie den Befehl für 10.4u natürlich nur aus, wenn Sie in Schritt 1 auch SDK 10.4 installiert haben.

Dies reicht aus, um die SDKs 10.5 (und möglicherweise 10.4) wieder in die Auswahlliste in Xcode4 aufzunehmen. Probieren Sie es aus, wenn Sie möchten. Starten Sie Xcode4, öffnen Sie ein Projekt und versuchen Sie, das ausgewählte SDK zu ändern. Das war einfach, oder? Stellen Sie sicher, dass Sie Xcode4 erneut schließen (die Anwendung, nicht nur das Fenster), bevor Sie mit dem nächsten Schritt fortfahren.

Schritt 4: Wiederherstellen der GCC 4.0-Unterstützung

Wenn Sie das MacOS 10.4 SDK nicht installiert haben oder nicht vorhaben, es jemals zu verwenden, können Sie diesen Schritt sicher überspringen und mit Schritt 5 fortfahren.

Um SDK 10.4 verwenden zu können, müssen Sie GCC 4.0 verwenden. GCC 4.2 funktioniert nicht. Apple behauptet, dass GCC 4.2 nicht mit SDK 10.4 kompatibel ist. Wenn Sie mich fragen, ist dies ein Scherz. Ich habe diese Einschränkungen bereits mehr als einmal überschrieben und es gab nie das kleinste Problem. Es wäre einfach, SDK 10.4 so zu ändern, dass Sie mit Xcode GCC 4.2 verwenden können. Mein Ziel war es jedoch, alle Dateimodifikationen zu vermeiden. Deshalb fügen wir Xcode einfach wieder GCC 4.0-Unterstützung hinzu, was auch eine gute Sache ist Einige Projekte hängen wirklich von GCC 4.0 ab (z. B. gibt es einige Fehler in GCC 4.2, die verhindern, dass gültiger Inline-Assemblycode fehlerfrei kompiliert wird, während derselbe Code fehlerfrei auf GCC 4.0 und GCC 4.4 kompiliert wird).

Zurück zum Terminal:

cd / Developer / usr / bin
sudo ln -s /Xcode3/usr/bin/*4.0*.

cd / Developer / usr / libexec / gcc / powerpc-apple-darwin10
sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1.

Derzeit haben wir die vollständige GCC 4.0-Unterstützung wiederhergestellt, mit der Ausnahme, dass GCC 4.0 in Xcode4 immer noch nicht auswählbar ist. Dies liegt daran, dass Xcode4 kein GCC 4.0-Compiler-Plug-In mehr hat. Glücklicherweise funktioniert das Xcode3-Plug-In auch in Xcode4, nur die Position hat sich radikal geändert. Apple versteckt diese Plug-Ins jetzt tief in einem Bundle und nur die dort enthaltenen Plug-Ins scheinen zu funktionieren. Das Platzieren an ihrer alten Position scheint keine Auswirkung zu haben.

cd / Developer / Library / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Inhalt / SharedSupport / Entwickler / Bibliothek / Xcode / Plug-Ins
sudo ln -s "/ Xcode3 / Bibliothek / Xcode / Plug-Ins / GCC 4.0.xcplugin".

Starten Sie nun Xcode4 erneut, öffnen Sie ein Projekt und versuchen Sie, den Compiler auszuwählen. Sie sollten GCC 4.0 wieder auf der Liste haben. Jetzt können Sie tatsächlich bereits SDK 10.4 oder 10.5, GCC 4.0 auswählen, und Sie sollten kein Problem damit haben, eine PPC-Binärdatei zu erstellen. Wählen Sie einfach " Andere ... " für die Build-Einstellung " Architektur " und geben Sie " ppc " manuell ein. Ändern Sie dann " Gültige Architekturen ", um auch " ppc " einzuschließen. ppc " einzuschließen . Wir sind fast fertig, außer dass der Versuch, eine PPC-Binärdatei mit GCC 4.2 und SDK 10.5 zu erstellen, immer noch fehlschlägt.

Schritt 5: Wiederherstellen der PPC-Unterstützung für GCC 4.2

Da Apple nur Intel-Plattformen in Xcode4 unterstützt, wurden nicht alle GCC 4.2-Tools mit PPC-Unterstützung erstellt. Es gibt ein wichtiges Tool, das keine PPC-Unterstützung bietet. Das Tool heißt " as " und ist der GNU Assembler. Um ppc / ppc64-Binärdateien mit GCC 4.2 zu kompilieren, müssen wir ein " as " verwenden " -Version mit ppc / ppc64-Unterstützung verwenden. Dies ist die einzige Datei (eigentlich auch ein Symlink), die wir zuerst beiseite schieben müssen (eine Sicherungskopie erstellen), bevor wir sie durch einen Symlink ersetzen können:

cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv as as.bak
sudo ln -s / Xcode3 / usr / bin / as.

Schritt 6: Es gibt keinen Schritt 6

Das war's Leute. Wenn man bedenkt, wie einfach das war, kann man sich vorstellen, dass Apple die Unterstützung für SDK 10.4 / 10.5 oder ppc / ppc64 oder GCC 4.0 sicherlich nicht eingestellt hat, weil dies eine Notwendigkeit war. Sie haben all das eingestellt, weil sie es fallen lassen wollten.

Ich hoffe, dass dieses Setup für Sie genauso gut funktioniert wie für mich. Ich konnte alle meine alten Projekte in Xcode4 ohne größere Änderungen kompilieren, außer dass ich hier und da einen Suchpfad ändern musste.

PS:
Es mag seltsam aussehen, dass ich hier meine eigene Frage beantworte, aber da ich herausgefunden habe, wie ich dieses Problem alleine lösen kann, möchte ich mein Wissen mit der Community teilen, da ich glaube, dass dies ein wirklich wertvoller Beitrag ist Alle MacOS-Entwickler da draußen. Diese Frage wurde so oft an so vielen Orten gestellt, und bisher habe ich noch nie jemanden gesehen, der eine ähnliche Lösung gefunden hat. Teilen Sie den Reichtum, verbreiten Sie das Wissen und so weiter, Sie wissen, was ich meine.


Wenn Sie noch Probleme haben:

Wenn Sie weitere Fragen zu diesem Thema haben oder immer noch Probleme haben, Ihre alten Projekte korrekt zu erstellen, tun Sie bitte das, wofür der Stapelüberlauf entwickelt wurde: Klicken Sie oben rechts auf dieser Seite auf "Frage stellen" und erstellen Sie eine neue Frage . Auf diese Weise kann die gesamte Community Ihnen bei der Lösung dieser Probleme helfen, da die Probleme möglicherweise nicht direkt (möglicherweise nicht einmal indirekt) mit diesem Hack zusammenhängen.

Ich würde Ihnen empfehlen, die Tatsache zu erwähnen, dass Sie diesen Hack ganz am Anfang Ihrer Frage angewendet haben. Vielleicht möchten Sie sogar direkt auf diese Frage verweisen, damit Leute, die noch nie von diesem Hack gehört haben, ihn leicht nachschlagen können. Andernfalls werden die meisten Leute ziemlich verwirrt sein, wenn Sie SDK 10.4 / 10.5, PPC oder GCC 4.0 in Kombination mit Xcode4 erwähnen, das offiziell keines von beiden unterstützt. Wenn Sie vergessen, diesen Hack zu erwähnen, erhalten Sie möglicherweise eher dumme Kommentare anstelle anständiger Antworten.

Bitte veröffentlichen Sie Ihre Fragen oder Probleme hier nicht als Antworten oder als Kommentare. Das Posten als Antworten macht keinen Sinn, da es sich nicht um Antworten handelt und es keine Möglichkeit gibt, wie Personen auf Sie antworten können, außer Kommentare zu verwenden, und Kommentare bieten möglicherweise nicht genügend Platz für eine anständige Antwort auf Ihre Frage oder eine anständige Lösung für Ihre Frage Problem. Wenn Sie sie als Kommentare veröffentlichen, sind Sie auf sehr wenig Platz beschränkt, und das Verfolgen von Antwortkommentaren ist schwierig, da Kommentare keine baumartige Hierarchie aufweisen (außerdem bieten sie immer noch wenig Platz für anständige Antworten / Lösungen). Danke dir.

Natürlich sind auch andere Kommentare sowie bessere Antworten auf die ursprüngliche Frage immer willkommen ;-)

Mecki
quelle
6
Hier ist eine Gegenstimme. Ich werde wahrscheinlich die alten SDKs und Compiler-Dateien kopieren, anstatt sie nur zu verknüpfen, um den Rest von Xcode3 deinstallieren zu können. Nicht weil ich Xcode4 liebe; Nur weil ich den Speicherplatz brauche. Vielen Dank!
Ivan Vučica
Ich kann das nicht zum Laufen bringen. Bitte sehen Sie meine SO-Frage: stackoverflow.com/questions/5409860/…
paleozogt
Darüber hinaus musste ich Folgendes tun, um gcc 4.0 für i686-Ziele zu erstellen: sudo ln -s /Xcode3/usr/libexec/gcc/i686-apple-darwin10/4.0.1 / Developer / usr / libexec / gcc / i686-apple-darwin10 / sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/ / Developer / usr / lib / gcc / i686- apple-darwin10 / sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/ / usr / lib / gcc / i686-apple-darwin10 /
Mark Carey
2
Diese Zeile for SRC_FILE in /Xcode3/usr/bin/*4.0*; do sudo ln -s "$SRC_FILE" .; donekann vereinfacht werdensudo ln -s /Xcode3/usr/bin/*4.0* .
Adam Rosenfield
1
@cullub Gehen Sie zu developer.apple.com , melden Sie sich mit Ihrer Entwickler- ID an, wählen Sie "SDKs", scrollen Sie nach unten und wählen Sie "Xcode", wählen Sie "Download", scrollen Sie nach unten und wählen Sie "Additional Tools", suchen Sie nach "Xcode 3". im Suchfeld.
Mecki
15

Ein weiterer einfacher Weg mit nur Xcode4, Xcode3 wird nicht mehr benötigt.

$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin

EDITS:

Für Xcode 4.1

sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-cpp-4.2.1 /usr/bin/powerpc-apple-darwin11-cpp-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-gcc-4.2.1 /usr/bin/powerpc-apple-darwin11-gcc-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-g++-4.2.1 /usr/bin/powerpc-apple-darwin11-g++-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-cpp-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-cpp-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-gcc-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-gcc-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-g++-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-g++-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/gcc/powerpc-apple-darwin10 /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc

Sie können gcc-4.2 nur für PowerPC verwenden. Die Option "-isysroot /Developer/SDKs/MacOSX10.6.sdk" ist erforderlich, da 10.7 SDK PowerPC nicht mehr unterstützt.

Kazuki Sakamoto
quelle
3
LOL, also unterstützt Apple PPC im iOS-Compiler :-P Sie sollten jedoch beachten, dass dadurch möglicherweise nur die PPC-Kompatibilität wiederhergestellt wird, SDKs oder GCC4.0-Unterstützung jedoch nicht wiederhergestellt werden. Immer noch eine Gegenstimme wert.
Mecki
Sehr hackisch und einfacher als oben, das absolute Minimum erforderlich.
Diziet
Aktivieren Sie die PowerPC-Toolchain unter Xcode 4.1 . nur gcc-4.2. Es erfordert die Option "-isysroot /Developer/SDKs/MacOSX10.6.sdk", da 10.7 SDK die Header für PowerPC nicht mehr enthält.
Kazuki Sakamoto
stackoverflow.com/questions/11989007 ist relevant für den Erhalt des 10.6 SDK. dh es ist in Xcode 4.1
Uhr
8

Ich habe alle Informationen von dieser Seite, Mac OS X-Hinweise, splhack.org und den anderen hier zitierten Quellen zusammengestellt und eine Reihe von BASH-Skripten zusammengestellt, die den Prozess der Wiederherstellung der PPC- und GCC 4.0-Unterstützung mithilfe von entweder automatisieren XCode 3-Installation oder nur XCode 4-eigene iPhone-Plattformdateien.

Wie immer mit Vorsicht verwenden! und bitte tragen Sie Korrekturen oder Verbesserungen bei. Diese Skripte wurden zum Zeitpunkt dieser Veröffentlichung nur auf meinem eigenen System getestet.

Sie können sie von GitHub herunterladen:

Scott Lahteine
quelle
Wow, ziemlich cool :-) Ich wollte selbst ein solches Drehbuch machen, hatte aber nie die Zeit dafür. Danke, dass du es mit uns geteilt hast.
Mecki
4

Wenn Sie möchten, dass gcc auch über die Befehlszeile funktioniert (sowie über die oben genannten), müssen Sie außerdem:

cd /usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv as as.bak
sudo ln -s /Xcode3/usr/bin/as .
jas
quelle
3

Dies funktioniert weiterhin mit Xcode 4.3.2 aus dem AppStore - der Version, in der alles in einem App-Bundle enthalten ist. Installieren Sie wie im ursprünglichen Hinweis zuerst Xcode 3.2.6 * und laden Sie dann Xcode 4 aus dem AppStore herunter. Dann mache die folgende Symlink-Magie:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
ln -s /Developer/Xcode3.2.6/SDKs/MacOSX10.5.sdk .
cd /Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/bin/
ln -s /Developer/Xcode3.2.5/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g* .
mv powerpc-apple-darwin10-llvm-gcc-4.2 powerpc-apple-darwin11-llvm-gcc-4.2
mv powerpc-apple-darwin10-llvm-g++-4.2 powerpc-apple-darwin11-llvm-g++-4.2

In den letzten beiden Zeilen wird darwin10 im symlink in darwin11 umbenannt. Ich vermute, dass zukünftige Versionen von OS X dies entsprechend aktualisieren müssen.

  • Um Xcode 3.2.x auf Lion zu installieren, mounten Sie das Xcode-Disk-Image, öffnen Sie das Terminal, geben Sie die Befehle ein (mit bash oder den entsprechenden Befehlen, wenn Sie Ihre Standard-Shell geändert haben):

    export COMMAND_LINE_INSTALL = 1 open "/ Volumes / Xcode und iOS SDK / Xcode und iOS SDK.mpkg"

Sie müssen die Uhr auch auf ein Datum vor dem 31. März 2012 zurücksetzen, da sonst die Validierung von Sicherheitszertifikaten während der Installation fehlschlägt. Sie können das Datum nach der Installation natürlich wieder sicher ändern!

Avram
quelle
2

Für den Fall, dass jemand alte SDKs und PPC-Compiler in Xcode 4.3 und 4.5 wiederherstellen muss, ist dies ein Skript, das ich mir ausgedacht habe. Beachten Sie, dass Sie den Pfad zum Xcode-App-Bundle und den Pfad zur Xcode 3.2.6-Installation am Anfang des Skripts festlegen müssen.

#!/bin/bash

XCODE="/Applications/Xcode45-DP1.app"
XCODE3="/Xcode3"

# restore SDKs
cd "$XCODE/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
sudo ln -s "$XCODE3/SDKs/MacOSX10.4u.sdk" .
sudo ln -s "$XCODE3/SDKs/MacOSX10.5.sdk" . 
sudo ln -s "$XCODE3/SDKs/MacOSX10.6.sdk" . 

# restore gcc 4.0
cd "$XCODE/Contents/Developer/usr/bin"
sudo ln -s "$XCODE3/usr/bin/"*4.0* .
sudo ln -s "powerpc-apple-darwin10-g++-4.0.1" "powerpc-apple-darwin11-g++-4.0.1"
sudo ln -s "powerpc-apple-darwin10-gcc-4.0.1" "powerpc-apple-darwin11-gcc-4.0.1"

# restore Xcode option
cd "$XCODE/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins"
sudo ln -s "$XCODE3/Library/Xcode/Plug-ins/GCC 4.0.xcplugin" . 

Sie müssen das 10.6 SDK nicht symlinken, wenn Sie Xcode 4.3 verwenden, da es mit einem geliefert wird.

Außerdem stellt das Skript gcc 4.2 nicht wieder her, da dies zu vielen Dateinamenkonflikten führt. Mein Ziel ist es, den PPC-Compiler wiederherzustellen, und 4.0 ist gut genug für mich.

Stephen Chu
quelle
2

Frédéric Devernay hat ein GitHub-Projekt namens xcodelegacy, das für mich unter Xcode 5.1.1 fantastisch funktioniert und nur sehr wenig Arbeit benötigt, um es in Gang zu bringen, nur ein paar Downloads.

Mit seinem Projekt habe ich es geschafft, universelle Binärdateien zu erstellen, die sowohl ppc- als auch i386-Architekturen enthalten, die mit dem 10.4 SDK unter Verwendung von GCC 4.0 kompiliert wurden, und zwar alle in Xcode 5.1.1, das auf Yosemite ausgeführt wird.

Ich habe selbst überprüft, dass die erstellten universellen Binärdateien unter 10.5 Leopard und Yosemite selbst einwandfrei funktionieren.

Homepage hier: http://devernay.free.fr/hacks/xcodelegacy

Git Hub-Projekt hier: https://github.com/devernay/xcodelegacy

Aidan
quelle
1

Es wäre nützlich, ein Paket zu haben, um diese Dateien einfach in einer XCode 4-Implementierung zu installieren. (oder ein Tarball).

Zu Ihrer Information: 3.2.6 von Xcode3 enthält keine wie bei der ppc-Architektur. Aber ich hatte ein Backup von Leopard auf meinem Computer. Also habe ich das kopiert, scheint zu funktionieren. (Verwenden Sie / usr / libexec / gcc / darwin / ppc / as).

Wenn man bedenkt, dass sowohl gcc als auch as Open Source sind, ist das einzige Code, der möglicherweise nicht weiterverteilbar ist, das xcode-Plugin und das 10.4 SDK, oder?

Jason Kenney
quelle
Ich bin kein Experte für Lizenzfragen. "as -v" sagt "Apple Inc Version cctools-795 ~ 45, GNU Assembler Version 1.38", auch wenn Apple den Quellcode von "as" geändert hat, ist er dennoch unter der GPL lizenziert (geänderter GPL-Code wird automatisch GPL-Code erneut). Wenn die GPL dies zulässt, sollten Sie in Ordnung sein.
Mecki
Okay, ich nehme an, meine Argumentation, warum wir "as" ersetzen müssen, war falsch. Das "as" von Xcode 3.2.6 scheint ebenfalls zu funktionieren, obwohl es nur Intel ist, aber es scheint immer noch in der Lage zu sein, ppc-Assembly-Ausgaben zu erstellen. Ich werde meine erste Antwort korrigieren. Vielen Dank für den Hinweis!
Mecki
Eigentlich zumindest über die Kommandozeile nicht. Es beschwerte sich weiter, bis ich wie von meinem Leopard-Backup griff.
Jason Kenney