When exporting a project that includes fmod-gdextension 4.1.0-4.2.0 in Godot 4.2.1-stable, the macOS export fails at the codesigning step:
Output
```
savepack: end
export framework: /home/outfrost/Code/Jams/asdfghtest/godot-wild-jam-66/addons/fmod/libs/macos/libGodotFmod.macos.template_release.framework -> /home/outfrost/.cache/godot/GWJ66/GWJ66.app/Contents/Frameworks/libGodotFmod.macos.template_release.framework
using built-in codesign...
ERROR: CodeSign: Unknown bundle type.
at: codesign (platform/macos/export/codesign.cpp:1554)
WARNING: Code Signing: Built-in CodeSign failed with error "Unknown bundle type.".
at: add_message (editor/export/editor_export_platform.h:179)
export: step 2: Code signing bundle
using built-in codesign...
CodeSign: Signing executable: /home/outfrost/.cache/godot/GWJ66/GWJ66.app/Contents/MacOS, bundle: /home/outfrost/.cache/godot/GWJ66/GWJ66.app/Contents with entitlements /home/outfrost/.cache/godot/GWJ66.entitlements
CodeSign: Reading bundle info...
CodeSign: Executable is fat, extracting...
CodeSign: Generating bundle CodeResources...
ERROR: CodeSign/CodeResources: Unsigned nested executable file.
at: add_nested_file (platform/macos/export/codesign.cpp:249)
ERROR: CodeSign: Failed to process nested resources.
at: _codesign_file (platform/macos/export/codesign.cpp:1339)
WARNING: Code Signing: Built-in CodeSign failed with error "Failed to process nested resources.".
at: add_message (editor/export/editor_export_platform.h:179)
export: end
ERROR: Project export for preset "macOS" failed.
at: _fs_changed (editor/editor_node.cpp:994)
```
(The error messages here are rather obscure, and something that needs work on its own. I should probably file an issue for Godot.) With the help of strace -e open,stat I was able to find a clue.
The mac codesigning step requires a manifest in the form of an Info.plist file, but the fmod-gdextension's release does not contain any such files.
When I created addons/fmod/libs/macos/libGodotFmod.macos.template_release.framework/Info.plist with the following contents:
When exporting a project that includes fmod-gdextension 4.1.0-4.2.0 in Godot 4.2.1-stable, the macOS export fails at the codesigning step:
Output
``` savepack: end export framework: /home/outfrost/Code/Jams/asdfghtest/godot-wild-jam-66/addons/fmod/libs/macos/libGodotFmod.macos.template_release.framework -> /home/outfrost/.cache/godot/GWJ66/GWJ66.app/Contents/Frameworks/libGodotFmod.macos.template_release.framework using built-in codesign... ERROR: CodeSign: Unknown bundle type. at: codesign (platform/macos/export/codesign.cpp:1554) WARNING: Code Signing: Built-in CodeSign failed with error "Unknown bundle type.". at: add_message (editor/export/editor_export_platform.h:179) export: step 2: Code signing bundle using built-in codesign... CodeSign: Signing executable: /home/outfrost/.cache/godot/GWJ66/GWJ66.app/Contents/MacOS, bundle: /home/outfrost/.cache/godot/GWJ66/GWJ66.app/Contents with entitlements /home/outfrost/.cache/godot/GWJ66.entitlements CodeSign: Reading bundle info... CodeSign: Executable is fat, extracting... CodeSign: Generating bundle CodeResources... ERROR: CodeSign/CodeResources: Unsigned nested executable file. at: add_nested_file (platform/macos/export/codesign.cpp:249) ERROR: CodeSign: Failed to process nested resources. at: _codesign_file (platform/macos/export/codesign.cpp:1339) WARNING: Code Signing: Built-in CodeSign failed with error "Failed to process nested resources.". at: add_message (editor/export/editor_export_platform.h:179) export: end ERROR: Project export for preset "macOS" failed. at: _fs_changed (editor/editor_node.cpp:994) ```(The error messages here are rather obscure, and something that needs work on its own. I should probably file an issue for Godot.) With the help of
strace -e open,stat
I was able to find a clue.The mac codesigning step requires a manifest in the form of an
Info.plist
file, but the fmod-gdextension's release does not contain any such files.When I created
addons/fmod/libs/macos/libGodotFmod.macos.template_release.framework/Info.plist
with the following contents:Info.plist
```xmlthe build succeeded.
As far as I understand now, in order for projects to build for macOS and work properly, each "framework" needs to have a valid
Info.plist
manifest included. See also: https://codeberg.org/ksk/godot-luau-script (bin/luau-script/libluau-script.macos.template_release.framework/Info.plist, v0.9.1).On a side note, I've also noticed the framework files also have inconsistent execute permissions.