Каква е самата причина за сесията с код за грешка 7007 на WatchKit2 на сдвоено устройство не е достъпна

Разработвам изглед с поглед за моето приложение Apple WatchOS2. В момента не разбирам напълно предпоставките за стабилна връзка WatchConnectivity сега. Имам странната ситуация, че в симулатора моят ComplicationController може успешно да изпрати заявка за изпращане на съобщение. Когато се опитам да погледна погледа си, заявката за 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. Напълно съм наясно, това е бета, но това е последната бета преди пускане.


person ChaosSpeeder    schedule 05.09.2015    source източник
comment
1. Все още има версия на GM и 2. Опитахте ли да рестартирате?   -  person saagarjha    schedule 05.09.2015
comment
Служител на Apple отговори тук и каза, че ще има някои поправки, идващи към WCSession и неговата достъпност, когато WK разширението работи за бърза актуализация в бъдещо начално/издаване   -  person ccjensen    schedule 05.09.2015
comment
Добре, може би трябва да бъда търпелив с Apple и да продължа с настоящата си стратегия за заобикаляне.   -  person ChaosSpeeder    schedule 06.09.2015


Отговори (2)


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

И така, стартирайте приложението за iPhone, за да имате най-новия код, след което спрете изпълнението. След това стартирайте приложението Watch и отворете симулатора на iPhone и отворете приложението iPhone. След стартиране на двете приложения (с дебъгера, прикрепен само към приложението Watch), обратното извикване за грешка на sendMessage:replyHandler:errorHandler: не трябва да се извиква и съобщението трябва да бъде изпратено успешно.

person Iulian Onofrei    schedule 23.09.2015
comment
Господи, що за решение е това? Работи, но звучи като заобиколно решение на въртележката - person sudoExclaimationExclaimation; 10.12.2018

Опитайте се да използвате

WCSession.defaultSession().reachable

в swift, за да проверите дали е достъпен.

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

Ако се връща false/NO изберете Debug -> Attach to Process след това намерете приложението, което искате да прикачите, след което го изберете, трябва да работи.

person William Hu    schedule 07.04.2016