【问题标题】:How can I use Realm with newly released versions of Xcode that include new versions of Swift?如何将 Realm 与包含新版本 Swift 的新发布的 Xcode 版本一起使用?
【发布时间】:2017-06-14 16:45:26
【问题描述】:

我上周刚刚更新到 Xcode 9,我一直在寻找解决此错误的方法:

使用 Swift 3.1 编译的模块无法在 Swift 4.0 中导入

每次发布​​包含新版本 Swift 的新版本 Xcode 时,我都必须等待 RealmSwift 项目更新才能构建和运行我的项目。我知道这与 Swift 的 ABI 稳定性有关,但我也看到其他人似乎知道如何解决这个问题,直到 Realm 的兼容版本问世。目前,我正在运行 2.8.0,这是昨晚的当前版本。我选择的依赖管理器是 Carthage,但类似的问题通常涉及 CocoaPods,这对我没有多大帮助。

任何人都可以为像我这样不熟悉的人提供一些明确的说明,以便我现在可以继续我的项目以及将来的版本出来时吗?谢谢。

【问题讨论】:

  • 我想在 WWDC 上他们提到 swift 4 与 swift 3 兼容。也许这是您需要在 Xcode 中修复的设置?
  • 您是在使用 CocoaPods、Carthage、下载预构建的二进制文件,还是从源代码构建 Realm?
  • 观看 WWDC 会议时,我注意到 Swift 4 大部分与 Swift 3 兼容,而 Swift 3.2 促进了这种迁移。出于这个原因,我想知道使用旧版本的 RealmSwift 和新的 Xcode 版本是否会比过去更容易。 @史蒂夫
  • 我正在使用 Carthage,但如果它更容易,我很想了解如何从源代码构建。 @AustinZ
  • Realm-cocoa 2.8.1 应该支持 Xcode 9 吗?

标签: swift xcode realm


【解决方案1】:

当使用没有预构建二进制文件的测试版 Xcode 时,您需要将 --no-use-binaries 传递给 carthage bootstrap,以便 Carthage 从源代码构建所有依赖项。

【讨论】:

  • 我尝试了你的建议,一切都很顺利,直到我得到这个:“警告:编译期间未使用的参数:'-iapinotes-modules [...]watchos/armv7k'”我应该尝试构建使用“--platform iOS”?原谅我,我是新手。
  • 我试过了,carthage 构建得很好,但 xcode 仍然给出同样的错误。想我错过了什么?
  • 在命令行上构建时使用xcode-select选择使用哪个版本的Xcode。
猜你喜欢
  • 2020-08-02
  • 2017-12-09
  • 2018-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-10
相关资源
最近更新 更多