muttleyxd / arma3-unix-launcher

Launcher for Linux and Mac ArmA 3
MIT License
210 stars 43 forks source link

Unix Launch Fail Mac OSX 15.0 (24A335) #285

Open jblarue opened 2 months ago

jblarue commented 2 months ago

The launcher fails to open with the new Mac OSX update (15.0 (24A335)).

switchdo commented 2 months ago

opening with terminal it returns "segmentation fault"

switchdo commented 2 months ago

lldb output:

image
deeeeppockets commented 1 month ago

Any updates to this?

muttleyxd commented 1 month ago

Don't have a working Mac (and don't have money to buy one at the moment), so I guess we would need some volunteer to try to fix it.

cedliang commented 1 month ago

Not sure if related but the .dmg of the latest version has a mach-o header that indicates arm64 when the filename seems to indicate the intended target platform was x86_64.

lipo Arma\ 3\ Unix\ Launcher -info
Non-fat file: Arma 3 Unix Launcher is architecture: arm64

Could this be due to the macos-latest GitHub Actions runner moving to m1 arm64 by default between the commit 383 and the commit 413 releases?

Edit: I just saw this commit that fixes the paths to point to arm64 homebrew. So it's not that the binary is built incorrectly.

I think this is because arm64 has stricter code signing requirements than x86_64 - I've come across a similar issue with other ecosystems.

Anyway I'm not sure how to notarise in a GitHub Actions build but this workaround seems to work.

  1. Install the .dmg normally by dragging to Applications (or clone the repo and build according to the README)
  2. Open Keychain Access. In the menubar options, select Keychain Access > Certificate Assistant > Create a Certificate
  3. Give a name to the certificate like MyLocalCert. Select Self Signed Root and Code Signing, then click Create
  4. In /Applications run
    codesign --deep --force --verbose --sign "MyLocalCert" Arma\ 3\ Unix\ Launcher.app

This should let you launch the app.

An alternative option is to switch back the GitHub Actions build to an older macOS runner on x86_64, since that seems to have no issues, and just let people run it with Rosetta.

jblarue commented 2 weeks ago

Not sure if related but the .dmg of the latest version has a mach-o header that indicates arm64 when the filename seems to indicate the intended target platform was x86_64.

lipo Arma\ 3\ Unix\ Launcher -info
Non-fat file: Arma 3 Unix Launcher is architecture: arm64

Could this be due to the macos-latest GitHub Actions runner moving to m1 arm64 by default between the commit 383 and the commit 413 releases?

Edit: I just saw this commit that fixes the paths to point to arm64 homebrew. So it's not that the binary is built incorrectly.

I think this is because arm64 has stricter code signing requirements than x86_64 - I've come across a similar issue with other ecosystems.

Anyway I'm not sure how to notarise in a GitHub Actions build but this workaround seems to work.

  1. Install the .dmg normally by dragging to Applications (or clone the repo and build according to the README)
  2. Open Keychain Access. In the menubar options, select Keychain Access > Certificate Assistant > Create a Certificate
  3. Give a name to the certificate like MyLocalCert. Select Self Signed Root and Code Signing, then click Create
  4. In /Applications run
codesign --deep --force --verbose --sign "MyLocalCert" Arma\ 3\ Unix\ Launcher.app

This should let you launch the app.

An alternative option is to switch back the GitHub Actions build to an older macOS runner on x86_64, since that seems to have no issues, and just let people run it with Rosetta.

Just tried this and couldn't seem to get it to work.