Сбой соединения WCSession в указанный c момент - PullRequest
2 голосов
/ 05 февраля 2020

У меня странное поведение, происходящее со мной при использовании подключения к часам.

Я запускаю сеанс из didFinishLaunchingWithOptions.

в AppDelegate. Пользователь проходит процесс входа в систему, и когда пользователь попадает на домашний экран, если пользователь открывает часы, кажется, что с сеансом что-то идет не так. В этот момент я получаю этот журнал:

[WC] -[WCSession onqueue_handleDictionaryMessageRequest:withPairingID:]_block_invoke delegate MCEWatchSessionDelegate does not implement delegate method
[WC] -[WCSession _onqueue_sendResponseError:identifier:dictionaryMessage:] identifier: [identifier] with WCErrorCodeDeliveryFailed

И в этот момент, если я распечатаю ошибку на часах, если получим:

Error Domain=WCErrorDomain Code=7014 "Payload could not be delivered." UserInfo={NSLocalizedDescription=Payload could not be delivered.}

и в процессе входа в систему ничего не используется, используя сеанс или все, что связано с WatchConnectivity.

Если пользователь открывает приложение часов на экране входа в систему, все работает, как ожидалось.
Если я закрою и снова открою приложение (сеанс get снова активируется), оно работает нормально и проблема исчезла.
Если я снова активирую сеанс из приложения iPhone после того, как часы попытались и не смогли отправить сообщение, оно вернется в нормальное состояние.
Если я отправлю очередь с задержка, снова активирующая сеанс в приложении Iphone, после которого отображается домашний экран, он также работает нормально.

Кажется, проблема возникает только при первом входе пользователя в приложение. после установки войдите в систему и перейдите на главный экран.

...