Skip to content
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 export] Implements ad-hoc signing on Linux/Windows. #51310

Merged
merged 1 commit into from
Jan 18, 2022

Conversation

bruvzg
Copy link
Member

@bruvzg bruvzg commented Aug 6, 2021

This PR adds:

  • custom implementation of codesign to ad-hoc sign macOS exports on Linux/Windows (and macOS without Xcode installed), to allow valid macOS export from any platform. Using real signatures is not supported (MbedTLS used by Godot for cryptography do not have PKCS#7/CMS support), but without notarization there are no benefits over ad-hoc anyway.
  • entitlements config validation for GDNative exports.
  • extra warnings for different singing conditions.
  • some optional extra usage messages to export settings to match supported entitlements.
  • improved export template handling to allow including frameworks in the template ZIP (won't work on Windows, due to lack of symlink support implementation).

Tested on macOS, Linux and Windows with classic, mono + GDNative libraries.

Note for testing: there are changes to export template Info.plist, some features (usage message) won't work if it's used with old template, but signing should work in any case.

Screenshot 2021-08-10 at 20 23 18

Fixes: #51007, #48076, #48803

editor/export/SCsub Outdated Show resolved Hide resolved
editor/export/codesign.cpp Outdated Show resolved Hide resolved
editor/export/codesign.cpp Outdated Show resolved Hide resolved
editor/export/codesign.cpp Outdated Show resolved Hide resolved
editor/export/codesign.cpp Outdated Show resolved Hide resolved
editor/export/codesign.cpp Outdated Show resolved Hide resolved
editor/export/codesign.cpp Outdated Show resolved Hide resolved
editor/export/codesign.cpp Outdated Show resolved Hide resolved
editor/export/codesign.h Outdated Show resolved Hide resolved
editor/export/lipo.cpp Outdated Show resolved Hide resolved
editor/export/codesign.h Outdated Show resolved Hide resolved
…a privacy settings, entitlements warnings and error checking.
@akien-mga akien-mga merged commit 567b600 into godotengine:master Jan 18, 2022
@akien-mga
Copy link
Member

Thanks a ton!

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

Successfully merging this pull request may close these issues.

3.3.2 Linux Headless exports invalid Mac app
3 participants