WatchConnectivity and watchOS 1

The WatchConnectivity returns incorrect information when an iOS 9 device is paired with a watchOS 1 watch.


Specifically, in an iOS 9 app, the WatchConnectivity framework will correctly state if watch is supported, and if a watch is paired, but it will always return false for `watchAppInstalled` and `reachable` when paired with a watchOS 1 device, regardless of whether or not the app is installed on the device or if it is running in the foreground.


In a watchOS 1 extension running on an iOS 9 device, the WatchConnectivity framework is available, but `reachable` always returns false, even though the extension can only run when connected to an iPhone and the documents state that the value of `reachable` "is YES when the paired iPhone is reachable via Bluetooth."


As a developer with an existing watch app in the store it seems difficult if not impossible to support iOS 8 & 9, and watchOS 1 & 2 simultaneously. I'm unsure where to draw the line between using the existing WatchKit methods for communication with the app and using the (superior) WatchConnectivity framework. It seems like WatchConnectivity could benefit from some way to tell the version of the OS running on the paired watch or for it to correctly return installed and reachable status.

WatchConnectivity is only available when communicating with a watchOS 2 application. If the user is running iOS 9 and watchOS 1 then your watchOS 1 application will be the one the user is using. This means your iOS 9 application needs to support both the watchOS 1 (NSURLSession, openParentApplication, shared app container, etc) and watchOS 2 (WatchConnectivity, NSURLSession) methods of communicating with the watch app.

Is there anything in particular we have to do when we use WatchConnectivity in a project supporting < iOS 9? I'm receiving "dyld: Library not loaded: ... Reason:Image not found" errors in regards to the WatchConnectivity framework when trying to run the project on a device with iOS 8.3.

As you have discovered, using WatchConnectivity in an app that has a deployment target < iOS 9 is currently broken. This will be fixed in a future seed.

Sorry for the inconvenience!

Ok, thanks for the reply viking.

WatchConnectivity and watchOS 1
 
 
Q