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.
Beginning in macOS 10.14.5, all new or updated kernel extensions and all software from developers new to distributing with Developer ID must be notarized in order to run. In a future version of macOS, notarization will be required by default for all software.
The currently available version of macOS is 10.14.4.
Apple’s notary service requires you to adopt the following protections:
- Enable code-signing for all of the executables you distribute.
- Enable the Hardened Runtime capability for your executable targets, as described in Enable hardened runtime.
- Use a
Developer ID
application, kernel extension, or installer certificate for your code-signing signature. - Include a secure timestamp with your code-signing signature. (The Xcode distribution workflow includes a secure timestamp by default. For custom workflows, include the
--timestamp
option when running the codesign tool.) - Don’t include the
com.apple.security.get-task-allow
entitlement with the value set to any variation of true. - Link against the macOS 10.9 or later SDK.
More info available here: https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution