2017-06-14 81 views
1

我上周刚刚更新到Xcode的9,我一直在寻找一种方式来解决这个错误:如何使用Realm与包含新版本Swift的Xcode新发布的版本?

Module compiled with Swift 3.1 cannot be imported in Swift 4.0

每次Xcode中的新版本发布,包括斯威夫特的新版本,我必须等待RealmSwift项目才能更新,以便构建和运行我的项目。我知道这与Swift的ABI稳定性有关,但我也看到其他人似乎知道如何解决这个问题,直到出现Realm兼容版本。目前,我正在运行2.8.0,这是昨天晚上发布的最新版本。我选择的依赖经理是迦太基,但类似的问题通常涉及CocoaPods,这对我无能为力。

任何人都可以为像我这样的陌生人提供一些明确的指示,所以我可以继续在我的项目上工作,当将来的版本出来时?谢谢。

+0

我以为在WWDC他们提到swift 4与swift 3兼容。也许这是您需要在Xcode中修复的设置? – Steve

+0

您是使用CocoaPods,Carthage,下载预构建的二进制文件还是从源代码构建Realm? – AustinZ

+0

在观看WWDC会议时,我注意到Swift 4与Swift 3基本兼容,并且Swift 3.2支持这种迁移。出于这个原因,我想知道使用旧版本的RealmSwift和新的Xcode版本是否会比过去更容易。 @Steve – blutie

回答

1

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

+0

我试过了你的建议,一切都很顺利,直到我得到这个:“警告:在编译期间未使用的参数:'-iapinotes-modules [...] watchos/armv7k'”我应该尝试使用“ - platform iOS” ?原谅我,我是新手。 – blutie

+1

我试过了,Carthage内置了它,但xcode仍然给出了相同的错误。想到我失踪了? – MadeByDouglas

+1

使用'xcode-select'来选择在命令行上构建时使用哪个版本的Xcode。 –

相关问题