Acknowledged
CIQQA-3627

Watch face doesn't work : adding "permission" and "properties" in Manifest.xml

Hello Guys,
The watch face has stopped working since I tried to add a setting to the program: adding "permission" and "properties" in Manifest.xml.

 What I did:

- Checked the correct order of sections in Manifest.xml.
- Checked for stray characters (spaces, etc.) in Manifest.xml.
- Systematic cleanup before launching the program (clean project): no effect.
- Moved the program directory out of OneDrive.
- Multiple reinstallations of the SDK in the event of an installation error: no effect.
- Updated to a more recent Java: from Java 8 to Temurin JDK 25.0.0+36-LTS (09/23/2025): no effect.
- Downgraded the SDK from Connect IQ 8.3.0 to Connect IQ 8.2.3 (Note that the SDKs are compatible with fenix847mm since Connect IQ 7.4.3): Message "ERROR: Device 'fenix847mm' requires API Level '5.2.0'. The current SDK supports up to API Level '5.1.1'.
The error message doesn't seem consistent with what we know about the SDK (same error message with Fenix ​​7 Pro).

Manifest.xml:

<?xml version="1.0" encoding="UTF-8"?>
<iq:manifest version="3" xmlns:iq="http://www.garmin.com/xml/connectiq">
    <iq:application id="258767d9-a8d4-4e5d-92c2-bd646966e286" type="watchface" name="@Strings.AppName" entry="CadranMontreAnalogiqueApp" launcherIcon="@Drawables.LauncherIcon" minApiLevel="4.0.0">
        <iq:products>
            <iq:product id="enduro3"/>
            <iq:product id="epix2"/>
            <iq:product id="epix2pro42mm"/>
            <iq:product id="epix2pro47mm"/>
            <iq:product id="epix2pro51mm"/>
            <iq:product id="fenix7"/>
            <iq:product id="fenix7pro"/>
            <iq:product id="fenix7pronowifi"/>
            <iq:product id="fenix7s"/>
            <iq:product id="fenix7spro"/>
            <iq:product id="fenix7x"/>
            <iq:product id="fenix7xpro"/>
            <iq:product id="fenix7xpronowifi"/>
            <iq:product id="fenix843mm"/>
            <iq:product id="fenix847mm"/>
            <iq:product id="fenix8solar47mm"/>
            <iq:product id="fenix8solar51mm"/>
            <iq:product id="fenixe"/>
        </iq:products>
        <iq:permissions>
            <iq:uses-permission id="ActivityMonitor"/>
            <iq:uses-permission id="System"/>
            <iq:uses-permission id="UserProfile"/>
        </iq:permissions>
        <iq:languages>
            <iq:language>eng</iq:language>
            <iq:language>fra</iq:language>
        </iq:languages>
        <iq:barrels/>
        <iq:properties>
            <iq:property id="BackgroundColor" type="number"/>
            <iq:property id="ForegroundColor" type="number"/>
            <iq:property id="UseMilitaryFormat" type="boolean"/>
            <iq:property id="ShowSeconds" type="boolean"/>
            <iq:property id="ShowSteps" type="boolean"/>
            <iq:property id="ShowFloors" type="boolean"/>
            <iq:property id="ShowBatteryArc" type="boolean"/>
            <iq:property id="SecondsColor" type="number"/>
        </iq:properties>
        <iq:settings resource="settings/settings.xml"/>
    </iq:application>
</iq:manifest>

Parents
  • (Note that the SDKs are compatible with fenix847mm since Connect IQ 7.4.3)

    That was true in the past when fenix847mm was released and the device config file (fenix847mm/compiler.json) specified a lower API level for that device (e.g. 5.1.x or whatever).

    Take a look at ConnectIQ/Device/fenix847mm/compiler.json. Each element of the partNumbers array has a connectIQVersion: note that connectIQVersion is now "5.2.0" for both part numbers. (I'm assuming your device files are up to date via the SDK manager.)

    This means that any app that is built now for fenix847mm requires an SDK supporting API 5.2.0, and the target device [*] has to have firmware with at least API 5.2.0.

    [*] here by "device" I mean a physical Fenix 8 AMOLED 47mm / 51mm unit, not a "Connect IQ device definition as in fenix847mm.

    >  Message "ERROR: Device 'fenix847mm' requires API Level '5.2.0'. The current SDK supports up to API Level '5.1.1'.
    > The error message doesn't seem consistent with what we know about the SDK (same error message with Fenix ​​7 Pro).

    This error message tells you almost everything you need to know. Now that fenix847mm is configured (in compiler.json) to use API level 5.2.0:

    - SDK 8.2.3 is too old. In that SDK's folder, look in bin/compilerinfo.xml. You will see that in targetSdkVersions (this should really be called targetApiLevels, but the name is what it is for historical reasons), the max supported API level is 5.1.1.

    - You need to use a newer SDK (like 8.3.0) which supports API level 5.2.0

    - If you build an app now and upload it to the store (whether it's a new app or a new version of an existing app), fenix847mm users will not be able to install it unless they have firmware which supports API level 5.2.0

    It would be helpful if you mentioned the errors that you get when you use the *latest* SDK (8.3.0).

Comment
  • (Note that the SDKs are compatible with fenix847mm since Connect IQ 7.4.3)

    That was true in the past when fenix847mm was released and the device config file (fenix847mm/compiler.json) specified a lower API level for that device (e.g. 5.1.x or whatever).

    Take a look at ConnectIQ/Device/fenix847mm/compiler.json. Each element of the partNumbers array has a connectIQVersion: note that connectIQVersion is now "5.2.0" for both part numbers. (I'm assuming your device files are up to date via the SDK manager.)

    This means that any app that is built now for fenix847mm requires an SDK supporting API 5.2.0, and the target device [*] has to have firmware with at least API 5.2.0.

    [*] here by "device" I mean a physical Fenix 8 AMOLED 47mm / 51mm unit, not a "Connect IQ device definition as in fenix847mm.

    >  Message "ERROR: Device 'fenix847mm' requires API Level '5.2.0'. The current SDK supports up to API Level '5.1.1'.
    > The error message doesn't seem consistent with what we know about the SDK (same error message with Fenix ​​7 Pro).

    This error message tells you almost everything you need to know. Now that fenix847mm is configured (in compiler.json) to use API level 5.2.0:

    - SDK 8.2.3 is too old. In that SDK's folder, look in bin/compilerinfo.xml. You will see that in targetSdkVersions (this should really be called targetApiLevels, but the name is what it is for historical reasons), the max supported API level is 5.1.1.

    - You need to use a newer SDK (like 8.3.0) which supports API level 5.2.0

    - If you build an app now and upload it to the store (whether it's a new app or a new version of an existing app), fenix847mm users will not be able to install it unless they have firmware which supports API level 5.2.0

    It would be helpful if you mentioned the errors that you get when you use the *latest* SDK (8.3.0).

Children
No Data