Known Causes
If SecureFX's icon is missing from SecureCRT's tool bar following an install of the SecureCRT + SecureFX bundle on your Mac, it's most likely due to macOS having triggered "App Translocation" (also known as "Gatekeeper Path Randomizaton" or "GPR").
App translocation can be caused by any of the following scenarios:
- Moving/copying the apps by a means other than Finder (e.g., Terminal).
- Application bundles installed from .tar.gz installers will always have this issue.
- Application bundles installed from the combined .dmg installer may or may not have this issue depending on how they are installed:
- If the application bundles are copied one at a time, individually, to the /Applications directory, they should not have this issue.
- If the application bundles are copied together (e.g., both selected and dragged from the mounted .dmg) to the /Applications directory, they appear to always have this issue.
Solution
The solution is to run the following command(s) in the terminal shell on your Mac:
xattr -d com.apple.quarantine /Applications/SecureCRT.app/
xattr -d com.apple.quarantine /Applications/SecureFX.app/
Additional Background
The issue is that the "App Translation" attribute is not being removed from the SecureCRT/FX .app bundles once they are moved into /Applications (or apparently any other folder). Here is a quick write-up on when App Translocation should and should not occur (content derived from https://lapcatsoftware.com/articles/app-translocation.html:
Under what circumstances does App Translocation occur?
First, the app must have a com.apple.quarantine extended attribute. If you delete the quarantine attribute using xattr, then App Translocation does not occur, and the app will launch from where it was unarchived, like normal.
Second, the app must be opened by Launch Services. This usually means Finder, but it can also mean open from Terminal, for example. If you launch the app executable directly from bash, on the other hand, App Translocation does not occur.
Third, the app must not have been moved — by Finder. If you move the app, using Finder, from the app's original unarchived location to another folder, even a subfolder, e.g., ~/Downloads/Test/, then App Translocation does not occur. However, if you move the app using mv from Terminal, then App Translocation will still occur. Normally you would move the app from ~/Downloads to /Applications, and that would cause the app to be launched from /Applications like normal, but the locations of the particular folders don't seem to matter. The mere act of moving the app using Finder stops App Translocation from happening. Indeed, once you've moved the app once, it will no longer experience App Translocation again, even if you then move it back to ~/Downloads.
To check if an application will be translocated, run the following command within the terminal shell:
security translocate-policy-check /Applications/SecureCRT.app/
security translocate-policy-check /Applications/SecureFX.app/
Possible results for the above commands:
- Would translocate
Meaning: App translocation is active for the app.
- Would not translocate
Meaning: App translocation is not active for the app.
To check if quarantine attribute is set on an app bundle, run the following command within the terminal shell:
xattr /Applications/SecureCRT.app/
xattr /Applications/SecureFX.app/
The above command will report either com.apple.quarantine or an empty string.