initial dev env setup on mac osx arm

Hi 

I'm facing issues when trying to setup my dev environment

I'm on macbook pro, arm based, using vsc.

I installed connectIq, added the monkey C plugin to vsc

I created a der file and trying to build a simple hello world app using 

> monkeyc -d venu2 -f monkey.jungle -o build/app.prg -y ./keys/developer_key.der

I join my monkey.jungle and manifest.xml

and... no way for me building my app

A valid 'project.manifest' property was not defined within a jungle file.
ERROR: .../monkey.jungle:3: no viable alternative at input 'project.sourcePath'
ERROR: .../monkey.jungle:4: no viable alternative at input 'project.resourcePath'

it is probably something stupid, but ... 

thanks for reading

<?xml version="1.0"?>
<iq:manifest version="3" xmlns:iq="http://www.garmin.com/xml/connectiq">
  <iq:application
      id="08ea74b8-ca2b-493b-b858-56e249e64a62"
      type="watch-app"
      entry="TaddleApp"
      name="Taddle"
      minApiLevel="3.3.0">
    <iq:products>
      <iq:product id="venu2"/>
    </iq:products>
    <iq:permissions/>
    <iq:languages/>
    <iq:barrels/>
    <iq:trialMode enable="false">
        <iq:unlockURL>https://www.example.com/your_unlock_url</iq:unlockURL>
    </iq:trialMode>
    <iq:activityFilter/>
  </iq:application>
</iq:manifest>

project.manifest=manifest.xml

project.sourcePath=src
project.resourcePath=resources
// venu2.resourcePath=$(project.resourcePath); resources-venu2

  • You may want to start with one of the samples in the samples folder in the sdk

    vsc command palette>monkey c: open samples folder

    or use one of the vsc templates

    vsc command palette>monkey c: new project

    get one of this to compile without changing anything.

  • As the errors indicate (perhaps poorly), "project.sourcePath" and "project.resourcePath" are not valid project qualifiers in a jungle file. See: https://developer.garmin.com/connect-iq/reference-guides/jungle-reference/

    The correct syntax for what you're trying to accomplish would be:

    project.manifest=manifest.xml
    base.sourcePath=src
    base.resourcePath=resources
    venu2.resourcePath=$(base.resourcePath);resources-venu2

    or even better:

    project.manifest=manifest.xml
    base.sourcePath=src
    base.resourcePath=resources
    venu2.resourcePath=$(venu2.resourcePath);resources-venu2

    The reason this is better is that venu2 has other built-in resource paths [*], like resources-round-416x416/ and resources-round/, which would be ignored the other way.

    Such apparently recursive references are allowed in jungle files because when you type X=$(X) here, $(X) is evaluated as the value of X *prior* to assigning X's new value. This also means that the order of assignments in jungle files is significant. If you're familiar with makefiles, assignment in jungle files is like "simply expanded variable assignment" in makefiles, as opposed to "recursively expanded variable assignment")

    However, base.sourcePath and base.resourcePath are already initialized by default as follows [*]:

    base.sourcePath = .\**.mc # this means all *.mc files in your project
    base.resourcePath = resources


    So all you really need in your monkey.jungle is this:

    project.manifest=manifest.xml
    venu2.resourcePath=$(venu2.resourcePath);resources-venu2


    [*] All of this can be seen by looking at the default.jungle file in the current SDK's bin/ folder. You need to successfully build at least once for this file to be auto-generated.

    1) Open command palette (CMD-SHIFT-P on Mac)

    2) Select "Monkey C: Open Samples Folder"

    This opens CURRENT_SDK/samples/

    3) Navigate up 1 parent folder so you're at CURRENT_SDK/. Navigate to the bin/ folder

    4) Open default.jungle

  • Thank a lot. I started from scratch and now is correct