Quick answer: Godot 4 macOS universal binary export failing codesign step? Universal binaries need both architectures signed - use --options runtime or sign each slice.
Universal export; codesign fails on the arm64 slice with 'invalid signature'.
Sign with --options runtime
codesign --options runtime --sign "Developer ID" --deep app.appRecursive sign with hardened runtime. Universal binaries get both slices signed.
Or build per-arch
Separate arm64 and x86_64 builds. Each signed independently; combined later via lipo.
Verify with spctl
spctl --assess --verbose app.appReports signature validity. Must pass before notarization.
“Universal binaries are two binaries. Sign both.”
If you ship Mac, the codesign + notarize ritual is non-optional. Document; automate.