There are issues with the TracktionMarketplace module and GarageBand.
A. TracktionMarketplaceStatus::getLocalMachineIDs() returns the same machine ID in every host I tested on my Mac... except in GarageBand. It is
which returns a different integer in GarageBand. I guess the reason is GarageBands sandboxing ( http://www.juce.com/forum/topic/garageband-x-sandboxing ).
B. But it gets worse. Because of the sandboxing it also uses another location for the plugin settings (i.e. application properties). In my case
/Users/<user>/Library/Containers/com.apple.garageband10/Data/Library/Application Support/<my company>/<my plugin>/<my plugin>.settings
/Users/<user>/Library/Application Support/<my company>/<my plugin>/<my plugin>.settings
Combined this will results in:
1 User activates a plugin in another host than GarageBand.
2 User loads the plugin in GarageBand... and it's locked!
3 User is not so happy... drags his unlock file onto the plugin... doesn't work!
4 User is upset... might realise that the plugin has another machine ID..
5 User could waste another unlock slot in his user area on my website... but more likely:
6 I get an email from this upset user.
The MAC address based machine id generation gives the same id in GarageBand as everywhere else. I'd suggest to remove the file based ID generation from TracktionMarketplaceStatus::getLocalMachineIDs() on Mac.
This would at least break the above described scenario after step 3.
Better ideas are of course very welcome.