Apple已发布支持Swift 4.0的Xcode 9 beta版。我一直在尝试从Swift 3.2升级我的代码到Swift 4.0。但它不断给我failed to import bridging header
错误,而我的项目成功构建。
Xcode错误详情:
转换为当前Swift语法失败
在尝试迁移之前,请确保使用当前配置的Swift版本成功构建所有选定目标。
在将代码库升级到swift 4时,是否有任何人遇到类似错误。
答案 0 :(得分:5)
我的一个项目中遇到了类似的问题,接下来我解决了这个问题:
我发现CocoaPods就是问题所在。
我从我的项目中移除了CocoaPods(如果你不知道如何检查这个How to remove CocoaPods from a project?)
别忘了如果你有单位& ui测试你必须从它们上面的链接重复第4步。
将您的代码库升级到Swift 4
再次安装pod,您就完成了。
希望有所帮助:)
答案 1 :(得分:0)
确保编译所有目标,包括测试。从项目中删除Cocoapods后删除NAME.xcworkspace
这为我解决了。
答案 2 :(得分:0)
对我来说,我从3.2迁移到4.0失败了,当我尝试编辑>时,我总是收到此错误消息转换>当前的Swift语法......
我的修复很简单,将项目设置的快速版本从4.0设置回3.2或者您使用的任何版本。
这是因为虽然第一次迁移失败,但Xcode已在项目设置中将swift版本更改为4.0。
答案 3 :(得分:0)
您在桥接头文件中放置的至少一个目标c类可能没有编译 - 在桥接头文件中注释掉所有条目,然后编译 - 它应该能够立即导入桥接头,但是因为找不到类,会产生很多错误。现在逐个取消注释这些行,找出哪些导致导入失败,然后修复这些文件。
答案 4 :(得分:0)
在项目的构建设置和所有目标中更改 Swift语言版本之后,我不得不在中更改此函数声明> AppDelegate.swift 至:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
}
答案 5 :(得分:0)
对我们来说,有效的方法是删除UnitTest和UITests
点击项目,然后单击“右键”->删除两个依赖项
希望有帮助
答案 6 :(得分:0)