问题 在10.9上编译Swift?


直到今天下午,当我下载最终的Xcode 6时,我才能在我的10.9机器上玩Swift。现在我收到此错误:

OS X targets using Swift cannot be built against an SDK older than 10.10, but the effective SDK is 10.9.

我保存了我的Xcode 6B7副本,但现在在该版本中打开项目也会导致同样的错误。

任何人都有修复?我不想在这台机器上安装10.10。


10323
2017-09-11 02:07


起源

好吧,第一个问题是他们忘了将10.10 SDK放在Xcode包中。好一个苹果。您可以通过下载6.1 beta获取其中一个,然后将其复制。该应用程序现在编译。不幸的是,即使目标设置为10.9,它也不会运行应用程序,抱怨我的10.9.2机器超过10.9。 - Maury Markowitz


答案:


Xcode 6.0只支持在iOS上使用Swift。在此版本的Xcode中不支持使用Swift和Mac OS X,您需要获得Xcode 6.1 beta。之前的Xcode 6.0测试版支持Swift for OS X,但那是因为Xcode 6.1 beta当时没有出来。

从Xcode 6.0发行说明:

Swift对OS X的支持

*将与OS X Yosemite一起发布的未来Xcode版本将为OS X添加Swift支持,包括游乐场和REPL。 Xcode中   6.0仅支持Swift for iOS项目和游乐场。 Xcode的测试版可以使用Swift支持OS X和iOS   在developer.apple.com/xcode/downloads/


8
2017-09-11 23:31





好的,所以这是独家新闻:

下载GM后,您将拥有一个无功能的Xcode,Apple忘记在应用程序包中包含sdk。所以现在你必须下载6.1 beta,显示包内容,然后转到文件夹:

/Volumes/Xcode/Xcode-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer

注意我已经从磁盘映像打开了应用程序包,因此是卷名。在SDKs文件夹中,您将找到MacOSX10.9.sdk和MacOSX10.10.sdk。通用汽车的发布在以后失踪了。所以,在桌面上制作一个方便的副本。

好的,现在在GM版本中找到相同的路径。我的应用程序文件夹中安装了Mine,所以它在这里:

/Applications/Xcode 6.app/Contents/Developer/Platforms/MacOSX.platform/Develope

您会注意到缺少MacOSX10.10.sdk文件夹。尼斯。好的,将测试版的版本复制到此文件夹中。

重启Xcode,打开你的项目并清理。现在看起来非常小心 一切 设置SDK或部署目标。 SDK必须是10.10,部署目标必须是10.9。这出现在几个屏幕上的许多地方,所以 仔细地看

编译并运行。并修复了我在B6和B7中在Xcode中看到的崩溃。


5
2017-09-11 12:10



Apple没有“忘记”。 Xcode 6最终版本不能包含10.10 SDK,因为它仍然是测试版。 - user102008
我对“为什么”作为“如何修复”并不那么感兴趣。 - Maury Markowitz
这是一个黑客。这很难说是“修复”。它将在修复和中断的某个地方。而一个没有理解“为什么”的黑客大多接近休息。 - Eonil