La réponse rapide est: oui, nous pouvons!
Avant d'arriver à la partie " comment faire ", voici quelques notes sur mon patch / hack / fix. Dès le départ, les principaux objectifs ont été:
Gardez toutes les modifications au strict minimum.
Nous voulons garder les configurations Xcode aussi originales que possible.
Par tous les moyens, essayez d'éviter de patcher ou de modifier des fichiers.
Nous voulons que tous les fichiers restent intacts et conservent leur contenu d'origine.
Essayez d'éviter de déplacer ou de copier des fichiers, à moins que cela ne soit absolument nécessaire.
J'ai pu garder tous ces objectifs. Presque tout est fait en créant des liens symboliques. Un seul lien symbolique existant a dû être remplacé et nous le sauvegarderons avant le remplacement, au cas où.
Si vous n'êtes pas un expert des opérations sur les terminaux, je vous conseille vivement de copier / coller toutes les commandes du terminal de ma réponse vers votre terminal, pour éviter les fautes de frappe. Gardez à l'esprit que même l'espacement, les citations et surtout la capitalisation peuvent être importants. Copiez / collez-les ligne par ligne, jamais plus d'une ligne à la fois et appuyez sur retour après chaque ligne collée pour exécuter la commande. Si une opération vous demande un mot de passe, ce sera le mot de passe de l'utilisateur administrateur actuellement connecté (vos frappes ne s'affichent pas lors de la saisie, c'est normal, ne vous inquiétez pas, continuez à taper le mot de passe et appuyez sur retour; re -essayer si vous avez eu une faute de frappe et que vous êtes à nouveau invité).
Prérequis
Avant de pouvoir commencer, assurez-vous que les conditions suivantes sont remplies:
- Vous êtes connecté en tant qu'utilisateur administrateur.
- Vous avez démarré Terminal.app (Applications / Utilitaires) et une fenêtre de terminal est ouverte.
- Vous disposez d'une copie de l'image disque Xcode3 (par exemple 3.2.5) et Xcode4 (DMG) ou du programme d'installation.
- Si l'une ou l'autre des versions de Xcode est déjà installée, envisagez de la désinstaller d'abord , afin de pouvoir commencer avec une configuration fraîche / propre. La désinstallation de Xcode ne supprimera pas vos préférences, votre jeu de couleurs ou vos personnalisations de liaison de touches. Idéalement, vous commenceriez avec un système qui n'a pas de version Xcode (ni 3 ni 4) actuellement installée.
Étape 1: Installation de Xcode3
Important : n'installez pas le package « Outils système » ou « Développement Unix » de Xcode3.
Que vous souhaitiez installer " Mac OS X 10.4 SDK " et / ou " Documentation " dépend de vous. S'il s'agit d'un Xcode3 avec des SDK iOS, le fait de les installer ou non dépend également de vous.
Vous êtes libre de choisir n'importe quel dossier de destination pour votre installation. Pour ce guide, j'ai choisi " / Xcode3 ", mais n'hésitez pas à en choisir un autre. Assurez-vous simplement de modifier toutes les commandes du terminal en conséquence.
L'ordre des étapes données ici n'est généralement pas vraiment important, mais je vous conseille fortement de ne pas permuter les étapes 1 et 2. Xcode installe toujours quelques fichiers en dehors du dossier de destination choisi et croyez-moi, à la fin vous voulez le Versions Xcode4 de ces fichiers sur votre disque. En installant Xcode3 avant Xcode4, vous pouvez être sûr que Xcode4 écrasera ces fichiers si nécessaire. Une fois, j'ai échangé les étapes 1 et 2 et à la fin, j'ai eu des problèmes plutôt étranges qui auraient pu être liés à un ordre incorrect (je ne peux pas le dire avec certitude, mais après la réinstallation dans le bon ordre, les problèmes ont disparu).
Étape 2: Installation de Xcode4
Choisissez les paquets que vous aimez. L'installation de « Outils système » est recommandée, mais pas strictement nécessaire (bien que la plupart des gens manqueront tôt ou tard cette fonctionnalité).
Encore une fois, n'hésitez pas à choisir le dossier cible de votre choix. Pour ce guide, j'ai choisi le dossier cible normal " / Developer ", si vous en prenez un différent, modifiez toutes les commandes du terminal en conséquence.
Étape 3: Restauration de la prise en charge du SDK 10.4 / 10.5
Basculez vers la fenêtre de votre terminal et exécutez les commandes suivantes:
cd / développeur / SDK
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk.
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk.
Bien sûr, n'exécutez la commande pour 10.4u que si vous avez également installé le SDK 10.4 à l'étape 1.
Cela suffit pour ramener les SDK 10.5 (et éventuellement 10.4) à la liste de sélection dans Xcode4. Essayez-le si vous le souhaitez. Lancez Xcode4, ouvrez un projet, essayez de changer le SDK sélectionné. C'était facile, hein? Assurez-vous de fermer à nouveau Xcode4 (l'application, pas seulement la fenêtre) avant de passer à l'étape suivante.
Étape 4: Restauration du support GCC 4.0
Si vous n'avez pas installé le SDK MacOS 10.4 ou si vous ne prévoyez pas de l'utiliser, vous pouvez ignorer cette étape en toute sécurité et passer à l'étape 5.
Pour utiliser le SDK 10.4, vous devrez utiliser GCC 4.0, GCC 4.2 ne fonctionnera pas. Apple affirme que GCC 4.2 n'est pas compatible avec le SDK 10.4, eh bien, si vous me demandez, c'est un canular. J'ai déjà écrasé ces limitations plus d'une fois et il n'y a jamais eu le moindre problème à cause de cela. Il serait facile de modifier le SDK 10.4 pour que Xcode vous permette d'utiliser GCC 4.2 pour cela, mais mon objectif était d'éviter toutes les modifications de fichiers, donc nous ajoutons simplement le support de GCC 4.0 à Xcode, ce qui est également une bonne chose, car certains projets dépendent vraiment de GCC 4.0 (par exemple, il y a des bogues dans GCC 4.2 qui empêchent le code d'assemblage en ligne valide de se compiler sans erreur, alors que le même code se compile parfaitement sur GCC 4.0 et GCC 4.4).
Retour au terminal:
cd / développeur / 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.
Pour le moment, nous avons restauré le support complet de GCC 4.0, à l'exception du fait que GCC 4.0 n'est toujours pas sélectionnable dans Xcode4. C'est parce que Xcode4 n'a plus de plug-in de compilateur GCC 4.0. Heureusement, le plug-in Xcode3 fonctionne également dans Xcode4, seule la position a radicalement changé. Apple cache maintenant ces plug-ins profondément dans un bundle et seuls les plug-ins semblent fonctionner, les placer dans leur ancienne position semble n'avoir aucun effet.
cd / Développeur / Bibliothèque / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Contents / SharedSupport / Developer / Library / Xcode / Plug-ins
sudo ln -s "/ Xcode3 / Bibliothèque / Xcode / Plug-ins / GCC 4.0.xcplugin".
Maintenant, lancez à nouveau Xcode4, ouvrez un projet et essayez de sélectionner le compilateur. Vous devriez avoir GCC 4.0 sur la liste. Maintenant, vous pouvez déjà sélectionner SDK 10.4 ou 10.5, GCC 4.0 et vous ne devriez avoir aucun problème pour construire un binaire PPC. Sélectionnez simplement « Autre ... » pour le paramètre de construction « Architecture » et entrez manuellement « ppc », puis modifiez « Architectures valides » pour inclure également « ppc ». Nous avons presque terminé, sauf qu'essayer de construire un binaire PPC en utilisant GCC 4.2 et SDK 10.5 échouera toujours.
Étape 5: Restauration du support PPC pour GCC 4.2
Étant donné qu'Apple ne prend en charge que les plates-formes Intel dans Xcode4, tous les outils GCC 4.2 n'ont pas été construits avec le support PPC. Il y a un outil important qui n'a pas de support PPC, l'outil est nommé " as " et c'est l'assembleur GNU. Pour compiler les binaires ppc / ppc64 avec GCC 4.2, nous devons utiliser une version " as " avec le support ppc / ppc64. C'est le seul et unique fichier (en fait c'est aussi un lien symbolique) que nous devons d'abord écarter (faire une copie de sauvegarde) avant de pouvoir le remplacer par un lien symbolique:
cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv comme as.bak
sudo ln -s / Xcode3 / usr / bin / as.
Étape 6: Il n'y a pas d'étape 6
Ce sont tous des gens. Compte tenu de la facilité avec laquelle cela a été, vous pouvez imaginer qu'Apple n'a certainement pas abandonné le support SDK 10.4 / 10.5 ou ppc / ppc64 ou GCC 4.0 parce que c'était une nécessité, ils ont abandonné tout cela parce qu'ils voulaient le supprimer.
J'espère que cette configuration fonctionnera aussi bien pour vous que pour moi. J'ai pu compiler tous mes anciens projets dans Xcode4 sans aucun changement majeur, à part devoir modifier un chemin de recherche ici et là.
PS:
Cela peut sembler étrange que je réponde à ma propre question ici, mais depuis que j'ai découvert comment résoudre ce problème tout seul, j'aimerais partager mes connaissances avec la communauté, car je pense que c'est une contribution vraiment précieuse pour tous les développeurs MacOS là-bas. Cette question a été posée tant de fois dans tant d'endroits et jusqu'à présent, je n'ai jamais vu personne proposer une solution similaire. Partagez la richesse, diffusez les connaissances et ainsi de suite, vous voyez ce que je veux dire.
Si vous avez toujours des problèmes / questions:
Si vous avez des questions supplémentaires concernant ce sujet ou si vous rencontrez toujours des problèmes pour construire correctement vos anciens projets, veuillez faire ce pour quoi Stack Overflow a été conçu: Cliquez sur "Poser une question" dans le coin supérieur droit de cette page et créez une nouvelle question . De cette façon, toute la communauté peut vous aider à résoudre ces problèmes, car les problèmes peuvent ne pas être directement (peut-être même pas indirectement) liés à ce hack.
Je vous recommanderais de mentionner le fait que vous avez appliqué ce hack au tout début de votre question. Peut-être souhaitez-vous même créer un lien direct vers cette question, afin que les personnes qui n'ont jamais entendu parler de ce piratage puissent facilement la rechercher. Sinon, la plupart des gens seront plutôt confus lorsque vous mentionnerez SDK 10.4 / 10.5, PPC ou GCC 4.0 en combinaison avec Xcode4, qui ne prend officiellement en charge ni l'un ni l'autre. Vous pourriez obtenir des commentaires plutôt stupides au lieu de réponses décentes si vous oubliez de mentionner ce hack.
Veuillez vous abstenir de publier vos questions ou problèmes ici sous forme de réponses ou de commentaires. Les publier en tant que réponses n'a aucun sens car il ne s'agit pas de réponses et il n'y a aucun moyen de vous répondre, sinon en utilisant des commentaires, et les commentaires peuvent ne pas offrir suffisamment de place pour une réponse décente à votre question ou une solution décente à votre problème. Et les publier en tant que commentaires signifie que vous êtes limité à très peu de place et le suivi des commentaires de réponse sera difficile car les commentaires n'ont pas de hiérarchie arborescente (en outre, ils offriront encore peu de place pour des réponses / solutions décentes). Je vous remercie.
Bien sûr, d'autres types de commentaires ainsi que de meilleures réponses à la question initiale sont toujours les bienvenus ;-)
for SRC_FILE in /Xcode3/usr/bin/*4.0*; do sudo ln -s "$SRC_FILE" .; done
peut être simplifiée àsudo ln -s /Xcode3/usr/bin/*4.0* .
Un autre moyen simple avec seulement Xcode4, Xcode3 n'est plus nécessaire.
MODIFIER:
Pour Xcode 4.1,
Vous ne pouvez utiliser gcc-4.2 que pour PowerPC. Et l'option «-isysroot /Developer/SDKs/MacOSX10.6.sdk» est requise, car le SDK 10.7 ne prend plus en charge PowerPC.
la source
J'ai rassemblé toutes les informations de cette page, des astuces Mac OS X, splhack.org, et les autres sources citées ici, et mis en place un ensemble de scripts BASH qui automatisent le processus de restauration du support PPC et GCC 4.0 en utilisant soit un Installation de XCode 3 ou uniquement des fichiers de plate-forme iPhone de XCode 4.
Comme toujours, à utiliser avec prudence! et merci de contribuer à tout correctif ou amélioration. Ces scripts n'ont été testés que sur mon propre système à partir de cette publication.
Vous pouvez les télécharger depuis GitHub:
la source
Si vous voulez que gcc fonctionne également à partir de la ligne de commande, (ainsi que ce qui précède), vous devrez également:
la source
Cela fonctionne toujours avec Xcode 4.3.2 de l'AppStore - la version où tout est autonome dans un bundle d'applications. Comme dans le conseil d'origine, installez d'abord Xcode 3.2.6 *, puis téléchargez Xcode 4 depuis l'AppStore. Ensuite, faites la magie des liens symboliques suivante:
Les deux dernières lignes renomment darwin10 en darwin11 dans le lien symbolique - j'imagine que les futures versions d'OS X nécessiteront une mise à jour appropriée.
Pour installer Xcode 3.2.x sur Lion, montez l'image disque Xcode, ouvrez Terminal, entrez les commandes (en utilisant bash, ou les commandes équivalentes si vous avez changé votre shell par défaut):
export COMMAND_LINE_INSTALL = 1 open "/ Volumes / Xcode et iOS SDK / Xcode et iOS SDK.mpkg"
Vous devrez également remettre l'horloge à une date antérieure au 31 mars 2012, sinon les certificats de sécurité échoueront à la validation lors de l'installation. Vous pouvez bien entendu modifier la date en toute sécurité après l'installation!
la source
Au cas où quelqu'un aurait besoin de restaurer d'anciens SDK et compilateur PPC dans Xcode 4.3 et 4.5, c'est un script que j'ai créé. Notez que vous devez définir le chemin d'accès au bundle d'applications Xcode et le chemin d'accès à l'installation de Xcode 3.2.6 au début du script.
Vous n'avez pas besoin de créer un lien symbolique avec le SDK 10.6 si vous utilisez Xcode 4.3 car il en est livré avec un.
De plus, le script ne restaure pas gcc 4.2 car il y a beaucoup de conflits de noms de fichiers faisant cela. Mon objectif est de restaurer le compilateur PPC et 4.0 me suffit.
la source
Frédéric Devernay a un projet GitHub appelé xcodelegacy qui fonctionne à pour moi sur Xcode 5.1.1, et nécessite très peu de travail pour le faire démarrer, juste un téléchargement.
En utilisant son projet, j'ai réussi à créer des binaires universels contenant à la fois les architectures ppc et i386 compilées avec le SDK 10.4 en utilisant GCC 4.0, le tout depuis Xcode 5.1.1 fonctionnant sur Yosemite.
J'ai vérifié moi-même que les binaires universels créés fonctionnent bien sur 10.5 Leopard et sur Yosemite lui-même.
Page d'accueil ici: http://devernay.free.fr/hacks/xcodelegacy
Projet de hub Git ici: https://github.com/devernay/xcodelegacy
la source
Il serait utile d'avoir un package pour simplement installer ces fichiers dans une implémentation XCode 4. (ou une archive tar).
FYI: 3.2.6 de Xcode3 n'inclut pas une architecture comme avec ppc. Mais j'avais une sauvegarde de Leopard sur mon ordinateur. Donc j'ai copié celui-là, semble fonctionner. (Utilisez / usr / libexec / gcc / darwin / ppc / as).
Considérant que gcc et as sont open source, les seuls éléments qui ne peuvent pas être redistribuables sont le plugin xcode et le SDK 10.4, n'est-ce pas?
la source