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