iOS SDK: device connected but app (with UUID) cannot be found, API MISUSE: CBCentralManager

I created an app only to test the Connect IQ SDK for iOS. I followed the documentation to set up the project, but I ran into a problem:

First ConnectIQ is initialized after which the GCM is shown. After returning to my app, I am able to retrieve the devices as desired. I also instantiated an IQApp for each device. However, when I call getAppStatus on any IQApp, it always returns an app status which is 'nil'. When trying to broadcast a message, the completion callback is called with an error status (IQSendMessageResult_Failure_DeviceNotAvailable).

The app is however installed on my connected device (I tried both adding the .prg file to Garmin/APPS and installing the beta version of my app from the ConnectIQ Store). I also triple checked to ensure the app UUID's are identical.

I think this has something to do with CoreBluetooth, as I get the following warning:

API MISUSE: <CBCentralManager: 0x283b05180> has no restore identifier but the delegate implements the centralManager:willRestoreState: method. Restoring will not be supported.

I don't really know how to fix this, so any help and insights are much appreciated!

Thanks in advance!

  • I have the same problem. I have several Garmin watches (epix, venu, descent, fenix) and it happens ONLY with recent Garmin OS versions. I've reproduced this multiple times. If a watch has an older OS version it will work. If it is updated to the most recent OS, it will immediately stop working. getAppStatus() returns nil.