2016-10-28 15 views
1

Когда я запускаю демонстрационное приложение Realm (link) на симуляторе XCode, он работает так, как ожидалось. Я получаю следующее сообщение об ошибке, когда я пытаюсь запустить его на моем привязанного устройства (экран разблокирован):Приложение Realm работает на симуляторе, но не на самом устройстве

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

Вы получаете подключение к серверу, проверьте IP-адрес. Из вашего кода, который я получаю, вы пытаетесь подключиться к IP 127.0.0.1. Он может работать на вашем симуляторе. При работе на устройстве локальным хостом, эквивалентным 127.0.0.1, является само устройство. У вас нет серверов, работающих в устройстве. Вот почему вы не получаете ответа. – Orlando

+0

Хорошо спасибо. Итак, мне нужно настроить развернутый сервер Realm для тестирования на устройстве? – grabury

+1

Правильно, вы должны развернуть свой сервер и изменить IP-адрес на него. – Orlando

ответ

2

Что Орландо сказал правильно. При запуске локального экземпляра Realm Object Server на вашем Mac вам просто нужно установить IP-адрес в вашем демонстрационном приложении на «localhost» или «127.0.0.1». Но при развертывании на реальном устройстве вам необходимо указать IP-адрес Mac в локальной сети, чтобы устройство подключилось к нему. Вы можете легко найти это, нажав «Alt» и нажав на значок WiFi на системной панели вашего Mac.

Ручное изменение IP-адреса между симулятором и сборкой устройств является утомительным, поэтому, если вы хотите узнать, как мы это сделали в Realm Tasks demo app.

При создании приложения выполняется сценарий (в разделе «Построить фазы» проекта), который будет захватывать IP-адрес Mac, а затем записывать его в файл Swift как переменную String. Затем эта переменная используется в коде Realm, когда обнаруживает, что она не создается для симулятора.

+0

Это исправлено для меня, просто отметьте ... вам нужно обновить обе эти строки с помощью IP-аддонов вашего Mac для правильного подключения вашего устройства ... SyncUser.logIn (с: .... и syncConfiguration: SyncConfiguration (... –

+0

@TiM приятный! Thx. – oyalhi

Смежные вопросы