Xcode 8与较旧的Base SDK

ton*_*k12 26 ios xcode8

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

我已经尝试将旧版SDK从另一个版本的Xcode复制到此处,但它不起作用:

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

Jer*_*ock 31

从Xcode 7.3开始,除了在SDK中复制之外,还必须编辑某个Info.plist文件,如此处所述的agx中的macOS所述.它看起来像是iOS的类似文件

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

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

我没试过iOS,但是,使用这种解决方法,我只能使用Xcode 8.0(8A218a)("GM")使用macOS 10.6构建macOS目标.

UPDATE

上面描述的hack在Xcode 9中停止了为我工作.如果你想使用Xcode 9+,请参阅2017年11月22日我最近的回答.


Jer*_*ock 8

我的原始答案虽然适用于Xcode 8,但由于一些不值得解释的奇怪原因,不再适用于特定客户端旧项目的Xcode 9.所以我一直在使用另一种非常糟糕的工作流程.

在这个项目上工作,我在打开这两个上了年纪的Xcode,它可以与所需的SDK构建它,并在最近的Xcode.我把旧的Xcode窗口放在后台,并在最近的Xcode中完成我的工作.当我准备好测试更改时,我会执行文件 > 全部保存(⌥⌘S),然后切换到旧的Xcode和Build(⌘B).构建完成后,我切换回最近的Xcode和Product > Perform Action > Run without Building(^⌘R).由于dSYM文件格式未更改,因此断点按预期工作.

优点是不需要对Xcode进行黑客攻击,我唯一需要记住的关于旧Xcode(在我的情况下是Xcode 3)的事情是,怜悯:⌘B.

一个小小的警告:在这个特定项目的Target中,在Build Settings中,它有一个自定义的Build Products Path.这是Mac应用程序多年前构建的典型方式.为了确保您的两个Xcode都使用相同的产品,如果旧的和最新的Xcode跨越了更改默认构建产品路径的版本,您可能需要设置构建产品路径.

通过编写脚本xcodebuildxcode-select命令行工具可以更轻松地完成工作流程,但这已经足够了.随着Apple在今年的WWDC上宣布支持32位Mac应用程序在未来两年内消失,我的客户在任何情况下都会做出一些艰难的决定.