iOS SDK: parseDeviceSelectionResponseFromURL returns nil (Edge 1050) even though deep-link has device fields

Hello,

This is Jon, and I am trying to send messages to a datafield, from iphone to Edge 1050. I will try to be schematic in the question. Please let me now if there somewhere else better to ask this problem.

  • Env: iOS 17, Xcode 15, real iPhone; Garmin Connect (App Store); Connect IQ iOS framework.

  • Setup: URL schemes registered (garminroutefollowerapp), query schemes (connectiq, gcm-ciq). SDK initialized with initialize(withUrlScheme:).

  • Flow: Call showConnectIQDeviceSelection() (or URL fallback). Garmin Connect opens then returns to our app. We receive a deep-link like:

garminroutefollowerapp://device-select-resp? ciqApp=Connect&ciqBundle=com.garmin.connect.mobile&ciqScheme=garminroutefollowerapp& ciqSdkVersion=10000&sourceUrlHost=host&dID=...&dModel=Edge%201050&dName=Edge%201050&dPartNumber=006-B4440-00
  • Problem: ConnectIQ.sharedInstance()?.parseDeviceSelectionResponseFromURL(url)nil (logs: “NO DEVICE / could not handle deep-link”). Device is an Edge 1050 paired and connected in Garmin Connect.

Questions

  1. Is this a framework/app version mismatch? Which iOS SDK version should we use for the current Garmin Connect deep-link format (ciqSdkVersion=10000)?

  2. Are there required keys missing in the device-select-resp URL for the parser to return an IQDevice?

  3. Any working sample (iOS 17) showing showConnectIQDeviceSelectionparseDeviceSelectionResponseFromURL?

  4. If the parser is deprecated/changed, what’s the recommended way to obtain an IQDevice from the selector?

Happy to share a tiny repro if needed.

Thanks!