Launch With Me · Apple Launch Lab
Distribute a Mac app: Mac App Store or notarization.
Notarization is not App Store review: it is an automated security check for apps distributed outside the Mac App Store. Pick the path; the checklist follows.
Mac App Store. Publishing a Mac app on the Mac App Store: App Store Connect, App Review, App Sandbox, updates through the Store. This workflow does not include notarization — Apple states that Mac App Store submission already includes equivalent checks. To distribute outside the Store (your website, a DMG, a PKG), use the “macOS — direct distribution” checklist. This is not an Apple review: your answers do not predict its decision.
macOS — direct distribution (Developer ID and notarization). Distributing a Mac app outside the Mac App Store (website, DMG, PKG, ZIP): Developer ID signing, Hardened Runtime, notarization, stapling, Gatekeeper behaviour, updates and delivery. Notarization is an automated security check by Apple, not App Review: nobody judges the app’s content. To publish on the Mac App Store, use the “Mac App Store” checklist.
Checklist
Mac App Store
Version 2026-10-23 · 26 points
Your context
These answers decide which points apply. Unanswered, a point stays listed as “may apply”.
First release or an update?
Can people create an account in the app?
Does login use a third-party or social service?
Does the app sell digital content or features?
Does it offer auto-renewable subscriptions?
Does the app or an SDK collect data?
Does the app access the camera, microphone, contacts, calendar or protected folders?
Does the app depend on a server or external services?
Will the app be available in the European Union?
Developer account
Active Apple Developer Program membership, under the right name
CriticalDetails, verification, evidence
Without an active membership nothing can be uploaded to App Store Connect. Apps in regulated fields are submitted by the legal entity that provides the service (5.1.1(ix)).
Verify: developer.apple.com → Account: active membership and correct seller name.
Evidence: Screenshot of the Account page.
Apple Developer Program — Enrollment ↗ · reviewed 2026-10-23
Trader status (DSA) declared for the European Union
Critical · may applyDetails, verification, evidence
Without a verified trader status the app is removed from EU storefronts and its updates are blocked there (Digital Services Act).
Verify: App Store Connect → Business → Compliance: status declared and verified.
Evidence: Screenshot of the DSA status.
App Store Connect Help — EU Digital Services Act trader requirements ↗ · reviewed 2026-10-23
Build, sandbox and signing
App Sandbox enabled, with only the entitlements needed
CriticalDetails, verification, evidence
Mac App Store apps must be appropriately sandboxed (2.4.5(i)). File access goes through user-selected files and security-scoped bookmarks; every extra entitlement must serve a real feature.
Verify: Run the sandboxed Release build and repeat every flow that reads or writes files, uses the network or hardware.
Evidence: List of entitlements with their justification.
Common failure: A feature that worked outside the sandbox and fails silently once sandboxed.
Apple — Configuring the macOS App Sandbox ↗ · reviewed 2026-10-23
Packaged with Xcode, self-contained bundle, no third-party installer
CriticalDetails, verification, evidence
The app is packaged and submitted with Xcode tools, with no third-party installer, as a single bundle that installs nothing in shared locations (2.4.5(ii)). Since 18 February 2025, no file may carry the com.apple.quarantine attribute to be uploaded.
Verify: Distribute App → App Store Connect from the Organizer completes without validation errors.
Evidence: Build visible in App Store Connect.
App Review Guidelines 2.4.5 — Mac App Store requirements ↗ · reviewed 2026-10-23
Signed for the Mac App Store — no notarization to do
CriticalDetails, verification, evidence
The build is signed for App Store distribution, entitlements matching the App ID. It does not need notarization: Apple states that Mac App Store submission already includes equivalent security checks. Notarization is for direct distribution (Developer ID).
Verify: The archive is distributed through “App Store Connect”, not through “Developer ID”.
Evidence: Distribution method chosen in the Organizer.
Apple — Notarizing macOS software before distribution ↗ · reviewed 2026-10-23
Privacy manifest with declared reasons
CriticalDetails, verification, evidence
Since 1 May 2024, new and updated apps declare approved reasons for the APIs Apple lists, including those used by third-party SDKs.
Verify: Organizer → Generate Privacy Report on the archive.
Evidence: Archive privacy report.
Apple — Privacy manifest files ↗ · reviewed 2026-10-23
Updates only through the Mac App Store
CriticalDetails, verification, evidence
Mac App Store apps update through the Mac App Store; any other mechanism (Sparkle or a custom updater) is not allowed (2.4.5(vii)). Remove it from the App Store target if you share code with a Developer ID version.
Verify: Look for any updater framework or “Check for Updates” menu in the App Store target.
Evidence: List of frameworks linked to the App Store target.
Common failure: “Check for Updates” menu left in the build: 2.4.5 rejection.
App Review Guidelines 2.4.5 — Mac App Store requirements ↗ · reviewed 2026-10-23
No auto-launch, root, licence screen or downloaded code
ImportantDetails, verification, evidence
No launch at login or processes that keep running after quitting without consent (2.4.5(iii)), no downloaded code or apps adding features (2.4.5(iv)), no root escalation (2.4.5(v)), no licence screen or licence key (2.4.5(vi)).
Verify: Quit the app: no process remains (Activity Monitor). Restart: nothing launches without the user’s consent.
Evidence: Activity Monitor test result.
App Review Guidelines 2.4.5 — Mac App Store requirements ↗ · reviewed 2026-10-23
Quality
Final, tested version with no placeholder content
CriticalDetails, verification, evidence
Final version, tested for crashes and bugs, with no placeholder text or temporary content (2.1(a)). It runs on the currently shipping macOS (2.4.5(viii)).
Verify: Test the TestFlight build on the current macOS and the oldest supported version, Apple silicon and Intel if the app is universal.
Evidence: List of Macs and macOS versions tested.
Common failure: Crash at first launch on the latest macOS: 2.1 rejection.
App Review Guidelines 2.1 — App Completeness ↗ · reviewed 2026-10-23
Critical flows work end to end
CriticalDetails, verification, evidence
First launch, opening and saving documents, main task, purchase and restore if any: each flow works in the submitted sandboxed build.
Verify: On a fresh macOS user account, repeat each flow.
Evidence: Dated list of the flows tested.
App Review Guidelines 2.1 — App Completeness ↗ · reviewed 2026-10-23
Windows, menus and shortcuts follow macOS conventions
ImportantDetails, verification, evidence
Resizable windows, full screen, multiple windows when relevant, a complete menu bar and standard keyboard shortcuts: a Mac app that behaves like an enlarged iPhone app disappoints and can be judged incomplete.
Verify: Resize each window to extreme sizes; use the app with the keyboard only for five minutes.
Evidence: Screenshots at minimum and maximum sizes.
Human Interface Guidelines — Windows ↗ · reviewed 2026-10-23
All languages in a single bundle
RecommendedDetails, verification, evidence
Mac App Store apps contain all language and localization support in a single bundle (2.4.5(ix)).
Verify: Change the app’s preferred language in System Settings and relaunch it.
Evidence: Languages checked.
App Review Guidelines 2.4.5 — Mac App Store requirements ↗ · reviewed 2026-10-23
Privacy and permissions
Privacy policy linked in App Store Connect and in the app
CriticalDetails, verification, evidence
All apps link to their privacy policy in the metadata and inside the app (5.1.1(i)).
Verify: The link can be found from the app menu or its settings.
Evidence: Policy URL and a screenshot of where it appears.
App Review Guidelines 5.1.1 — Data Collection and Storage ↗ · reviewed 2026-10-23
Privacy details complete and accurate
Critical · may applyDetails, verification, evidence
Required to submit new apps and updates, they also cover integrated third-party SDKs.
Verify: Compare each declared data type with what the app and its SDKs actually send.
Evidence: SDK inventory and a screenshot of the App Privacy section.
Apple — App privacy details on the App Store ↗ · reviewed 2026-10-23
Protected access explained and declinable
Critical · may applyDetails, verification, evidence
Camera, microphone, contacts, calendar, protected folders: each request has a clear purpose string, comes at the right moment, and the app stays usable if declined (5.1.1).
Verify: Reset permissions (tccutil reset) then decline each request.
Evidence: Purpose strings and the decline test result.
App Review Guidelines 5.1.1 — Data Collection and Storage ↗ · reviewed 2026-10-23
Account deletion can be started inside the app
Critical · may applyDetails, verification, evidence
An app that lets people create an account must let them start its deletion inside the app (5.1.1(v)).
Verify: Delete a test account from the app, then check the deletion on the server.
Evidence: Screenshot of the path in the app and proof on the server.
Apple — Offering account deletion in your app ↗ · reviewed 2026-10-23
An equivalent login option that protects privacy
Critical · may applyDetails, verification, evidence
If the primary login uses a third-party or social service, also offer an equivalent option that meets 4.8.
Verify: The equivalent option works with a new account.
Evidence: Screenshot of the login screen.
App Review Guidelines 4.8 — Login Services ↗ · reviewed 2026-10-23
Purchases and subscriptions
In-app purchases configured, visible and restorable
Critical · may applyDetails, verification, evidence
Unlocking features goes through In-App Purchase, with no licence key (3.1.1, 2.4.5(vi)). Products are complete and visible to the reviewer (2.1(b)) and a restore is available.
Verify: Sandbox purchase of each product, then restore on another macOS user account.
Evidence: Product status and test result.
App Review Guidelines 3.1 — Payments ↗ · reviewed 2026-10-23
Subscription: content, price and period clear
Critical · may applyDetails, verification, evidence
Before subscribing, the app describes what the person gets for the price; a period of at least seven days, available on all their devices (3.1.2).
Verify: Read the subscription screen as a stranger would.
Evidence: Screenshot of the subscription screen.
App Review Guidelines 3.1 — Payments ↗ · reviewed 2026-10-23
Product page
Representative Mac screenshots at the required sizes
CriticalDetails, verification, evidence
Screenshots show the app in use (2.3.3), at the Mac sizes App Store Connect accepts.
Verify: Each screenshot matches a real screen of the submitted build.
Evidence: Screenshot folder.
App Store Connect Help — Screenshot specifications ↗ · reviewed 2026-10-23
Accurate name, description and keywords
ImportantDetails, verification, evidence
Metadata reflects the actual experience (2.3); no third-party trademarks or unrelated terms (2.3.7).
Verify: Every feature mentioned exists in the submitted build.
Evidence: Product page text reviewed.
App Review Guidelines 2.3 — Accurate Metadata ↗ · reviewed 2026-10-23
Age rating questionnaire up to date
CriticalDetails, verification, evidence
Apple uses a new rating system (4+, 9+, 13+, 16+, 18+); answer every updated question honestly (2.3.6).
Verify: Every question is answered and matches the app.
Evidence: Screenshot of the questionnaire.
App Store Connect Help — Age ratings values and definitions ↗ · reviewed 2026-10-23
Testing
Build tested through TestFlight for Mac
ImportantDetails, verification, evidence
TestFlight also works for Mac apps: have at least one person outside development install the build.
Verify: A tester completes the main task without help.
Evidence: Build number and tester feedback.
Apple — TestFlight ↗ · reviewed 2026-10-23
App Review submission
A valid demo account for the reviewer
Critical · may applyDetails, verification, evidence
If the app has account-based features, provide an active demo account (or an approved demo mode), valid when the review happens.
Verify: Sign-in tested the day before submitting, on the submitted build.
Evidence: Date of the last sign-in test.
App Review Help — Provide information for a complete review ↗ · reviewed 2026-10-23
Backend services live during review
Critical · may applyDetails, verification, evidence
The services the app depends on are live and reachable for the whole review.
Verify: Uptime monitoring active, no maintenance scheduled.
Evidence: Uptime history.
App Review Guidelines 2.1 — App Completeness ↗ · reviewed 2026-10-23
Submission ready for App Review, no unresolved rejection
CriticalDetails, verification, evidence
Build selected, required sections complete, App Review notes written, no previous rejection pending. A ready submission does not guarantee approval.
Verify: App Store Connect shows no missing field and the App Review history holds no open message.
Evidence: Screenshot of the ready submission.
App Store Connect Help — Submit an app ↗ · reviewed 2026-10-23
Result
Not verified yet: critical points are still unanswered.
This does not mean the product is broken — only that these points have not been confirmed.
How the index is computed
Each applicable point weighs 3 (critical), 2 (important) or 1 (recommended), times 0.5 when reported done, 0.8 with evidence, 1 when verified in review, 0 when unknown or blocked. Not-applicable points are excluded. The index measures your progress, not compliance; it never decides the recommendation.
Next actions
- 1. Active Apple Developer Program membership, under the right name — developer.apple.com → Account: active membership and correct seller name.
- 2. Trader status (DSA) declared for the European Union — App Store Connect → Business → Compliance: status declared and verified.
- 3. App Sandbox enabled, with only the entitlements needed — Run the sandboxed Release build and repeat every flow that reads or writes files, uses the network or hardware.
- 4. Packaged with Xcode, self-contained bundle, no third-party installer — Distribute App → App Store Connect from the Organizer completes without validation errors.
- 5. Signed for the Mac App Store — no notarization to do — The archive is distributed through “App Store Connect”, not through “Developer ID”.
This result describes your answers, not an inspection of your product. It predicts neither Apple or Google approval, nor security, nor commercial success. “Verified” is reserved for points reviewed with evidence.
Your answers stay in this browser until you save them.
Keep this checklist in a project
Complete the form above first.
Checklist
macOS — direct distribution (Developer ID and notarization)
Version 2026-10-23 · 18 points
Your context
These answers decide which points apply. Unanswered, a point stays listed as “may apply”.
Which deliverable do you publish?
Does the app update itself (Sparkle or similar)?
Does the app install helpers, command-line tools, login items or system extensions?
Do you sell the app yourself (payment and licences)?
Does the app collect data (analytics, crash reports, account)?
Does the app access the camera, microphone, contacts or protected folders?
Developer ID signing
Developer ID certificates created and private key backed up
CriticalDetails, verification, evidence
Distribution outside the Mac App Store is signed with a “Developer ID Application” certificate (and “Developer ID Installer” for a PKG), obtained through the Apple Developer Program. Do not use a “Mac Distribution”, ad hoc or development certificate. Back up the private key off the build machine.
Verify: security find-identity -v -p codesigning lists the valid Developer ID Application certificate.
Evidence: Certificate name and expiry date.
Apple — Developer ID ↗ · reviewed 2026-10-23
All code signed with Developer ID and a secure timestamp
CriticalDetails, verification, evidence
The app, its frameworks, helpers, command-line tools and plug-ins are signed with Developer ID and a secure timestamp. The com.apple.security.get-task-allow entitlement must not be true in the distributed build.
Verify: codesign --verify --deep --strict --verbose=2 on the app; codesign -d --entitlements - to read the entitlements.
Evidence: codesign --verify output with no error.
Common failure: An unsigned embedded framework makes notarization fail.
Apple — Notarizing macOS software before distribution ↗ · reviewed 2026-10-23
Hardened Runtime enabled, exceptions limited to what is needed
CriticalDetails, verification, evidence
Notarization requires the Hardened Runtime on the app and command-line targets. Each exception (JIT, unsigned memory, disabled library validation…) weakens protection: keep only those a feature requires.
Verify: codesign -d --verbose=2 shows “flags=0x10000(runtime)” for each executable.
Evidence: List of runtime exceptions with their justification.
Apple — Hardened Runtime ↗ · reviewed 2026-10-23
PKG signed with Developer ID Installer
Critical · may applyDetails, verification, evidence
A PKG installer is signed with the “Developer ID Installer” certificate, separate from the app’s.
Verify: pkgutil --check-signature on the PKG shows the Developer ID Installer chain.
Evidence: pkgutil --check-signature output.
Xcode — Creating distribution-signed code for macOS ↗ · reviewed 2026-10-23
Notarization and Gatekeeper
Notarization accepted by Apple’s notary service
CriticalDetails, verification, evidence
Software distributed with Developer ID must be notarized to run without being blocked. Submit it with notarytool or Xcode: since 1 November 2023, altool and Xcode 13 or earlier are no longer accepted. Notarization is an automated security check, not a review of the app.
Verify: xcrun notarytool submit … --wait returns “Accepted”; read the log (notarytool log) for warnings.
Evidence: Submission ID and notarization log.
Common failure: “Invalid” status because an executable lacks a timestamp or the Hardened Runtime.
Apple — Notarizing macOS software before distribution ↗ · reviewed 2026-10-23
Notarization ticket stapled to the deliverable
ImportantDetails, verification, evidence
Stapling the ticket lets Gatekeeper verify it offline. You staple an app, a DMG or a PKG; a ZIP archive cannot be stapled: staple the app inside it, then re-zip.
Verify: xcrun stapler validate on the final deliverable answers “The validate action worked”.
Evidence: stapler validate output.
Apple — Customizing the notarization workflow ↗ · reviewed 2026-10-23
Clean first launch on a Mac that has never seen the app
CriticalDetails, verification, evidence
Gatekeeper checks signature and notarization when a downloaded file is first launched. Recent macOS versions make opening un-notarized software much harder for users; test exactly like a customer: download through a browser, then open.
Verify: On another Mac (or a fresh account), download the deliverable from your real link and open it: no “damaged” or “cannot be opened” message; spctl --assess --type execute -vv accepts the app.
Evidence: Screenshot of the first launch and spctl output.
Common failure: A file changed after notarization (resource added, re-signed) is no longer recognised by Gatekeeper.
Apple — Resolving common notarization issues ↗ · reviewed 2026-10-23
Deliverable and installation
Deliverable format chosen, itself signed and notarized
ImportantDetails, verification, evidence
DMG (drag to Applications), PKG (installs into system locations, scripts) or ZIP: choose based on the installation needed. Apple notarizes apps, disk images, installer packages and ZIP archives containing the app.
Verify: The published deliverable is the one that was notarized (same checksum).
Evidence: Chosen format and SHA-256 of the published file.
Apple — Notarizing macOS software before distribution ↗ · reviewed 2026-10-23
Simple installation and documented uninstall
ImportantDetails, verification, evidence
Installation without an administrator password when none is needed, app working from /Applications, nothing left outside the expected locations, and published uninstall instructions.
Verify: Install then uninstall on a fresh account following only your public instructions.
Evidence: Link to the installation and uninstall instructions.
Helpers, login items and extensions registered properly
Important · may applyDetails, verification, evidence
Login items, agents and daemons register through the Service Management framework, and system extensions go through user approval. Explain to the person why they need to allow them.
Verify: On a fresh Mac, the requested approval appears in System Settings and the app guides the user.
Evidence: Screenshots of the approval flow.
Apple — Service Management ↗ · reviewed 2026-10-23
Download served over HTTPS from your domain
ImportantDetails, verification, evidence
The deliverable downloads over HTTPS from a domain you control; publish the version and its SHA-256 so advanced users can verify it.
Verify: The public download link starts with https:// and the published checksum matches the file.
Evidence: Download URL and published checksum.
Payment and licensing outside the Store tested end to end
Important · may applyDetails, verification, evidence
Outside the Mac App Store you handle payment, receipts, refunds and licence activation. Activation must not lock out a legitimate customer offline, and your terms of sale are published.
Verify: Real purchase, licence received, activation, then a test refund.
Evidence: Purchase flow result and link to the terms.
Updates
Updates signed, served over HTTPS and verified by the app
Critical · may applyDetails, verification, evidence
An auto-updater is a code execution path: update feed over HTTPS, each update’s signature verified by the app (for example Sparkle’s EdDSA signature), and every new version signed with Developer ID and notarized.
Verify: Install the previous version, trigger the update, then check with spctl that the new version is accepted.
Evidence: HTTPS feed URL and update test result.
Common failure: An HTTP update feed without signatures: anyone on the network can deliver a binary.
Users learn that a new version exists
Recommended · may applyDetails, verification, evidence
Without automatic updates, plan a releases page, an email notice or an in-app version check.
Verify: The download page shows the current version and its notes.
Evidence: Link to the releases page.
Previous version kept available
RecommendedDetails, verification, evidence
Keep the previous notarized deliverable: if a version misbehaves you can republish the old one immediately, then fix.
Verify: The old version is archived with its checksum.
Evidence: Location of the version archive.
Privacy
Privacy policy published if the app collects data
Important · may applyDetails, verification, evidence
Analytics, crash reports, accounts or telemetry: describe what is collected, why, by which providers, and how to request deletion. Check the rules that apply to you (Swiss FADP, GDPR).
Verify: Compare the policy with the data the app actually sends.
Evidence: Policy URL.
Access requests explained and declinable
Important · may applyDetails, verification, evidence
Camera, microphone, contacts, protected folders, accessibility: each request has a clear purpose string and the app explains what will not work if declined.
Verify: Reset permissions (tccutil reset) and decline each request.
Evidence: Purpose strings and test result.
Quality
Tested from the downloaded deliverable, on the supported Macs
CriticalDetails, verification, evidence
Test the file actually published (not the Xcode build) on the oldest and newest supported macOS versions, Apple silicon and Intel if the app is universal.
Verify: Critical flows on each configuration, from the public download.
Evidence: List of Macs and macOS versions tested.
Result
Not verified yet: critical points are still unanswered.
This does not mean the product is broken — only that these points have not been confirmed.
How the index is computed
Each applicable point weighs 3 (critical), 2 (important) or 1 (recommended), times 0.5 when reported done, 0.8 with evidence, 1 when verified in review, 0 when unknown or blocked. Not-applicable points are excluded. The index measures your progress, not compliance; it never decides the recommendation.
Next actions
- 1. Developer ID certificates created and private key backed up — security find-identity -v -p codesigning lists the valid Developer ID Application certificate.
- 2. All code signed with Developer ID and a secure timestamp — codesign --verify --deep --strict --verbose=2 on the app; codesign -d --entitlements - to read the entitlements.
- 3. Hardened Runtime enabled, exceptions limited to what is needed — codesign -d --verbose=2 shows “flags=0x10000(runtime)” for each executable.
- 4. PKG signed with Developer ID Installer — pkgutil --check-signature on the PKG shows the Developer ID Installer chain.
- 5. Notarization accepted by Apple’s notary service — xcrun notarytool submit … --wait returns “Accepted”; read the log (notarytool log) for warnings.
This result describes your answers, not an inspection of your product. It predicts neither Apple or Google approval, nor security, nor commercial success. “Verified” is reserved for points reviewed with evidence.
Your answers stay in this browser until you save them.
Keep this checklist in a project
Complete the form above first.