Len*_* P. 10 xcode realm swift swift4 xcode9-beta
我正在尝试在新的Xcode 9测试版中运行我当前的项目,但是当我这样做时它会说Module compiled with Swift 3.1 cannot be imported in Swift 4.0.我怎么解决这个问题?我不是在使用cocoapods.
bda*_*ash 15
更新:自2017年3月14日发布的v2.10.1起,Realm的预构建二进制文件包括使用Xcode 9为Swift 3.2和4.0构建的框架.不再需要自己构建它们.
以下信息仍然与希望将来使用Realm与Xcode的预发行版本的任何人相关.
如果您当前正在集成Realm的预构建二进制文件,则需要从源代码切换到构建Realm以支持Swift 3.2和4.0,因为Realm不会为Xcode的预发布版本发布预构建的二进制文件.您可以通过以下三种方式之一从源构建Realm:
使用CocoaPods.
CocoaPods总是从源代码构建依赖项.
使用迦太基.
默认情况下,Carthage将尝试下载预构建的二进制文件,但如果预构建的二进制文件用于与正在使用的Xcode版本不同的Swift版本,则将从源代码回退.
从源手动构建Realm,然后像构建Realm提供的预构建二进制文件一样集成构建的框架.
你可以通过从Git中签出一个发布标签来做到这一点:
git clone --recursive https://github.com/realm/realm-cocoa.git
cd realm-cocoa
git checkout v2.10.0
Run Code Online (Sandbox Code Playgroud)
然后运行以下命令中的任何一个对应于您关心的平台,以构建该平台的Realm Swift框架:
REALM_SWIFT_VERSION=4.0 sh build.sh ios-swift
REALM_SWIFT_VERSION=4.0 sh build.sh osx-swift
REALM_SWIFT_VERSION=4.0 sh build.sh watchos-swift
REALM_SWIFT_VERSION=4.0 sh build.sh tvos-swift
Run Code Online (Sandbox Code Playgroud)
构建的框架将放置在buildRealm源中的目录中,然后您可以像在Realm提供的预构建二进制文件中那样集成它们.
这些构建的框架也应该与使用Swift 3.2的应用程序一起使用,因为它使用与Swift 4.0相同的编译器.