-
-
Notifications
You must be signed in to change notification settings - Fork 21.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[macOS] Godot 4.3 Dev Snapshot 6 (Mono) - macOS App from TestFlight not working #91469
Comments
I'm not sure what's wrong, all libs seem to be correctly signed and loading fine (I can reproduce the error only if I deliberately break signature after exporting). Can you check signature for the file ( |
|
I was just thinking that this might be an issue related to .NET and maybe (hopefully 😁) only a wrong parameter when Godot exports to macOS for App Store. |
I had a couple of friends and family members try it on their devices. Hoping that it had something to do with my environment. Sadly they can reproduce the issue, too. |
Maybe related? |
I’m having the same issue: The builds reaches macOS TestFlight but crashes at startup (exporting locally without signing runs works fine).
codesign -vvvv says that libhostfxr.dylib is valid at disk and satisfies its Designated Requirement. So apparently is correctly signed, but maybe it doesn’t match with the rest of signatures of the package. Is there a command to show the signature info for a particular library/executable file? |
Please check if #94518 fixes this too. |
Hi, will do! :) I hope I get to it today! |
#94518 didn’t fix this issue Could you please @bruvzg @Ciel1996 share which version of .net are you using? I’m using 8.0.1 arm64 (Apple Sillicon) downloaded from https://dotnet.microsoft.com/en-us/download |
I'm also running .NET 8 arm64. Sadly haven't looked at the exact version. I tried compiling and exporting using the master branch, but did not have time to complete the export. |
Here is the output of my dotnet --info:
|
#94518 won't fix it, it's for opposite case (signing for distribution outside App Store). I have no idea what's exactly is wrong and how to fix it. .NET libraries or the way Godot use them might be incompatible with some undocumented App Store requirements (we might need to use full AOT, like we do for iOS, or something similar). The only thing I can suggest is disabling sandboxing (support for it is limited, and it's barely tested), and using much less restrictive distribution outside App Store with signing + notarization. Or do not use .NET, regular version of Godot should work with App Store. |
I don't think this is 100% related to App Store distribution. Seems to be a general signing issue.
If I export with signing Disabled the app runs just fine. Super strange issue. |
.NET's default host has the following default entitlements:
@Ciel1996 Can you try enabling the The other entitlements should already be enabled by default for .NET builds (after the fix in #94680). So make sure to use Godot 4.3 RC 3. |
Same issue with "Disable Library Validation" enabled on 4.3 RC3. Build uploads fine to TestFlight but crashes:
|
I can also still reproduce the issue using 4.3 RC3
|
This reports TestFlight about the entitlements of my latest build with RC3 and disable-library-validation: true.
|
And here's mine:
|
I'm wondering if the issue is related to Godot re signing and using the same team id for the C# runtime dlls. According to the Apple docs, Disable Library Validation is used when the Team ID differs between the main executable and the libraries. Godot makes them match:
|
It seems Apple re-signs apps published through the App Store, and it's possible that it didn't re-sign |
Sure! game.app
libhostfxr.dylib
|
Apparently Godot is signing stuff with the "--deep" command: Line 55 in 39fc116
Which is something that could cause this kind of errors on Library code, according to this thread: |
This |
There may be more information in the Console logs (https://support.apple.com/en-in/guide/console/welcome/mac). Can you share the logs for when the problem occurs? |
Sure, I think this confirms what we were talking about earlier:
Btw, it shows the same for all the other dylibs, I have shortened the log for better readability. |
Apparently I have fixed the issue. I have a working build directly from TestFlight! :D |
Can confirm that the exported game works on macOS after downloading it via TestFlight. I tested it with Godot 4.4 Snapshot 1. Thank you for your help! 😄 |
Tested versions
System information
Godot v4.3.dev6.mono - macOS 14.4.1 - Vulkan (Forward+) - integrated Apple M1 - Apple M1 (8 Threads)
Issue description
I have opened a related issue a while ago, which was partially fixed with 4.3 dev 6 (PR #90428)
I use .NET 8, without AOT (because that caused errors on Apple's side).
Whenever I run the game downloaded via TestFlight I get this on startup:
Steps to reproduce
In my case it starts as expected, but whenever the game starts executing .NET code, it just crashes with the message above
Minimal reproduction project (MRP)
I can't provide one at the moment, but I will try to create a similar project if required. However for reproduction an Apple Developer Account will also be necessary.
The text was updated successfully, but these errors were encountered: