Xcode 8与旧的基本SDK

我遇到了我在项目中使用的一些外部框架的兼容性问题。 有没有办法改变Xcode 8上的基础SDK? 目前在项目设置中只显示最新的SDK。

我已经尝试从另一个版本的Xcode复制旧的SDK到这里,但它没有工作:

/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

从Xcode 7.3开始,除了在SDK中复制之外,还必须编辑某个Info.plist文件, 如agx在post中为macOS所描述的那样 。 它看起来像有一个类似的文件的iOS,在

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist 

尝试将10.0中的MinimumSDKVersion的值更改为您想要的任何SDK版本。

我还没有尝试过这与iOS,但是,使用此解决方法,我只是能够使用Xcode 8.0(8A218a)(“GM”)与macOS 10.6构build一个macOS目标。

我的原始答案,虽然它与Xcode 8一起工作,但由于一些不值得解释的奇怪原因,不再适用于特定客户的旧项目中的Xcode 9。 所以我一直在使用另一个工作stream程,这真的不是太糟糕。

为了在这个项目上工作,我可以在旧的Xcode中打开它,它可以使用所需的SDK来构build它,也可以在最近的Xcode中打开。 我把旧的Xcode窗口放在后台,并在最近的Xcode中完成我的工作。 当我准备好testing更改时,我执行File > Save All⌥⌘S ),然后切换到旧的Xcode和Build⌘B )。 构build完成后,我切换回最近的Xcode和产品 > 执行操作 > 无build筑运行^⌘R )。 因为dSYM文件格式没有改变,断点按预期工作。

好处是不需要对Xcode进行黑客入侵,我唯一需要记住的就是旧的Xcode(在我的例子中是Xcode 3),仁慈地: ⌘B

一个小小的警告:在这个特定的项目的目标,在生成设置 ,它有一个自定义的生成产品path 。 这是Mac应用程序多年前build立的典型方式。 为确保您的两个Xcode都使用相同的产品,如果旧的和最近的Xcode横跨更改默认Build Product Path的版本,则可能需要设置Build Product Path

通过脚本编写xcodebuildxcode-select命令行工具,工作stream可能变得更加容易,但这已经足够了。 随着今年的WWDC上苹果公司宣布支持32位Mac应用程序将在未来两年内消失,我的客户无论如何都会面临一些艰难的决定。

您只需更改“部署目标”设置。 您基本上使用最新的可用SDK作为基础SDK,但select一个目标OS X版本。 当然这取决于你为什么要使用旧的SDK?