Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用旧的基本SDK的Xcode 8_Ios_Xcode8 - Fatal编程技术网

Ios 使用旧的基本SDK的Xcode 8

Ios 使用旧的基本SDK的Xcode 8,ios,xcode8,Ios,Xcode8,我在项目中使用的一些外部框架遇到了兼容性问题。有没有办法在Xcode 8上更改基本SDK?当前在项目设置中仅显示最新的SDK 我尝试将旧SDK从另一个版本的Xcode复制到此处,但没有成功: /Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ 从Xcode 7.3开始,除了在SDK中复制外,还必须编辑特定的Info.plist文件。看起来在iOS上也有类似的文件 Xcode.app/Contents/Developer/

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

我尝试将旧SDK从另一个版本的Xcode复制到此处,但没有成功:

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


从Xcode 7.3开始,除了在SDK中复制外,还必须编辑特定的Info.plist文件。看起来在iOS上也有类似的文件

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
尝试将其中的MinimumSDKVersion的值从10.0更改为所需的任何SDK版本

我没有在iOS上尝试过这一点,但是,通过这一解决方案,我刚刚能够使用Xcode 8.0(8A218a)(“GM”)用macOS 10.6构建一个macOS目标

更新


上面描述的黑客在Xcode 9中不再为我工作。如果您想使用Xcode 9+,请参阅我2017年11月22日的最新答案。

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

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

为了处理这个项目,我在旧的Xcode(可以用所需的SDK构建)和最近的Xcode中打开它。我将旧的Xcode窗口放在后台,并在最近的Xcode中进行工作。当我准备好测试更改时,我会执行文件>全部保存(⌥⌘S),然后切换到旧的Xcode并生成(⌘B)。构建完成后,我切换回最新的Xcode,产品>执行操作>不构建运行(⌃⌘R)。由于dSYM文件格式没有更改,断点按预期工作

优点是不需要对Xcode进行黑客攻击,幸运的是,我需要记住的关于旧Xcode(在我的例子中是Xcode 3)的唯一一件事是:⌘B

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


通过编写
xcodebuild
xcode select
命令行工具的脚本,工作流可能会变得更加简单,但这已经足够好了。随着苹果公司在今年的WWDC上宣布在未来两年内将不再支持32位Mac应用程序,我的客户在任何情况下都将面临一些艰难的决定。

我可以确认这对iOS也有效。请记住,如果要为模拟器构建,您需要为
iPhoneSimulator.platform
执行相同的步骤。这有助于我构建iOS 9.3版本,而不是带有Xcode 8的iOS 10版本。谢谢aa目标设备在列表中出现两次。。。但这就是解决办法anyway@JulianF.Weinert顶部的设备条目实际上是针对您的目标SDK构建的,底部的设备条目是针对最新的SDK构建的。DanM:我已经安装了Xcode 7.2.1和Xcode 8.2.1。我将Xcode 7.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk复制到Xcode 8.2.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.9.2.sdk,并将Xcode 7.2.1.app/Contents/Developer/Platforms/Platforms/Platforms/iPhoneSimulator/iphonesimula8.2.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/。我还修改了iPhoneOS.platform和iPhoneSimulator.platform下的2 Info.plist,最小版本为9.2。但在基本SDK中仍然看不到9.2。使用旧SDK的一个原因是为了避免苹果根据链接的SDK自动选择加入的假设。特别是因为这些假设通常很难找到,除了困难的方法。