2015-09-05 7 views
12

Ich entwickle einen Blick für meine Apple WatchOS2 App. Ich habe die Voraussetzungen für eine stabile WatchConnectivity-Verbindung derzeit nicht vollständig verstanden. Ich habe die merkwürdige Situation, dass mein ComplicationController im Simulator erfolgreich eine sendMessage-Anfrage stellen konnte. Wenn ich versuche, auf meinen Blick zu sehen, konnte die nachrichts Anfrage mit:Was ist der Grund für WatchKit2 Fehlercode 7007 "Sitzung auf gepaartes Gerät ist nicht erreichbar"

Error Domain=WCErrorDomain Code=7007 
"WatchConnectivity session on paired device is not reachable." 
UserInfo={NSLocalizedDescription=WatchConnectivity session 
on paired device is not reachable. 

Ich muss zugeben, dass ich nicht meine app auf dem Simulator starten. Aber warum konnte der ComplicationController kommunizieren und der WatchController nicht. Und ich habe keine Erklärung für den Fehler 7007 im Internet gefunden.

override func awakeWithContext(context: AnyObject?) { 
    super.awakeWithContext(context) 

    WCSession.defaultSession().sendMessage(["request": "getGlancesImages" ], replyHandler: { 
     (result) -> Void in 
      self.processGetGlancesImages(result) 
     }, errorHandler: { NSLog("WatchGlanceController2. \($0.description)") }) 
} 

ich derzeit mit WatchOS2 Beta 5 und iOS 9 Beta 5. Ich bin mir voll bewusst bin entwickeln, ist dies eine Beta, aber dies ist die letzte Beta vor der Freigabe.

+0

1. Es gibt immer noch eine GM-Version, und 2. Haben Sie versucht, neu zu starten? –

+1

Ein Apple-Mitarbeiter antwortete [hier] (https://forums.developer.apple.com/message/42860#42860) und sagte, dass es einige Korrekturen geben wird, die zu WCSession und seiner Erreichbarkeit kommen, wenn die WK-Erweiterung für ein flüchtiges Update läuft in einem zukünftigen Seed/release – ccjensen

+0

Ok, vielleicht sollte ich Geduld mit Apple haben und mit meiner aktuellen Strategie von Workarounds fortfahren. – ChaosSpeeder

Antwort

6

Stellen Sie sicher, dass der Debugger nur an die Watch App angeschlossen ist und die iPhone App direkt vom Simulator ausgeführt wird.

Also, führen Sie die iPhone App, um den neuesten Code zu haben, dann stoppen Sie die Ausführung. Als nächstes starten Sie die Watch App und öffnen Sie den iPhone Simulator und öffnen Sie die iPhone App. Nachdem beide Apps gestartet wurden (der Debugger wurde nur an die Watch-App angehängt), sollte der Fehler-Callback nicht aufgerufen werden und die Nachricht sollte erfolgreich gesendet werden.

0

Try

WCSession.defaultSession().reachable

in swift zu verwenden, um zu überprüfen, ob es erreichbar ist.

Ziel C[WCSession.defaultSession] isReachable].

Wenn es zurückgeben false/NODebug wählen -> Anhängen zu verarbeiten, dann finden Sie die Anwendung, es befestigen wollen, dann wählen, sollte funktioniert.

Verwandte Themen