在更新到Xcode 9之后,我尝试构建我的一个项目。
我用FacebookLogin吊舱。我在FacebookLogin/LoginButton.Swiver中有一个编译器错误
@testable import FacebookCore
❌ Module compiled with Swift 3.1 cannot be imported in Swift 4.0在我的目标的构建设置中,Swift语言版本被设置为SWIFT3.2。

我想我需要等Facebook更新他们的吊舱?或者其他建议?
谢谢!
发布于 2017-08-01 10:11:19
更新:
解决方案也测试并在Swift 5和Xcode 11中工作。
原版:
我想补充的是,如果您正在使用Carthage编译SWIFT3.2中的一个模块,那么您应该到一个终端运行:
sudo xcode-select --switch /Applications/Xcode-beta.app/Contents/Developer要使用Xcode 9命令行工具,可以运行:
carthage update NameOfTheLibrary --platform iOS --no-use-binaries这将用当前的命令行工具编译库,它可能有点慢,但现在项目应该构建。
备注
要恢复和使用稳定的Xcode命令行工具,只需运行:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer发布于 2017-06-07 14:17:46
Xcode 9附带了一个Swift 4编译器,它既能理解Swift 3.2,也能理解swift 4,甚至可以让您在这两个版本之间进行混合和匹配。不幸的是,不支持其他版本。
即使您将语言设置为SWIFT3.2,它也使用Swift 4编译器.
如果使用cocoapods,可以将其添加到pod文件的末尾,以强制荚使用SWIFT3.2或4.0:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.2'
end
end
end或者,您可以暂时将从吊舱中的文件放到您的项目中,直到FacebookLogin被更新为SWIFT3.2或4。
注:根据马特的反馈编辑
发布于 2017-06-07 09:04:59
也许你能在建造目标之前把它清理干净。对我来说很好。
https://stackoverflow.com/questions/44399109
复制相似问题