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