Three years have passed, and Garmin has not yet planned to fix the bug on watches in Asia

There are many FR245\ FR945\ ENDURA\ FENIX6 devices in the Asia-Pacific region. Their SDK has been updated to 3.3 or above. Some devices have already been updated to 3.4, but Garmin still mistakenly identifies them as earlier versions such as 3.2.

As a result, many data on the watch cannot be displayed correctly. For example, STRESS and BODYBATTERY. If you skip the download from the Garmin store and directly copy the prg file into the watch with a data cable, the watch face can run normally.

How to make watch face compatible with ASIA models? - Discussion - Connect IQ - Garmin Forums

 I found that someone reported this problem three years ago. But no one has dealt with it. If I limit the minimum SDK version of watchface to 3.3.1, a large number of Asian users will not be able to find wf. Their screenshots tell me that their devices are far beyond 3.3.1.

  • Yes, with build for device, you are always building for the WW part number.

  • Thanks, will you consider fixing this error for the SDK in the next version? Some programmers have used some special methods to avoid this problem. But for the software that sets the minimum version to 3.3.1, Asian users cannot find and download it.

    If it can be adjusted in connect iq. Everyone does not have to regenerate and upload the file twice. Just push the ww version file correctly to APAC users.

  • If it can be adjusted in connect iq. Everyone does not have to regenerate and upload the file twice. Just push the ww version file correctly to APAC users.

    That won't work because the version information is taken from device files (in the device library installed by the SDK manager) at compile time. The PRGs for APAC part numbers are excluded (or included) at compile time, too.

    So for devs that set a minApiVersion to 3.3.1 (for example), PRGs for any part numbers that support less than 3.3.1 (like the APAC devices that were mentioned) just won't be added to the IQ file during export (hence the build warnings about excluded part numbers).

    I don't think Garmin is going to start offering WW PRGs to APAC users (for example), for those devices where the WW part number is different than the APAC part number.

    So, unfortunately, any dev which is affected by this issue will have to rebuild their app and upload a new version, one way or another.

    - if they specified a too-high minApiLevel (e.g. 3.3.1) which excluded APAC devices with API level 3.2 in the device files, then when the device files are updated, the app will have to be rebuilt. Or the dev could change minApiLevel to be lower, but they still have to rebuild.

    - if they specified a low-enough minApiLevel (e.g. 3.2), which caused has checks to remove functionality for APAC device at compile-time, then they can fix the problem with --disable-api-has-check-removal, but they still have to rebuild

  • Yes. Your understanding is correct. There are two versions of 245 in the unzipped file. Asian devices will inevitably push 3.2.0.
    Actually, I know this problem, but I tried to modify the path to put the prg of ww under apac, but the protection mechanism of iq files will prevent the files I manually modified from being recognized by the store. It prohibits me from uploading.
  • Actually, I know this problem, but I tried to modify the path to put the prg of ww under apac, but the protection mechanism of iq files will prevent the files I manually modified from being recognized by the store. It prohibits me from uploading.

    If you really wanted the APAC PRG to be just like the WW PRG in terms of the connectIqVersion property (and perhaps the firmwareVersion property), you could simply edit the device files by hand. That way, has checks would be evaluated the way you want, even at compile time.

    I def wouldn't recommend that tho, for various reasons.

  • Let's wait for the official fix. My current solution is to ask users to leave their email addresses, and I will send prg to users to load.

  • Let's wait for the official fix. My current solution is to ask users to leave their email addresses, and I will send prg to users to load.

    As mentioned above, a viable fix (without waiting for any Garmin changes) would be to simply set minApiLevel to 3.2 (or as low as you want/need it to go), and use the --disable-api-has-check-removal flag.

    The point of my comment about editing device files is that it also would have worked (although it's not recommended), instead of trying to edit the IQ file to substitute WW PRGs for APAC part numbers.

  • This isn't just an APAC thing.  When Garmin release a new "System" level, it usually includes new APIs, and while some current devices will get the new stuff, that usually starts with beta firmware.

    That means not all users will have the new "System Level", but if some do, you want to use the new APIs.

    Another case where "has" is used and another reason why 

    -disable-api-has-check-removal

    was requested - to allow testing with beta FW releases.