【问题标题】:Module file was created by a newer version of the compiler模块文件是由较新版本的编译器创建的
【发布时间】:2017-06-11 02:15:38
【问题描述】:

我正在接手一个项目的开发工作,但无法联系到之前的开发人员。我试图弄清楚使用了哪些版本的嵌入式开源库。该项目似乎在 Swift 2.1 中。我正在尝试用 Xcode 7.3.1 编译它。 Carthage 是使用的包管理器。我遇到了 RealmSwift 的错误。错误发生在尝试导入 RealmSwift 的行。

/{app源路径}/PersonnelModel.swift:10:8: 模块文件已创建 通过较新版本的编译器:/{app source 路径}/Carthage/Build/iOS/RealmSwift.framework/Modules/RealmSwift.swiftmodule/x86_64.swiftmodule

我一直在努力回到 realm-cocoa 的 0.96.2 版本,我相信这是第一个支持 Xcode 7.1 和 Swift 2.1 的版本。但是,我仍然收到错误消息。

我已经查看了这里的其他答案,但没有找到可行的解决方案。我误解了错误的原因吗?我只是认为它正在选择更新版本的框架。

这是我的购物车文件的样子:

github "ReactiveCocoa/ReactiveCocoa"
github "Alamofire/Alamofire" ~> 3.4
github "SwiftyJSON/SwiftyJSON"
github "realm/realm-cocoa" == 0.96.2
github "scalessec/Toast-Swift" ~> 1.4.0

【问题讨论】:

  • 您是否尝试过使用 Xcode 8 构建您的应用程序?
  • @Grunt 是的。很多与 Swift 2.2/3.0 差异相关的错误。我最终将不得不迁移它,但现在只想获得一个干净的编译。
  • 仅仅因为你使用 Xcode 8 并不意味着你必须为 Swift 3 编译。
  • 如何让它在 Xcode 8 中编译为 Swift 2.2?它总是希望将代码更新为 Swift 3。
  • 当您打开项目时,会出现一个对话框,要求转换为 Swift 3。有一个稍后按钮。您不能在 Xcode 8 中构建 Swift 2.1,但升级到 2.3 应该很小。见thatthinginswift.com/swift-2-xcode-8

标签: ios swift xcode realm carthage


【解决方案1】:

我今天在 Xcode 8.3.2 w Swift 3 中遇到了这个问题。我错误地尝试在一个类文件上运行 swift 3 转换器并在运行中取消它。然后 Xcode 为我的一个 Pod(螺栓)抛出了这个错误。修复方法是移除 pod,运行 pod update,然后重新添加 pod,再次运行 pod update 以重置模块。

【讨论】:

    【解决方案2】:

    如果您现在只是想获得一个干净的编译,可能值得将 Realm 从 Carthage 中取出,手动将其安装为动态框架,然后在完成后将其放回 Carthage一切顺利。

    Xcode 7.3.1 是 Swift 2.2。支持 Swift 2.2 的 Realm 最新版本是 2.3.0 版本,所以我推荐 downloading that version 并手动将其导入 Xcode 7.3.1

    顺便说一句,Realm 从 2.4.0 版本开始不再支持 Swift 2,因此强烈建议您尽快将代码库迁移到 Swift 3。 :)

    【讨论】:

      猜你喜欢
      • 2015-09-17
      • 2016-08-08
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      • 2015-11-09
      • 2022-01-07
      相关资源
      最近更新 更多