What is the latest ConnectIQ version that the Fenix 7X should build for?

I switched to SDK 6.2.1.  to see if I could fix some lingering bugs by recompiling against this SDK.   Specifically on the Fenix 7X.  What is the latest ConnectIQ version that the Fenix 7X should build for? 

When I look inside the compiler.json file for this device, it lists ConnectIQversion 4.2.2.    Even though there is ConnectIQversion 4.2.4 available (according to the SDK list).  Does anybody know or have an explanation?   

  • Don't confuse SDV version with what' on a device.  I use 6.2.1 for my apps that support CIQ 1 devices through the latest.  For minApi, I always use 1.2 and exclude devices that won't support the functions required

  • The question should actually be "what is the earliest CIQ version that Fenix 7X should build for" (as specified by the current version of compiler.json).

    As discussed recently, connectIQVersion / firmwareVersion in compiler.json are actually the minimum (not maximum) CIQ/firmware versions that you can expect to be present for a given device / part number.

    If the user has a lower version of firmware / CIQ on their device and they try to install your app (that was built against that version of compiler.json), they will be prompted to upgrade.

    That's why a recent misconfiguration of certain APAC part numbers had to be rolled back:

    https://forums.garmin.com/developer/connect-iq/f/discussion/339447/apac-device-configuration-updates

    We published updates to the device configurations for the APAC versions of the following products today to address a a problem some customers may encounter when attempting to install apps from the app store:

    As mentioned in the other thread, the issue was that they set firmwareVersion too high for some APAC devices, which prevented APAC users from installing apps built with that version of the device files.

    Of course, given that it's the "minimum" CIQ/firmware version, it also means your app cannot blindly assume that any functions for *later* versions of CIQ will be available. So in a way it's also a kind of "maximum".

    So another way of phrasing the question would be: "What's the minimum Connect IQ version this device will have, which is also the maximum Connect IQ version I can rely on being present?" For any features newer than that, you'd have to gate them behind has checks (or hardcoded version number checks).

    Don't confuse SDV version with what' on a device. 

    You always say that, but it's often in cases when literally nobody is confusing the SDK version with the CIQ version on the device.

    (Also, before the recent SDK version scheme change, there was actually a fairly clear correlation between SDK version and device CIQ version.

    For example, if some feature was first introduced in SDK 4.1, everybody knew that meant your CIQ 3.* device needed CIQ 3.3, and CIQ 4.* device needed CIQ 4.1, in order to use that feature. It was obviously quite intentional that, aside from the System X weirdness, a feature that was introduced in version Y of the SDK would require version Y of the CIQ API on the device.)

    I use 6.2.1 for my apps that support CIQ 1 devices through the latest.  For minApi, I always use 1.2 and exclude devices that won't support the functions required

    At the same time it's nice to know to be able to know beforehand what features a devices will absolutely support. Quite often (but not always), it's possible to determine that a feature is present (or absent) based on the CIQ API level, especially if it's more of a language feature (like ByteArrays) as opposed to a device feature (like Weather.)

    Not every app gets built for every device. There may be an app that absolutely relies on a feature from CIQ X.Y.Z, and the developer may wish to simply remove support for devices which do not have this feature.