2016-10-28 2 views
1

Wenn ich die Realm-Demo-App (link) auf dem XCode-Simulator ausführen, funktioniert es wie erwartet. Ich erhalte die folgende Fehlermeldung, wenn ich laufe versuchen, es auf meinem angebundenen Gerät (der Bildschirm entsperrt):Realm-App funktioniert auf dem Simulator, aber nicht auf einem tatsächlichen Gerät

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) 

Ist Realm gemeint auf einem Gerät zu arbeiten, wenn die Entwicklung oder nur den Simulator?

+1

Sie erhalten eine Serverfehlerverbindung, überprüfen Sie die IP-Adresse. Aus deinem Code geht hervor, dass du versuchst, dich mit der IP 127.0.0.1 zu verbinden. Es kann auf Ihrem Simulator funktionieren. Beim Ausführen auf dem Gerät ist der localhost, der 127.0.0.1 entspricht, das Gerät selbst. Sie haben keine Server auf dem Gerät ausgeführt. Deshalb bekommst du keine Antwort. – Orlando

+0

Ok danke. Also müsste ich einen bereitgestellten Realm-Server einrichten, um ihn auf einem Gerät zu testen? – grabury

+1

Das ist richtig, Sie sollten Ihren Server bereitstellen und ändern Sie die IP-Adresse darauf. – Orlando

Antwort

2

Was Orlando gesagt hat, ist richtig. Wenn Sie eine lokale Instanz von Realm Object Server auf Ihrem Mac ausführen, müssen Sie nur die IP-Adresse in Ihrer Demo-App auf "localhost" oder "127.0.0.1" einstellen. Bei der Bereitstellung auf einem tatsächlichen Gerät müssen Sie jedoch die IP-Adresse des Mac im lokalen Netzwerk angeben, damit sich das Gerät mit ihm verbinden kann. Sie können dies leicht finden, indem Sie "Alt" gedrückt halten und auf das WiFi-Symbol in der Systemleiste Ihres Mac klicken.

Das manuelle Ändern der IP-Adresse zwischen Simulator- und Geräte-Builds ist mühsam. Wenn Sie also herausfinden möchten, wie wir es in der Realm Tasks demo app gemacht haben.

Beim Erstellen der App wird ein Skript ausgeführt (in den 'Buildphasen' des Projekts), das die IP-Adresse des Macs abruft und sie dann in eine Swift-Datei als String-Variable schreibt. Diese Variable wird dann im Realm-Code verwendet, wenn sie feststellt, dass sie nicht für den Simulator erstellt wurde.

+0

Das hat es für mich behoben, nur zu beachten ... Sie müssen diese beiden Zeilen mit der IP-Adresse Ihres Mac aktualisieren, um Ihr Gerät richtig zu verbinden ... SyncUser.logIn (mit: .... und syncConfiguration: SyncConfiguration (...) –

+0

@ TiM nett! Thx. – oyalhi

Verwandte Themen