【问题标题】:Realm app working on the simulator but not on an actual deviceRealm 应用程序在模拟器上工作,但不在实际设备上
【发布时间】:2016-10-28 01:18:28
【问题描述】:

当我在 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 是打算在开发时在实际设备上工作还是只在模拟器上工作?

【问题讨论】:

  • 您遇到服务器错误连接,请检查 IP 地址。从您的代码中,我了解到您正在尝试连接到 IP 127.0.0.1。它可能适用于您的模拟器。在设备上运行时,localhost,相当于 127.0.0.1 就是设备本身。您的设备中没有运行任何服务器。这就是为什么您没有收到回复。
  • 好的,谢谢。所以我必须设置一个已部署的领域服务器才能在设备上进行测试?
  • 没错,你应该部署你的服务器并更改指向它的IP。
  • 谢谢!现在正在努力。

标签: realm realm-mobile-platform


【解决方案1】:

奥兰多所说的是正确的。在 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 代码检测到它不是为模拟器构建时,该变量会在 Realm 代码中使用。

【讨论】:

  • 这为我修复了它,请注意...您需要使用 Mac 的 IP 地址更新这两行以正确连接您的设备...SyncUser.logIn(with: .... and同步配置:同步配置(...
  • @TiM 不错!谢谢。
猜你喜欢
  • 2018-01-29
  • 1970-01-01
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
相关资源
最近更新 更多