Fix blank Applications icon in DMG installer

Switch from npm create-dmg (sindresorhus) to brew create-dmg
(create-dmg/create-dmg) which properly renders the Applications
folder symlink icon with explicit layout control.
This commit is contained in:
Lawrence Chen 2026-02-08 17:11:19 -08:00
parent d2ecfc4342
commit cb4c87113b

View file

@ -44,7 +44,7 @@ jobs:
run: |
brew update
brew install zig
npm install --global create-dmg
brew install create-dmg
- name: Build GhosttyKit.xcframework
run: |
@ -160,12 +160,23 @@ jobs:
xcrun stapler validate "$APP_PATH"
spctl -a -vv --type execute "$APP_PATH"
rm -f "$ZIP_SUBMIT"
# create-dmg generates a styled drag-to-install DMG (matches Ghostty's approach)
# create-dmg (brew) generates a styled drag-to-install DMG
# It expects: create-dmg [options] <output.dmg> <source_folder>
# --no-internet-enable avoids deprecated flag warning
DMG_SOURCE="$(mktemp -d)"
cp -R "$APP_PATH" "$DMG_SOURCE/"
create-dmg \
--identity="$APPLE_SIGNING_IDENTITY" \
"$APP_PATH" \
./
mv ./cmuxterm*.dmg "$DMG_RELEASE"
--volname "cmuxterm" \
--window-pos 200 120 \
--window-size 660 400 \
--icon-size 160 \
--icon "cmuxterm.app" 180 170 \
--app-drop-link 480 170 \
--no-internet-enable \
--codesign "$APPLE_SIGNING_IDENTITY" \
"$DMG_RELEASE" \
"$DMG_SOURCE"
rm -rf "$DMG_SOURCE"
DMG_SUBMIT_JSON="$(xcrun notarytool submit "$DMG_RELEASE" --apple-id "$APPLE_ID" --team-id "$APPLE_TEAM_ID" --password "$APPLE_APP_SPECIFIC_PASSWORD" --wait --output-format json)"
DMG_SUBMIT_ID="$(python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])' <<<"$DMG_SUBMIT_JSON")"
DMG_STATUS="$(python3 -c 'import json,sys; print(json.load(sys.stdin)["status"])' <<<"$DMG_SUBMIT_JSON")"