Skip to content

v1.1.4 — Fix the "damaged and can't be opened" disk image

Choose a tag to compare

@romizone romizone released this 26 Jul 07:58
· 7 commits to main since this release

Fixes the .dmg published with 1.1.3, which macOS refused with
"PdfRomeo is damaged and can't be opened."

Installing

  1. Open the .dmg and drag PdfRomeo into Applications.
  2. Clear the download quarantine flag:
xattr -dr com.apple.quarantine /Applications/PdfRomeo.app
  1. Launch normally.

That step is required because the app is signed ad-hoc rather than
notarised with an Apple Developer ID. Right-click → Open on its own is
often not enough for an ad-hoc signature on Apple Silicon.

What was wrong

The 1.1.3 build pruned unused Qt frameworks after py2app had already
signed the bundle. The signature seals a manifest of every file inside the
app, so removing files afterwards invalidated it. Gatekeeper reported
a sealed resource is missing or invalid, and macOS presents that as
"damaged" — with no override available to the user.

  • The bundle is re-signed after pruning, and the build now fails loudly if
    the signature does not verify, so a broken bundle cannot be published.
  • Signing happens on a copy in a scratch directory. codesign rejects any
    bundle carrying extended attributes, and they cannot be stripped in
    place: com.apple.provenance is kernel-managed, and a synced project
    folder keeps re-stamping the bundle with com.apple.FinderInfo.
  • The disk image is staged the same way and ships an Applications
    symlink.

No application code changed. Every fix from
v1.1.3 — OCR,
Split by Bookmarks, Split by Size, Watermark, Bates Numbering, Organize
Pages, Compress, and the dependency detection — is present.

Full changelog: v1.1.3...v1.1.4