35

我的 Mac 设置:

A 卷
OS X 10.8
Xcode 4.5 或更高版本 - 10.6 SDK作为基础 SDK 提供

B 卷
OS X 10.7
Xcode 4.3.3 - 10.6 SDK可用作基础 SDK

C 卷
OS X 10.6
Xcode 4.2 - 10.6 SDK作为基础 SDK


在 A 卷上,我安装了 Xcode 4.5,它不包括 10.6 SDK 作为我的构建目标的构建设置中的可用“基础 SDK”。

我在这个硬盘驱动器上有一个单独的 10.6 卷和 10.7 卷 - 两者都安装了 Xcode,并且两者都允许我在我的 Xcode 构建目标的构建设置中选择 10.6 SDK 作为基础 SDK。

我知道我在 Volume C 上安装了 10.6 SDK(/Developer/SDKs来自较旧的 Xcode 安装)。

如何将 Volume A 上的 Xcode 指向 Volume C 上的 10.6 SDK?

4

4 回答 4

85

您需要向旧 SDK 添加符号链接(这通常比复制更容易)。

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

这可以很好地回到 10.5。除此之外,事情变得有点复杂......

虽然在未来的 Xcode 版本中没有承诺会支持这一点,但我已经与 Xcode 团队讨论过它,他们似乎并不热衷于很快改变它。

就我个人而言,我经常将 /path/to/old/SDK 保存在名为 /SDKs 的顶级目录中。这样每次我升级时都很容易修复所有问题。

编辑:我有一个fix-xcode脚本,可以简化每次 Xcode 升级时重新应用此修复程序的过程。


更新:在现代版本的 Xcode (7.3+) 中使用旧版 SDKMinimumSDKVersion在此处编辑:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist
于 2012-07-11T03:06:38.163 回答
21

错误的做法。您不会将 Xcode“指向”SDK。相反,将 SDK 复制到 Xcode 安装的相应“SDKs”文件夹中会更好。在现代 Xcode 安装中,这通常是:

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

将 SDK 复制到那里,退出并重新启动 Xcode,看看你会发现什么。

(在这里阅读另一个答案,我认为如果您对将原始 SDK 保留在其他地方一事无成,那么符号链接可能是一种选择)

于 2012-07-11T03:04:46.323 回答
0

为什么不只是符号链接 SDK 的?“ln -s”?如果这不起作用,则需要进行一些 plist hacking。

于 2012-07-11T03:05:01.897 回答
0

通过浏览到旧版本 Xcode.App/Developer/platforms 并将 iOS 6.1 SDK 复制到 XCode 5 的同一文件夹中来解决。

于 2014-02-03T10:31:50.583 回答