Questions regarding the id's in .jucer file

Since I always end up starting a new plugin with a very similar set up in the Projucer (and some other files, like installer scripts etc.) I’ve decided to build a template and script to relieve the boredom involved in that process.

My questions:

  <MAINGROUP id="dGD41u" name="myPlugin">
    <GROUP id="{C22B92C2-7C8E-F5B9-2539-20F017D4188A}" name="Source">
      <FILE id="FSUAVn" name="PluginProcessor.cpp" compile="1" resource="0"
            file="Source/PluginProcessor.cpp"/>
      <FILE id="bUT64e" name="PluginProcessor.h" compile="0" resource="0"
            file="Source/PluginProcessor.h"/>

Must those UUIDs be unique to each project, or just within each project?
Is it a fair assumption that those 6 character ids just need to be unique within the project?

I think that covers it, unless anyone has any advice/experience with templated projects and can pass along anything I might have missed :slight_smile:

4 Likes

Yep, they only need to be unique within the project.

1 Like

Something I just discovered:
The id in the JUCERPROJECT element must be unique per project, as the AU “Plugin Code” is derived from it, so if you have the same IDs then macOS will get confused about which plugin to open.

2 Likes

I hadn’t noticed that, good to know!

Alternately, you can just leave the id in the JUCERPROJECT element as-is, and manually enter your own 4-character AU plugin code. I usually do that anyways, to make the 4-char code somewhat reflective of the plug-in’s name. Just don’t forget the rule to make at least one of the 4 chars an uppercase letter.