I am using getLocalMachineIDs(), from TracktionMarketplaceStatus, to generate the main UID for my app. Trouble is that for Windows, I get two different UIDs, one for 32b and another for 64b. The way I set the workflow up, I need to have only an UID per machine. What would be the best fix?
That's odd - it's the UID of the windows folder, I guess there must be different folders for the two architectures..
You can override the getLocalMachineIDs() method yourself to use whatever mechanism you want for those IDs, it might make more sense for you to use the MAC address or some other source of IDs.
But.. for most products, a user won't generally swap back and forth between 32 and 64 bit, and the marketplace server will allow a bit of flexibility so a couple of IDs should be OK, so in practice it probably wouldn't be an issue.
Thank you for your fast answer. It's the same folder (C:\\WINDOWS\\system32), but it yields two different uids:
I am not using the marketplace server, I am using one that allows only an UID per machine, from the TracktionMarketplaceStatus I use only getLocalMachineIds(). The authentification used to work with MAC adresses in the past, but had some issues, so I've dropped it.
Very strange that the same file would yield different IDs..! Really not sure why that would happen, I thought they were fixed.
TBH I would advise against running a server that only allows a single ID - as soon as you have a reasonable number of users you'll end up having to deal with a lot of support issues where people change machines or you run into wierdnesses like this. Much smarter to allow some flexibility so that your users don't hit issues and you don't have to waste your time dealing with them.
Yes, in hindsight, that would have been the better solution. Thank you for your input!
I found this thread, as I am experiencing this same thing… maybe it’s not so common, but I have at least two testers, along with one of my development machines where this is happening. If a user registers with a 64bit build, which ends up with one specific machine ID, the saved state in the preferences file will not work for the 32bit build, and vice versa. It gets really terrible with hosts that support (and the user configures) both 32bit and 64bit plugins, the scanning process may end up unregistering both plugins, depending on which one was scanned first.
My interim solution is to write the 32bit and 64bit save state to different preference keys. This is slightly annoying for a user who really wants to run both versions, they need to register each one, but it avoids the worse issue of unexpected unregistering.
I also am only seeing this on Windows as well.
Personally I have faced this issue as follows:
I am gathering 5-6 machine Ids (eg. MAc Addresss, product id, filesystem id etc).
Every time when the application starts up, it checks if two or three of them matches with those of the local machine.
If this happens, it might be that the registration status is in a “valid” state.