提问者:小点点

Xcode 8 Beta 3使用旧版Swift问题


我在Xcode8Beta3中有一个Objective-C项目。自更新以来,每当我尝试构建时,都会收到以下错误:

对于使用Swift的目标,需要正确配置使用遗留Swift语言版本(SWIFT_VERSION)。使用[编辑转换到当前Swift语法…]菜单选择Swift版本,或使用生成设置编辑器直接配置生成设置。

有人遇到过这个吗?因为它是一个Objective-C项目,所以没有构建设置来配置Swift。我还确保没有一个项目依赖项或CocoaPods使用Swift。我唯一的解决方案就是使用Beta2。你知道我该怎么解决这个问题吗?

我还应该提到我正在运行OSX10.12Beta2。


共3个答案

匿名用户

如果您正在使用CocoaPods,并且希望它在每次执行时自动修复,那么您可以在您的podfile末尾添加以下行:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '3.0'
        end
    end
end

编辑:如果您使用CocoaPods V1.1.1或更高版本,此问题现在已被修复。不要忘记从您的主要项目目标中删除设置。

匿名用户

我只是找到了一个修复的方法。

转到项目或库的生成设置,将Swift编译器版本属性“使用遗留Swift语言版本”从未指定设置为是或否。

匿名用户

我已经忽略了这个问题有一段时间了,只是在此期间致力于其他的事情--我终于找到了解决问题的方法。

因为我的项目是客观的,我想也许我正在使用的一个Pod正在使用Swift,我检查了每个Pod,没有一个是这样的。

最终的解决方案是,我的核心数据模型被设置为在Swift中生成代码,即使我一直在文件&>中手动生成它们;新建(&>;NSManagedObjectSubclass菜单。我要做的就是把它切换到objective-c。