Подтвердить что ты не робот

В чем причина того, что WatchKit2 код ошибки 7007 "сеанс на сопряженном устройстве недоступен"

Я разрабатываю взгляд для своего приложения Apple WatchOS2. В настоящее время я не совсем понял предварительные требования для стабильного соединения WatchConnectivity. У меня странная ситуация, что в симуляторе мой ComplicationController мог успешно выполнить запрос sendMessage. Когда я пытаюсь взглянуть на свой взгляд, запрос sendMessage завершился с:

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

Я должен признать, что я не запускал свое приложение на симуляторе. Но почему связь ComplicationController и WatchController не будет. И я не нашел объяснений об ошибке 7007 в Интернете.

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)") } )
}

В настоящее время я развиваюсь с помощью WatchOS2 Beta 5 и iOS 9 Beta 5. Я полностью осознаю, что это бета-версия, но это последняя бета-версия до выпуска.

4b9b3361

Ответ 1

Убедитесь, что отладчик подключен только к приложению Watch, а приложение iPhone запускается непосредственно с симулятора.

Итак, запустите приложение iPhone, чтобы иметь последний код, а затем остановите выполнение. Затем запустите приложение Watch и откройте iPhone-симулятор и откройте приложение для iPhone. После запуска обоих приложений (с отладчиком, прикрепленным только к приложению "Наблюдение" ) обратный вызов ошибки sendMessage:replyHandler:errorHandler: не должен вызываться и сообщение должно успешно отправляться.

Ответ 2

Попробуйте использовать

WCSession.defaultSession().reachable

чтобы проверить, достижимо ли это.

Цель C [WCSession.defaultSession] isReachable].

Если он вернет false/NO, выберите Отладка → Прикрепить к процессу, затем найдите приложение, которое хотите присоединить, затем выберите его, должно работать.