如何将Xcode指向旧的SDK,以便它可以用作"基础SDK"?

Tod*_*orf 34 macos sdk xcode xcode4 xcode5

我的Mac设置:

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

卷B:
OS X 10.7
的Xcode 4.3.3 - 10.6 SDK IS可作为基地SDK

卷C:
OS X 10.6
的Xcode 4.2 - 10.6 SDK IS可作为基地SDK


在A卷上,我安装了Xcode 4.5,它不包含10.6 SDK作为Build Targets'Build Settings中可用的"Base SDK".

我在这个硬盘上有一个单独的10.6卷和10.7卷 - 两个都安装了Xcode,这两个允许我在Xcode Build Targets的Build Settings中选择10.6 SDK作为Base SDK.

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

如何将A卷上的Xcode指向存在于C卷的10.6 SDK?

Rob*_*ier 84

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

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
ln -s /path/to/old/SDK .
Run Code Online (Sandbox Code Playgroud)

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

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

我个人经常将/ path/to/old/SDK保存在名为/ SDKs的顶级目录中.这样每次我升级它都很容易解决所有问题.

编辑:我有一个修复xcode脚本,简化了每次Xcode升级时重新应用此修复程序.


更新:在现代版本的Xcode(7.3+)中使用较旧的SDK进行编辑MinimumSDKVersion:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist
Run Code Online (Sandbox Code Playgroud)

  • 这在Xcode5和iOS中对我很有用.我的步骤:进入Xcode5的SDK目录.添加旧SDK的符号链接,如下所示:`ln -s /Applications/Xcode4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk`使用此方法,Xcode在最新SDK旁边的列表中显示旧SDK的名称. (7认同)

dan*_*ass 21

错误的做法.你没有在SDK上"指出"Xcode.相反,您可以更好地将SDK复制到Xcode安装的相应"SDK"文件夹中.在现代Xcode安装中,这通常是:

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

将SDK复制到那里,退出并重新启动Xcode,看看你找到了什么.

(在这里阅读其他答案我认为,如果您将原始SDK保留在别处,那么符号链接可能是一个选项)

  • 我不同意 - 添加实际的 SDK 会导致重大升级。将较旧的 SDK 保留在根级别是一个更好、更稳定的长期选择。 (2认同)