我如何将领域与Swift 4结合使用?

我如何将领域与Swift 4结合使用?,swift,xcode,realm,xcode9-beta,swift4,Swift,Xcode,Realm,Xcode9 Beta,Swift4,我试图在新的Xcode 9 beta版中运行我当前的项目,但是当我这样做时,它说用Swift 3.1编译的模块无法导入Swift 4.0。我怎样才能解决这个问题?我没有使用cocoapods。更新:从2017-09-14发布的v2.10.1开始,Realm的预构建二进制文件包括使用Xcode 9为Swift 3.2和4.0构建的框架。不再需要自己建造它们 下面的信息仍然与任何希望在将来将Realm与预发布版本的Xcode一起使用的人相关 如果您当前正在集成Realm的预构建二进制文件,则需要从

我试图在新的Xcode 9 beta版中运行我当前的项目,但是当我这样做时,它说用Swift 3.1编译的
模块无法导入Swift 4.0
。我怎样才能解决这个问题?我没有使用cocoapods。

更新:从2017-09-14发布的v2.10.1开始,Realm的预构建二进制文件包括使用Xcode 9为Swift 3.2和4.0构建的框架。不再需要自己建造它们

下面的信息仍然与任何希望在将来将Realm与预发布版本的Xcode一起使用的人相关


如果您当前正在集成Realm的预构建二进制文件,则需要从源代码切换到构建Realm,以支持Swift 3.2和4.0,因为Realm不会为Xcode的预发布版本发布预构建二进制文件。您可以通过以下三种方式之一从源代码构建领域:

  • 使用椰子荚

    CoCoapod总是从源代码构建依赖项

  • 使用迦太基

    默认情况下,迦太基将尝试下载预构建的二进制文件,但如果预构建的二进制文件与使用中的Xcode版本不同,则将退回到从源代码构建

  • 从源代码手动构建Realm,然后像集成Realm提供的预构建二进制文件一样集成构建的框架

    您可以通过从Git签出一个发布标签来实现这一点:

    git克隆——递归https://github.com/realm/realm-cocoa.git
    cd王国可可
    git checkout v2.10.0
    
    然后运行以下与您关心的平台相对应的命令,为该平台构建Realm Swift框架:

    REALM\u SWIFT\u VERSION=4.0 sh build.sh ios SWIFT
    REALM\u SWIFT\u VERSION=4.0 sh build.sh osx SWIFT
    REALM\u SWIFT\u VERSION=4.0 sh build.sh watchos SWIFT
    REALM\u SWIFT\u VERSION=4.0 sh build.sh tvos SWIFT
    
    构建的框架将被放置在Realm源代码中的
    build
    目录中,在那里您可以像集成Realm提供的预构建二进制文件一样集成它们

    这些构建的框架还应与使用Swift 3.2的应用程序配合使用,因为它使用与Swift 4.0相同的编译器


  • 作为bdash第3项关于如何从源代码手动构建领域的后续内容,以及回答addzo关于xcodebuild错误的问题(我也遇到了这个问题):确保为您的Xcode9设置了iPhone6模拟器以避免该错误。我认为Realm的构建脚本必须以它为目标。无论如何,这为我解决了问题。

    请你再解释一下第三个选项好吗?但非常感谢您的回复。您有什么特别需要我澄清的吗?该目录是在您运行
    sh build.sh ios swift
    或我列出的任何其他构建命令时创建的。如果您没有看到目录,我建议共享您在
    build.sh
    调用中看到的输出。我无法构建框架,因为它缺少一些源文件。签出领域源代码后,还有一个步骤要做。来自Realm docs:如果从git克隆,则需要子模块:git子模块更新--init--recursiveYes,Realm Swift与Swift 3.0以后的所有装运Swift版本的源代码兼容。此处仅为初学者,但如果在appdelegate文件中导入RealmSwift,则会出现该错误,如果从appdelegate文件中删除import RealmSwift,则错误会消失。您可以在其他相关文件中导入RealmSwift。我没有使用pods方法来合并RealmSwift,而是使用了Lynda.com中使用的框架拖放技术。很简单。