I'm sorry, I completely glossed-over this issue long ago - and until a recent conversation w/ @calani, I never revisited this topic.
It's a bit long-winded, as I'm trying to combine both a problem statement alongside a few suggested solutions.
Since OSX 10.10, all apps must be signed, or the standard/default "Gatekeeper" function within OSX denies launching the app:
https://support.apple.com/en-us/HT202491
Before OSX 10.10 Gatekeeper defaulted to "Anywhere", after 10.10 it now defaults to “Mac App Store and Identified Developers”. This results in the following message for the various launcher builds/installs.
Original launcher:
Beta Launcher (after answering "open" the app launches):
Test Launcher (from: Launcher/158/ ):
For Original and Test launchers, in order for users to run them, they would need to CTRL-click on the app, or change their system's default Gatekeeper configuration. An option that I doubt most general users would be willing/able to do, as Apple is making it increasingly difficult/intimidating to launch unsigned apps, for good reason (Windows is an excellent example of design decisions which support widespread garbage/malware).
OSX Code Signing reference: https://developer.apple.com/library/mac/technotes/tn2206/_index.html
Further, when an app is signed, any changes within the .app structure results in signature invalidation, and denial of app launching. In Apple's own words "...Bundles should be treated as read-only once they have been signed..."
source: https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG206
The invalid signature issue could be easily overlooked in dev/beta/test releases, as that's a generally expected behavior for such versions. Although for public releases...that’s a problem, as the general trend is towards signed apps, and I just don't think most users will willingly "compromise" their system's security.
From Apple's FAQ, you can change data file locations without significantly changing existing code, by moving the files to where Apple designates as "correct locations", while leaving behind symlinks for your code to still locate the files. Although that suggestion comes with a caveat that in general, you should plan for future stricter runtime checks.
Where to put files maintained by the launcher? It appears that Apple generally recommends an app-specific folder within:
- For support files that the app can easily recreate: ~/Library/Caches/...
- For data files that are not easily replaced, such as blueprints, world databases, logfiles, etc: ~/Library/Application Support/...
Additional Suggestion:
Currently, the launcher bundles a bunch of game files which are basically outdated and must be overwritten/updated before players can run the game anyways. You might consider just not including such files with the distributed launcher, as it would result in a much smaller initial download, and the launcher itself already seems to handle keeping those files installed/updated...so why duplicate the work?