In some cases, you may want to distribute an app outside of the Mac App Store. Because the app won’t be distributed by Apple, assure users that you are a trusted developer by signing your app with a Developer ID certificate. Users gain additional assurance if your Developer ID-signed app is also notarized by Apple.
On macOS, if your app isn’t downloaded from the Mac App Store or signed with a Developer ID certificate, it won’t launch unless the user completely disables Gatekeeper. Users have the option of enabling or disabling identified developers in System Preferences.
Before distributing your app, thoroughly test the end-user experience of launching your app using a Gatekeeper-enabled Mac.
First enable the hardened runtime capability and optionally, disable some of its security protections if your app needs to perform some actions. You must enable hardened runtime for your app to be notarized by Apple.
Then prepare your app for distribution and create an archive of your app. Don’t enable capabilities that aren’t supported by Developer ID. For the available capabilities, go to Supported capabilities (macOS).
For a Mac app built with Mac Catalyst, create separate archives for the iPad and Mac app. When creating the archive for the Mac app, choose My Mac as the run destination.
Alternatively, you can create and sign a Mac Installer Package with a Developer ID Installer certificate.
A notarized app is a macOS app that was uploaded to Apple for processing before it was distributed. When you upload a macOS app to be notarized by Apple, you’ll select Developer ID as the distribution method and it’ll be code signed with a Developer ID Application certificate. If you want to export a Developer ID-signed app without notarizing it, choose Export instead of Upload in the sheet that appears in this flow.
You can also upload Developer ID-signed disk images and installer packages using the xcrun altool
command-line tool. (If you are running a beta version of Xcode, run xcode-select --switch [path to Xcode]
first.)
Test that your notarized app or Developer ID-signed app launches correctly on macOS when apps downloaded from identified developers is enabled. This requires that you quarantine the app first.