Whether your app is on the Mac App Store or not, distributing it via a website still requires several steps, not least Apple's "inspection".
For building macOS apps, what is notarization and why all macOS developers need it?
Windows and macOS operating systems can directly thwart the installation of new software and deliver a chilling warning that you are taking a risk by installing the software. This is both helpful to end users of the software but also, presents a cost to developers - a cost that ultimately, benefits the makers of those operating systems. Apple Notarization for your macOS app tells the macOS Gatekeeper that your software isn't risky.
This is needed even if you distribute your macOS apps yourself on your own website. MacOS developers don't want Gatekeeper telling potential customers that your app is risky.
The Apple Developer docs explain:
The Apple notary service is an automated system that scans your software for malicious content, checks for code-signing issues, and returns the results to you quickly. If there are no issues, the notary service generates a ticket for you to staple to your software; the notary service also publishes that ticket online where Gatekeeper can find it. When the user first installs or runs your software, the presence of a ticket (either online or attached to the executable) tells Gatekeeper that Apple notarized the software. Gatekeeper then places descriptive information in the initial launch dialog to help the user make an informed choice about whether to launch the app.
App Wrapper Helps Developers with the Notarization Process
App Wrapper supports this inspection process, additional security protocols and procedures. App Wrapper helps you do the folllowing:
- Easily configure Harden-Runtime entitlements & "Privacy" usage messages.
- Check for some Notarization failures.
- Supports multiple archive formats, Zip, Installer, DropDMG and DMG Canvas.
- Include additional files in Zip or DMG files.
- Auto submits the archive to Apple's Notary service & Staples the Notarization ticket to the package.