Skip to content

Commit a2f2f88

Browse files
authored
Merge pull request #24 from ElcanoTek/codex/fix-macos-app-launch-error
docs: default macOS packaging to Developer ID distribution
2 parents 9352bb0 + b612d83 commit a2f2f88

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

README.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -131,26 +131,28 @@ Before packaging, fetch `VICTORIA.md` from its private repository and place it i
131131

132132
The script uses `uvx pyinstaller`, so no `pip install` is required. The bundle will be created at `dist/Victoria.app`. It bundles `CRUSH.md`, `VICTORIA.md`, `crush.template.json`, `snowflake.mcp.json`, and `.crushignore` for runtime reference.
133133

134-
2. Sign the bundle so macOS will load the bundled Python framework:
134+
2. Sign the bundle with your Developer ID certificate so macOS will load the bundled Python framework:
135135

136136
```bash
137-
codesign --force --deep --sign - dist/Victoria.app
137+
codesign --force --deep --options runtime --sign "Developer ID Application: Your Name (TEAMID)" dist/Victoria.app
138138
```
139139

140-
Replace `-` with your Developer ID certificate when distributing outside your machine. Without this step, launching the app may fail with a "different Team IDs" error.
140+
A Developer ID certificate is issued through the paid [Apple Developer Program](https://developer.apple.com/programs/). After enrolling, create a "Developer ID Application" certificate in the developer portal and use it in the command above. Without a valid signature, launching the app may fail with a "different Team IDs" error or trigger Gatekeeper warnings.
141141

142-
3. Share the app internally by either wrapping it in a DMG or zipping the bundle:
142+
3. Share the signed app by wrapping it in a DMG or zipping the bundle, then notarize the archive for distribution:
143143

144-
* **DMG (polished drag-and-drop):** NOTE: replace "-" with your Developer ID if available
144+
* **DMG (polished drag-and-drop):**
145145
```bash
146-
codesign --deep --force --options runtime --sign "-" dist/Victoria.app
147146
hdiutil create -volname "Victoria" -srcfolder dist/Victoria.app -ov -format UDZO dist/Victoria.dmg
147+
xcrun notarytool submit dist/Victoria.dmg --wait
148+
xcrun stapler staple dist/Victoria.dmg
148149
```
149-
Notarization can be skipped for internal distribution.
150150

151151
* **ZIP (quick share):**
152152
```bash
153153
(cd dist && zip -r Victoria.zip Victoria.app)
154+
xcrun notarytool submit dist/Victoria.zip --wait
155+
xcrun stapler staple dist/Victoria.app
154156
```
155157
Users must unzip the archive and move `Victoria.app` to their Applications folder manually.
156158

0 commit comments

Comments
 (0)