Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Etterna "No Noteskins Found" error and macOS installation instructions

The issue

When you try to launch Etterna on macOS after downloading it, you see the error "No NoteSkins Found".

What causes the issue (feel free to skip reading this)

When Etterna is downloaded from the internet (either from EtternaOnline or GitHub), it is tagged with the file attribute as part of Apple's security features.

When an app is launched in macOS, launch services checks for the presence of this attribute. If it exists, the app must be signed by a valid apple developer id, or it will launch with certain security features active.

We don't sign the dmg we produce for macOS.
This is because we'd have to pay Apple $$$ to do so, and no-one has offered to pay the cost for it.

As a result, Etterna is launched with these security features, including one called App Translocation.
It makes the Etterna app launch from a randomized path instead of where the app is actually located.
(This is to prevent dylib hijacking where a signed binary loads in unsigned external resources relative to it which could potentially be replaced by an attacker)

However, Etterna needs to know its actual location because it needs access to the other folders within the Etterna folder, including, say, the NoteSkins folder. (Oh look, we found the issue)

We could fix this by only storing data within ~/Library/Application Support as Apple recommends, but this would make Etterna non-portable.

How to install Etterna on macOS

There are two ways to fix this issue.

For technically experienced users:
Because the issue is caused by the xattr causing Etterna to run with App Translocation, it can be fixed by simply removing the attribute.
xattr -d /path/to/ will do it.

For non-technical users:
I made a tool to make installing Etterna on macOS extremely simple.
Just go to EDIT: this site is temporarily down, it should be back soon and follow the instructions for the automatic installer.

Additional Notes

In the past, you may have been able to bypass similar issues by doing steps like right-clicking an app, show-package-contents-ing, and then manually launching the binary within.
Don't do that for Etterna. It may appear to fix the issue, but it will cause other problems.

Additionally, some good news. Hidden and I both worked on trying to solve this issue in a much cleaner way. From (hopefully) 71.0's release onwards, there should be no need to do these steps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment