goostengine / goost

A general-purpose, extensible and customizable C++ extension for Godot Engine.
https://goostengine.github.io/
MIT License
481 stars 18 forks source link

Goost 1.1 codesigning crash on Mac (arm64) #143

Open djrain opened 3 years ago

djrain commented 3 years ago

Goost and Godot version: Godot 3.4 stable + Goost 1.1

OS/platform/device including version: macOS Big Sur 2020 Mac Mini M1

Issue description: I've been using Goost 1.0 with Godot 3.3.2 successfully, now trying to update to Godot 3.4 with Goost 1.1. Upon first trying to open the app, as expected I got the error "Godot is damaged and can't be opened" (#94).

But after running the necessary command to get around that, opening Godot Goost results in an immediate crash:

Screen Shot 2021-11-08 at 9 54 22 AM

Steps to reproduce: open Godot 3.4 with Goost 1.1 on Mac (I guess)

Is this issue reproducible in official Godot builds? no

Minimal reproduction project: N/A

Xrayez commented 3 years ago

Welp, I kind of expected this to happen, looks like code signing is required now.

Unfortunately, as I said in #94, I don't really have enough resources to resolve this. I'm distributing macOS builds because they are part of official build process in Godot, not necessarily because I've tested those myself.

Here's some notes by bruvzg at Godot contributors chat: https://chat.godotengine.org/channel/general?msg=pbpsoK3fXe4MtpJTe:

image

But that's definitely something to resolve...

djrain commented 3 years ago

I see, tough luck I guess. Fortunately I can get by with the official builds for now.

Xrayez commented 3 years ago

@djrain I think I might have figured a workaround.

According to crash report, the code runs ARM code. Since Godot 3.4, both Intel x86 and Apple Silicon architecture are supported via universal binary (so does Goost).

If the crash is only reproducible on ARM, then I think it should be possible to force Intel-based code via Rosetta (which apparenly worked for you according to #94, it's just that now ARM is preferred by default, which causes the crash as described in this bug report).

For instructions, you could try "How to force universal Mac apps to run under Rosetta emulation instead of natively" article.

Please let me know if it helps. If it does, that's definitely a workaround worth to be documented.

djrain commented 3 years ago

You're right, running the editor with Rosetta does avoid the issue. And the performance seems fine, so that's a decent workaround. Thanks!

ghost commented 3 years ago

Codesigning can be done from Github Actions. https://localazy.com/blog/how-to-automatically-sign-macos-apps-using-github-actions

In fact this is how most people do it since they don't have access to an XCode for codesigning purposes. Costs a bit ever year. Github mac-latest can codesign but you still need to pay that 100 bux to get 1 certificate (it can be re-used for 5 years).