GodotSteam: macOS Notarization fails when using GodotSteam GDExtension

Describe the bug Notarization fails with the following error message:

{
  "logFormatVersion": 1,
  "jobId": "37eced4c-005a-469d-85db-6270676f6f02",
  "status": "Invalid",
  "statusSummary": "Archive contains critical validation errors",
  "statusCode": 4000,
  "archiveFilename": "td.dmg",
  "uploadDate": "2024-01-23T14:47:00.886Z",
  "sha256": "d5ebea08f0420966ecea90cb3462f5ad073dc8fea243cb737b0ce3a67d89fc93",
  "ticketContents": null,
  "issues": [
    {
      "severity": "error",
      "code": null,
      "path": "td.dmg/td-gdscript.app/Contents/Frameworks/libgodotsteam.framework/libgodotsteam",
      "message": "The signature of the binary is invalid.",
      "docUrl": "https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues#3087735",
      "architecture": "x86_64"
    },
    {
      "severity": "error",
      "code": null,
      "path": "td.dmg/td-gdscript.app/Contents/Frameworks/libgodotsteam.framework/libgodotsteam",
      "message": "The signature of the binary is invalid.",
      "docUrl": "https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues#3087735",
      "architecture": "arm64"
    }
  ]
}

It seems to have something to do with codesigning the framework. I tried to codesign the frameworks myself but couldn’t figure it out – in truth, I don’t know enough about codesigning.

To Reproduce Export a Godot project with GodotSteam to macOS and enable codesigning and notarization in the export settings.

Desktop version: macOS Sonoma 14.2.1

Version of Godot: Godot 4.2.1

Version of GodotSteam: Godot 4.2.1 - Steamworks 1.58 - GodotSteam GDExtension 4.5.2

About this issue

  • Original URL
  • State: closed
  • Created 5 months ago
  • Comments: 16 (9 by maintainers)

Most upvoted comments

OK, now the plist files are in there. For some reason they were missing from the previous release! And apparently that PR you linked has been merged in too!

I tried to notarize it and that seemed to not work? But maybe for reasons unknown to me.

Regardless, thanks for all the work on this! if I can help with the “lib can’t be verified” thing, let me know. Looking forward to the next release with this issue fixed 😃

Notarization isn’t difficult per sé, but you need an Apple developer account, a Mac, and a bunch of terminal commands to do it. Regardless, the engine PR I linked to will enable notarization of games people make using Godot, but it won’t fix the security warning of libgodotsteam.debug. It may be that all you need is codesigning, and not notarization? It is probably good to look into that because every Godot editor user on Mac will be complaining about this for eternity unless you’re able to fix it, haha.

… but, after going to my security settings and allowing the specific framework, exporting and notarizing the .app, it notarizes successfully!

There’s a new PR following up on the issue I linked to earlier that supposedly contains all the necessary key/value pairs. Godot (funnily enough) will also fix this on its end (when and if the PR it’s accepted…) so this issue would technically not require a fix on GodotSteam’s end - but any effort you would take to add the plist file would still fix a warning indicating that the framework plist file was missing and had to be generated. Probably best to add it IMO!

Apparently this fixes the issue: https://github.com/godotengine/godot/issues/81733#issuecomment-1910722372

Seems easy enough to implement!