在我的设备上连接到 Realm 对象服务器时出现问题,但它在模拟器上可以正常工作。 它的返回错误:
Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server."
UserInfo={NSUnderlyingError=0x170255450 {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/tungvu/Desktop/Swift3Xcode8/RealmTask/RealmTask/ViewController.swift,
line 57
这是我连接到 Realm 对象服务器的函数:
SyncUser.logIn(with: .usernamePassword(username: username, password: password, register: false), server: URL(string : "http://127.0.0.1:9080")!) { (user, error) in
guard let user = user else {
fatalError(String(describing: error))
}
DispatchQueue.main.async {
// Open Realm
let configuration = Realm.Configuration(
syncConfiguration: SyncConfiguration(user: user, realmURL: URL(string: "realm://127.0.0.1:9080/~/realmtasks")!)
)
最佳答案
从外观上看,您使用的是本地主机 IP 地址 127.0.0.1
。虽然这将适用于与 Realm 对象服务器实例(即 iOS 模拟器)在同一设备上运行的应用程序,但您需要本地网络上机器的实际 IP 地址才能从单独的设备(如 iPhone)进行连接.
查找网络 IP 地址的最简单方法是按住 Alt,然后单击 macOS 状态栏中的 Wi-Fi 图标:
如果将 127.0.0.1
替换为您 Mac 的网络 IP 地址,其他设备应该可以连接到它。这应该也适用于 iOS 模拟器,因此在您的计算机的 IP 地址更改之前不需要更改它。
关于swift - 在设备上运行时无法连接到 Realm 对象服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43435808/