App notarization

On this page 7

App notarization is Apple’s automated security check for Mac software distributed outside the Mac App Store: the developer uploads a signed app, installer or disk image to Apple’s notary service, which scans it for known malicious content and code-signing problems and, if it passes, issues a notarization ticket that Gatekeeper recognizes. In macOS security & privacy, it is the step that links independent software distribution to Apple’s malware defenses without requiring App Store review.

Since macOS Catalina, Gatekeeper expects software signed with a Developer ID certificate to also be notarized before it opens normally. Notarization is not a human review of functionality or quality, and it does not guarantee that an app is safe; it confirms that Apple’s automated checks found no known problems at the time of submission.

How the notarization process works

Notarization is a pipeline of signing, submission, scanning and stapling. Each step must succeed for Gatekeeper to accept the software without a warning on a user’s Mac.

StepWhat happensTypical tool
Code signingApp signed with a Developer ID certificate and secure timestampcodesign or Xcode
Hardened RuntimeRuntime protections enabled with declared exceptionsXcode signing settings
SubmissionArchive, package or disk image uploaded to the notary servicexcrun notarytool submit
Automated scanMalware and signing checks run on Apple serversNotary service
Ticket issuedResult recorded and linked to the code signatureNotary service
StaplingTicket attached to the file for offline checksxcrun stapler staple
Steps in notarizing Mac software

Most submissions complete within minutes, although times vary with load and file size. When a submission fails, the notary log lists every problem, such as unsigned nested binaries, a missing secure timestamp or the debugging entitlement get-task-allow left enabled.

How Gatekeeper uses notarization tickets

When a user first opens downloaded software, macOS checks the quarantine attribute set by the browser or messaging app and passes the file to Gatekeeper. Gatekeeper verifies the signature and looks for a ticket, either stapled to the file or retrieved online from Apple.

Software statusGatekeeper behaviorUser experience
Signed and notarizedAllowed after a first-launch confirmationDialog names the developer and download source
Signed, not notarizedBlocked by defaultUser must approve in System Settings
UnsignedBlocked by defaultStrong warning and manual approval
Ticket revokedBlockedmacOS reports the software as damaged or malicious
App Store appAllowed through store review pathNo notarization step needed
Gatekeeper outcomes by software status

Stapling matters for offline installation. Without a stapled ticket, a Mac that cannot reach Apple’s servers cannot confirm notarization. With macOS Sequoia, Apple also removed the Control-click shortcut for opening unnotarized software, so users must approve it explicitly under Privacy & Security in System Settings.

Notarization is one layer of a defense-in-depth design. It acts before first launch, while other features restrict what running code can do or detect malware later.

ProtectionWhen it actsMain purpose
App notarizationBefore distribution and first launchConfirms an automated malware and signing check
GatekeeperAt first launch of downloaded softwareEnforces signing and notarization policy
Hardened RuntimeWhile the app runsBlocks code injection and unsafe memory use
XProtectAt launch and during background scansSignature-based malware detection and removal
SIPContinuouslyProtects system files from modification
TCCWhen the app requests sensitive accessUser consent for camera, files and other data
Notarization and neighboring macOS protections

The difference from App Store review is fundamental. Store review includes human checks against content and business guidelines, while notarization is automated and security-focused and leaves distribution, pricing and features to the developer.

Revocation and the limits of notarization

Because a ticket is tied to a specific code signature, Apple can revoke tickets or Developer ID certificates when it later identifies malware. Revocation lets macOS block software that passed notarization earlier, which is important because scans only detect what is known at submission time.

Attackers have occasionally obtained notarization for harmful software, so notarization should be treated as a baseline signal, not a verdict. The checks do not evaluate whether an app collects excessive data, behaves deceptively or downloads additional code after installation.

Notarization also has operational limits for developers. It depends on Apple’s online service, so an outage or account problem can delay a release. A notarized build covers only that exact signature; any change to the binary, including a minor patch, requires a new submission and a new ticket. Software that updates itself must notarize every update it delivers.

The same concept now appears beyond the Mac. In the European Union, apps distributed on iPhone through alternative marketplaces undergo a comparable notarization review, which is broader than the Mac check and combines automated and human steps focused on platform integrity.

Practical guidance for developers

Teams that ship Mac software outside the store usually automate notarization in their build pipeline. Credentials for the notary service are stored as an app-specific password or an App Store Connect API key in the keychain profile used by notarytool.

FailureCauseFix
Nested code not signedHelper tools or frameworks skippedSign every executable from the inside out
No secure timestampSigning without the timestamp optionRe-sign with a secure timestamp
Hardened Runtime missingRuntime option not enabledEnable it and declare needed exceptions
Debug entitlement presentDevelopment build submittedSubmit a release build
Ticket not found offlineTicket not stapledStaple the app, package or disk image
Frequent notarization failures and fixes
  • Use notarytool, because the older altool workflow for notarization is no longer accepted.
  • Verify the result with spctl --assess --verbose and xcrun stapler validate before release.
  • Notarize the outermost distributed container, such as the disk image, and staple each item users may open directly.

The short version

Many Mac apps are downloaded from the developer’s own website, not from the App Store. Notarization is Apple’s quick security check for those apps. The developer sends the app to Apple, and computers scan it for known malware.

If it passes, the app gets a digital approval stamp. Your Mac looks for that stamp the first time you open the app. A missing stamp leads to a warning, so you should think twice before allowing the app.

Where it makes a difference

A small company sells a photo-management app for the Mac directly from its website as a disk image. Its build server signs the app and its helper tool with a Developer ID certificate, enables the Hardened Runtime, submits the disk image with notarytool and staples the ticket once the scan succeeds, all in about ten minutes.

Customers who download the disk image see only the standard first-launch dialog naming the developer. Before notarization was automated, support received regular messages from users confused by blocked-app warnings. After the change, those requests nearly disappeared, and the app installs cleanly even on Macs without internet access thanks to the stapled ticket.