Signing your apps for Gatekeeper

Gatekeeper on macOS helps protect users from downloading and installing malicious software by checking for a Developer ID certificate from apps distributed outside the Mac App Store. Make sure to sign any apps, plug-ins, or installer packages that you distribute to let Gatekeeper know they’re safe to install. You can also give people even more confidence in your apps running on macOS Mojave or later by submitting them to Apple to be notarized.

Prepare for distribution

A Developer ID certificate lets Gatekeeper verify that you’re a trusted developer when people download and open your app, plug-in, or installer package from outside the Mac App Store. Software signed with a Developer ID certificate can also take advantage of advanced capabilities such as CloudKit and Apple Push Notifications.

Generate your Developer ID certificate

You can generate your Developer ID certificate in Xcode or in the Certificates, Identifiers & Profiles section of your developer account. Please note that you must be the Account Holder of your development team in the Apple Developer Program in order to generate this cerificate.

Learn about creating and exporting certificates

Sign and test your app

In Xcode, you can enable the hardened runtime capability and declare entitlements for the functions your app requires. Then archive your app and test the user experience of launching your Developer ID-signed app using a Mac.

Learn about preparing your app for distribution


To build your apps for macOS and submit them to be notarized by Apple, use Xcode 10 or later, available from the Mac App Store.

Get your software notarized

Give people even more confidence in your software by submitting it to Apple to be notarized. This service automatically scans your Developer ID-signed software and performs security checks. When it’s ready to export for distribution, your software is assigned a ticket to let Gatekeeper know it’s been notarized.

For step-by-step details on uploading your Mac software to be notarized, review Notarizing macOS software before distribution and the Xcode documentation.

Submitting with Xcode

Unpublished software. It’s easy to get unpublished software notarized with the export process or xcodebuild. Custom build workflows are supported by the xcrun altool command-line tool for uploading, and you can use xcrun stapler to assign the ticket to the package.

Published software. To submit software you’ve already published, upload it using the xcrun altool command-line tool. Several file types are supported, including ZIP, PKG, and DMG, so you can upload the same package you already distribute to users.

Viewing upload logs

In addition to checking for malicious software, the notary service catches common code signing problems that can prevent your software from installing properly. If notarization fails for your upload, check the status log for details.

Learn how to resolve common notarization issues


When users on macOS Mojave 10.14 or later first open a notarized app, installer package, or disk image, they’ll see the Gatekeeper dialog and have confidence that it isn't known malware.

Mac apps, installer packages, and kernel extensions* that are signed with Developer ID must also be notarized by Apple in order to run by default on macOS Catalina.