I have now tested the new testing build on macOS X 10.12.5.
The good news is that it runs, and the few features I have tested work as expected.
The bad news is that you are going to get a lot of posts from frustrated users who cannot start the app:
It looks like if you unzip the application,
you cannot run it until you have manually moved the app bundle to another folder !I am 99% sure it is
App Translocation, a new security feature in macOS which causes this as a side effect. App Translocation prevents some forms of attacks to some type of apps by copying the entire app into a disk image which is then made read-only. Then the app is executed from within this disk image. Once an app is moved with the Finder (but
not with mv) then App Translocation is disabled for the app, since moving it prevents the kind of attacks App Translocation was designed to protect against.
So if you do not move Armory, it is executed from within a read-only disk image, in my case from this path:
/private/var/folders/cq/5k4g7j_j5q3crgmh_glgp8yr0000gn/T/AppTranslocation/75F2CD25-05E9-4AC8-A15C-98AEE371C58F/d/Armory.app/Contents/MacOS
Why would that matter? After all, Armory does not care from where it is executed? Well, the problem is that this disk image is
read-only, and the first time Armory starts it makes a softlink inside itself. That fails if the disk image is read-only, and then the Armory startup script cannot execute Python!
# OS X has a quirk. For whatever reasons, if you execute Python from a different
# location than the location of what actually gets executed when you run Armory,
# the menu bar calls Armory "Python". However, if you symlink Python and run the
# symlink from the execution directory, the app name from Info.plist is used.
# Also, the link should be here so that the link works wherever this is
# executed, and not just on the build machine.
ln -sf "${FRDIR}/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python" "${DIRNAME}/Python"
# Assume all args are meant for Armory. Assuming otherwise, for shell scripts
# at least, it horribly painful.
exec "${DIRNAME}/Python" "${ARMORYDIR}/ArmoryQt.py" "$@"
Symptoms:
- If you download Armory as a zip file, unpack it, and run it by double-clicking Armory.app, it fails to start
- If you drag Armory to /Applications (or anywhere else for that matter), it suddenly works (since this disables App Translocation).
- Or, if you start it on the command line in the original location by typing /path/to/Armory.app/Contents/MacOS/Armory, then it is run without AppTranslocation, and works. Now the softlink has been made, and double-clicking on Armory.app will now work (since although App Translocation is still in place, the softlink was made in the original App)
Info about App Translocation:
http://lapcatsoftware.com/articles/app-translocation.htmland more detailed, including a similar case to what we see with Armory:
https://www.synack.com/2016/12/16/untranslocating-apps/Recommendation: Since the softlink inside the app is internal, it could be made when the app is build instead of as a workaround when running it. Then App Translocation will not matter.