web-dev-qa-db-fra.com

Comment pointer Xcode vers un ancien SDK pour qu'il puisse être utilisé comme "SDK de base"?

Configuration de mon Mac:

Volume A:
OS X 10.8
Xcode 4.5 ou version ultérieure - SDK 10.6 N'EST PAS disponible en tant que SDK de base

Volume B:
OS X 10.7
Xcode 4.3.3 - 10.6 SDK [[# # ~] est [~ # ~] disponible en tant que SDK de base

Volume C:
OS X 10.6
SDK Xcode 4.2 - 10.6 EST disponible en tant que SDK de base


Sur le volume A, j'ai installé Xcode 4.5, qui n'inclut pas le SDK 10.6 en tant que "SDK de base" disponible dans les paramètres de construction de mes cibles de build.

J'ai un volume 10,6 séparé et un volume 10,7 sur ce disque dur - tous deux sur lesquels Xcode est installé, et tous deux me permettent de sélectionner le SDK 10.6 comme SDK de base dans les paramètres de construction de mes cibles de construction Xcode.

Je sais que le SDK 10.6 est installé sur le volume C (à /Developer/SDKs d'une ancienne installation de Xcode).

Comment puis-je pointer Xcode sur le volume A vers le SDK 10.6 qui vit sur le volume C?

33
Todd Ditchendorf

Vous devrez ajouter un lien symbolique à l'ancien SDK (c'est généralement plus facile que de copier).

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
ln -s /path/to/old/SDK .

Cela fonctionne bien à 10,5. Au-delà, les choses deviennent un peu plus compliquées ...

Bien qu'il n'y ait aucune promesse dans les futures versions de Xcode que cela sera pris en charge, j'ai discuté avec l'équipe Xcode à ce sujet et ils ne semblent pas désireux de le changer de sitôt.

Personnellement, je garde souvent/path/to/old/SDK dans un répertoire de premier niveau appelé/SDKs. De cette façon, chaque fois que je mets à niveau, il est facile de tout réparer.

EDIT: J'ai un script fix-xcode qui simplifie la réapplication de ce correctif à chaque mise à niveau de Xcode.


MISE À JOUR: Dans les versions modernes de Xcode (7.3+) pour utiliser des SDK plus anciens, éditez MinimumSDKVersion ici:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist
84
Rob Napier

Mauvaise approche. Vous ne "pointez" pas Xcode vers un SDK. Au lieu de cela, vous aurez plus de chance de copier le SDK dans le dossier "SDK" approprié pour l'installation de Xcode. Dans les installations Xcode modernes, c'est généralement:

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

Copiez le SDK dedans, quittez et redémarrez Xcode et voyez ce que vous trouvez.

(en lisant l'autre réponse ici, je pense que la liaison symbolique pourrait être une option si vous êtes déterminé à conserver le SDK d'origine ailleurs)

20
danielpunkass

Résolu en naviguant vers l'ancienne version Xcode.App/Developer/platforms et copiez le SDK iOS 6.1 dans le même dossier de XCode 5.

0
Guesto

Pourquoi ne pas simplement relier symboliquement les SDK? "ln -s"? Si cela ne fonctionne pas, un piratage de plist sera nécessaire.

0
Byron