【问题标题】:Migration to Swift 4 from Swift 3.2 giving "failed to import bridging header " error从 Swift 3.2 迁移到 Swift 4 给出“未能导入桥接头”错误
【发布时间】:2017-07-24 07:16:07
【问题描述】:

由于苹果已经发布了支持 Swift 4.0 的 Xcode 9 beta 版本。我一直在尝试将我的代码从 Swift 3.2 升级到 Swift 4.0。但它一直给我failed to import bridging header 错误,而我的项目构建成功。

Xcode 错误详情:

转换为当前的 Swift 语法失败

在尝试迁移之前,请确保所有选定的目标都使用当前配置的 Swift 版本成功构建。

有没有人在将代码库升级到 swift 4 时遇到过类似的错误。

【问题讨论】:

  • 我删除了NAME.xcworkspace 并使用“pod install”重新生成,然后它就可以工作了。

标签: ios swift4 xcode9


【解决方案1】:

我在我的一个项目中遇到了类似的问题,接下来我是如何解决的:

我发现 CocoaPods 是问题所在。

  1. 我从我的项目中删除了 CocoaPods(如果你不知道怎么做,请查看How to remove CocoaPods from a project?

  2. 不要忘记,如果你有单元和 ui 测试,你也必须从上面的链接中重复第四步。

  3. 将您的代码库升级到 Swift 4

  4. 再次安装 pod,您就完成了。

希望对你有帮助:)

【讨论】:

  • 我有这个问题,即使我不使用 CocoaPods
  • 确保在删除之前将 podfile 存储在一个位置。
  • "pod deintegrate" 完成这项工作!
【解决方案2】:

对我们来说有效的是删除 UnitTest 和 UITests

点击你的项目,然后“右键单击” -> 删除两个依赖项

希望对你有帮助

【讨论】:

    【解决方案3】:

    对我来说,我从 3.2 迁移到 4.0 失败,然后当我尝试编辑 > 转换 > 到当前 Swift 语法时总是收到此错误消息...

    我的修复很简单,将项目设置的 swift 版本从 4.0 设置回 3.2 或您使用的任何版本。

    这是因为虽然第一次迁移失败,但 Xcode 已经在你的项目设置中将 swift 版本更改为 4.0。

    【讨论】:

      【解决方案4】:

      确保所有目标都能编译,包括测试。从项目中删除 Cocoapods 后删除 NAME.xcworkspace

      这为我解决了这个问题。

      【讨论】:

        【解决方案5】:

        可能您在桥接头文件中放置的至少一个目标 c 类未编译 - 注释掉桥接头文件中的所有条目,然后编译 - 它现在应该能够导入桥接头,但是由于找不到类,课程会产生很多错误。现在逐行取消注释以找出导致导入失败的行,然后修复这些文件。

        【讨论】:

          【解决方案6】:

          在我的项目的构建设置和所有目标中更改Swift语言版本后,我不得不在AppDelegate.swift 到:

          func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true }

          【讨论】:

            【解决方案7】:

            我所有的代码都在 Swift 5 中,除了我的一个 Pod 几年没有更新。该吊舱使用 Swift 4。

            当我添加一个新的 Swift5 pod 时,我发生了这个错误。

            所以,我需要做的就是:

            1. 更改受影响 Pod 的 Swift 版本以匹配项目的其余部分

            1. 清理项目

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-07-31
              • 1970-01-01
              • 2016-09-03
              • 2015-11-03
              • 1970-01-01
              • 1970-01-01
              • 2016-03-17
              • 1970-01-01
              相关资源
              最近更新 更多