In the AppDelegate in the didFinishLaunchingWithOptions I connect the watch to the App.
if ([WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
}
This is working fine for most cases. However when users did have a watch paired and they unpair the watch, we are experiencing delays in the [session activateSession]. It will take approxiately 7-8 seconds for this call to be executed. This is causing a huge delay in the App startup.
I suspect that this is a Apple bug, I do not expecct Apple to make a fix for this on short notice.
As I workaround I'm looking I want to check if a watch is paired, before the activateSession. However 'session' does not contain valid data. How can I check if a watch is paired, before the 'session activateSession' statement?
This occurs both in iOS9.3 and iOS10.0.1, I have not tested other versions.
That certainly does sound like a bug. As a workaround you could either:
session:activationDidCompleteWithActivationState:error: