Acknowledged

Problem with installing app

One of my user has tried to install widget PSX-7 (https://apps.garmin.com/apps/1944b8b4-409e-482d-b7b3-becd4e8b1b05) but he couldn't due the incapability error but he has installed PSX-6 (https://apps.garmin.com/apps/e4ce9423-c37e-4aa7-b778-f24c2347c923). Both are built the same SDK (7.3.1m PSX-7 few days later), both have the same min API level to 2.4.

  • Garmin, can you add a compile time warning about this situation? We do get lot of nonsense "spam" warnings, this one would be useful.

  • Here's regexp you can use to find any language array (aka part number) which doesn't support English:

     

    I tested this in VS Code.

    Here's a similar regex to find all language arrays:



    Regexes in text form available here:

    https://pastebin.com/4v4RJ7qC

  • > I won't waste time to check jsons and language, simple I will check all languages, make default resources and because compiler uses tree to build resources it will use default strings for any language I will dicide to not translate...

    I don't think you have to do that. Just do what you do today -- select the languages that have non-default resources -- and also add English to the list.

    I did a quick check and out of 298 part numbers, only one of them doesn't support English: gpsmap67 (APAC)

  • > Supporting region or not shouldn't be done during compilation time but during putting application into store. 

    But as we all know very well, including/excluding devices by region happens at compilation time for another reason besides languages: minApiLevel in the manifest.xml.

    If minApiLevel is set to version X, then all part numbers with connectIQVersion lower than X will be excluded. Since APAC part numbers usually have connectIQVersion less than or equal to WW part numbers, then it's possible that if you set minApiLevel to a certain version, you will exclude APAC part numbers, but include WW part numbers (and it's not necessarily obvious that this happened until users start to complain.)

    As we all know, this has been posted about many times in the forums.

    I guess the problem (from Garmin's POV) is you're not just supporting regions, but you're supporting "part numbers" which are associated with regions. And Garmin only wants to export the part numbers which will actually be supported (they're fine with making that decision at compile time).

    Ofc the store page has separate regional limits.

    So in fact, Garmin has regional support in both cases (compile time and in the store config/submission page). Whether we like it or not, this isn't going to change.

    > But exclusion device without warning is not acceptable. 

    I agree 100%. I would have expected to see a warning for the language-based part number exclusion that looks like the warning for minApiLevel-based exclusion. e.g. If I set minApiLevel to 3.4.0 and build for instinct2s:

    "WARNING: Device name: 'Instinct® 2S / Solar / Dual Power' Part number: '006-B4091-00' CIQ ver: '3.2.7' is being ignored by the package tool because it does not support the minimum API Level set for this project"

    Maybe this can be a feature request.

  • Supporting region or not shouldn't be done during compilation time but during putting application into store. 

    Why there are language in manifest? Or why not checking languages is good and for who?

    - shorter compiling time 

    - saving space (especially in store and watch)

    - ...

    But exclusion device without warning is not acceptable. 

    I won't waste time to check jsons and language, simple I will check all languages, make default resources and because compiler uses tree to build resources it will use default strings for any language I will dicide to not translate...