Realm app在模拟器上工作但不在实际设备上工作

时间:2016-10-28 01:18:28

标签: realm realm-mobile-platform

当我在XCode模拟器上运行Realm演示应用程序(link)时,它按预期工作。当我尝试在我的系留设备上运行它时,我得到以下错误(屏幕已解锁):

fatal error: Optional(Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={NSUnderlyingError=0x1740467b0 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://127.0.0.1:9080/auth, NSErrorFailingURLKey=http://127.0.0.1:9080/auth, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=61, NSLocalizedDescription=Could not connect to the server.}): file /Users/grant/Apps/RealmTasksTutorial/RealmTasksTutorial/ViewController.swift, line 47
2016-10-28 11:16:59.148862 RealmTasksTutorial[1930:429715] fatal error: Optional(Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={NSUnderlyingError=0x1740467b0 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://127.0.0.1:9080/auth, NSErrorFailingURLKey=http://127.0.0.1:9080/auth, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=61, NSLocalizedDescription=Could not connect to the server.}): file /Users/grant/Apps/RealmTasksTutorial/RealmTasksTutorial/ViewController.swift, line 47
(lldb) 

Realm是否意味着在开发或仅使用模拟器时在实际设备上工作?

1 个答案:

答案 0 :(得分:2)

奥兰多所说的是正确的。在Mac上运行Realm Object Server的本地实例时,只需将演示应用程序中的IP地址设置为“localhost”或“127.0.0.1”即可。但是,在部署到实际设备时,您需要在本地网络上提供Mac的IP地址,以便设备连接到该设备。您可以通过按住“Alt”并单击Mac系统栏中的WiFi图标轻松找到此信息。

手动更改模拟器和设备构建之间的IP地址非常繁琐,所以如果您想查看我们是如何在Realm Tasks demo app中完成的。

在构建应用程序时,运行一个脚本(在项目的“构建阶段”),它将获取Mac的IP地址,然后将其作为String变量写入Swift文件。然后,当它检测到它不是为模拟器构建时,在Realm代码中使用该变量。