Skip to content

Conversation

@ammario
Copy link
Member

@ammario ammario commented Oct 7, 2025

Problem

  1. The .app bundles were being signed correctly, but we added dmg.sign: true which is actually unnecessary and discouraged by electron-builder
  2. Both DMG files (x64 and arm64) were being uploaded as a single artifact, making it confusing for users

Solution

  1. Removed dmg.sign: true - DMG signing is not needed and can cause issues. What matters is the .app bundle signing (which works perfectly)
  2. Split artifacts - Now uploading as separate macos-dmg-x64 and macos-dmg-arm64 artifacts for clarity

Why DMG signing is unnecessary

According to electron-builder documentation: "Signing is not required and will lead to unwanted errors in combination with notarization requirements."

The .app bundle inside the DMG is properly signed with:

  • Developer ID Application certificate
  • Hardened Runtime enabled
  • All frameworks and helpers signed
  • Valid certificate chain through Apple Root CA

Changes

# .github/workflows/build.yml
- name: Upload macOS DMG (x64)
  path: release/*-x64.dmg
  
- name: Upload macOS DMG (arm64)
  path: release/*-arm64.dmg
// package.json - removed dmg section
"mac": {
  "target": [
    { "target": "dmg", "arch": "x64" },
    { "target": "dmg", "arch": "arm64" }
  ],
  ...
}

Generated with cmux

The .app bundles were being signed, but the final DMG files were not.
Adding dmg.sign configuration to ensure the DMG itself is also signed.

_Generated with `cmux`_
@ammario ammario force-pushed the fix-dmg-signing-v2 branch from ea34e95 to d6f8396 Compare October 7, 2025 20:05
@ammario ammario merged commit f3cc163 into main Oct 7, 2025
7 checks passed
@ammario ammario deleted the fix-dmg-signing-v2 branch October 7, 2025 20:10
ammario added a commit that referenced this pull request Oct 7, 2025
## Problem
1. PR #83 added `dmg.sign: true` which is actually **unnecessary and
discouraged** by electron-builder
2. Both DMG files (x64 and arm64) are being uploaded as a single
artifact, making it confusing for users

## Solution
1. **Removed `dmg.sign: true`** - DMG signing is not needed and can
cause issues. What matters is the .app bundle signing (which works
perfectly)
2. **Split artifacts** - Now uploading as separate `macos-dmg-x64` and
`macos-dmg-arm64` artifacts for clarity

## Why DMG signing is unnecessary
According to electron-builder documentation: "Signing is not required
and will lead to unwanted errors in combination with notarization
requirements."

The .app bundle inside the DMG is properly signed with:
- Developer ID Application certificate
- Hardened Runtime enabled
- All frameworks and helpers signed
- Valid certificate chain through Apple Root CA

✅ Verified on local machine: `codesign --verify --deep --strict` passes

## Changes
```yaml
# .github/workflows/build.yml
- name: Upload macOS DMG (x64)
  path: release/*-x64.dmg
  
- name: Upload macOS DMG (arm64)
  path: release/*-arm64.dmg
```

```json
// package.json - removed dmg section entirely
"mac": {
  "target": [
    { "target": "dmg", "arch": "x64" },
    { "target": "dmg", "arch": "arm64" }
  ],
  ...
}
```

_Generated with `cmux`_
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant