@@ -48,10 +48,49 @@ jobs:
48
48
env :
49
49
MACOS_CERTIFICATE_PASSWORD : ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
50
50
51
- - name : Setup notarization credentials
51
+ - name : Setup notarization credentials and entitlements
52
52
if : matrix.os == 'macos-latest'
53
53
run : |
54
54
echo ${{ secrets.GODOT_MACOS_NOTARIZATION_API_KEY }} | base64 --decode > notarization_api_key.p8
55
+ mkdir -p build
56
+ cat > build/entitlements.mac.plist << 'EOF'
57
+ <?xml version="1.0" encoding="UTF-8"?>
58
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
59
+ <plist version="1.0">
60
+ <dict>
61
+ <key>com.apple.security.cs.allow-jit</key>
62
+ <true/>
63
+ <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
64
+ <true/>
65
+ <key>com.apple.security.cs.allow-dyld-environment-variables</key>
66
+ <true/>
67
+ <key>com.apple.security.files.user-selected.read-write</key>
68
+ <true/>
69
+ <key>com.apple.security.files.downloads.read-write</key>
70
+ <true/>
71
+ <key>com.apple.security.network.client</key>
72
+ <true/>
73
+ <key>com.apple.security.network.server</key>
74
+ <true/>
75
+ </dict>
76
+ </plist>
77
+ EOF
78
+ chmod 644 build/entitlements.mac.plist
79
+
80
+ - name : Verify entitlements file (macOS)
81
+ if : matrix.os == 'macos-latest'
82
+ run : |
83
+ echo "Verifying entitlements file..."
84
+ if [ ! -f build/entitlements.mac.plist ]; then
85
+ echo "Error: entitlements.mac.plist not found"
86
+ exit 1
87
+ fi
88
+ if [ ! -r build/entitlements.mac.plist ]; then
89
+ echo "Error: entitlements.mac.plist not readable"
90
+ exit 1
91
+ fi
92
+ echo "Validating plist format..."
93
+ plutil -lint build/entitlements.mac.plist
55
94
56
95
- name : Build Electron app
57
96
if : matrix.os != 'ubuntu-latest-large'
62
101
APPLE_API_KEY_ID : ${{ secrets.GODOT_MACOS_NOTARIZATION_API_KEY_ID }}
63
102
APPLE_API_KEY_ISSUER : ${{ secrets.GODOT_MACOS_NOTARIZATION_API_UUID }}
64
103
run : npm run electron-build
65
-
104
+
66
105
- name : Build Electron app (Linux)
67
106
if : matrix.os == 'ubuntu-latest-large'
68
107
env :
0 commit comments