macOS Notarization

From RAD Studio

Follow the steps below to notarize a macOS 64-bit app:

  1. Create an application-specific password to use with Notarization at the Apple ID site.
    Assuming the password is 'myPassword', and the Apple ID is 'myAppleID'.
  2. Create Developer ID certificate using Xcode or Apple Developer site.
    Assuming the certificate is myDeveloperIDCertificate.
  3. Create an application in the IDE.
    • Create an application (assuming this application name is myApp).
    • Create a connection profile to the Mac machine (assuming this connection profile is called myMac).
    • Set target platform to macOS 64-bit.
    • Set target platform configuration to Developer ID.
    • Set connection profile to myMac.
  4. Go to Project > Options > Deployment > Provisioning and do the following:
    • Set Build type to macOS 64-bit - Developer ID.
    • Enter your Apple ID.
    • Enter the App-specific password.
    • Enter the complete name of your Developer ID Application Certificate.
    • Select Attach a ticket to the notarized application to allow it to run offline, if needed.
  5. Click Run or Run Without Debugging, or go to Project > Build and Project > Deploy.
Attention:
  • To prevent the app from crashing after being notarized, macOS notarization requires that Allow unsigned executable memory entitlement is enabled.
  • When an Apple Service error appears indicating that supplied UUID was not found during the "Checking Notarization Status" phase, increase the NotarizationInfoDelay value.

To increase the NotrizationInfoDelay value, navigate to <bds>\bin\codegear.deployment.targets, search for NotarizationInfoDelay="20", and change the NotarizationInfoDelay to >20 seconds.

  • When the Notarization fails with a message indicating that -itc_provider is needed to distinguish between multiple providers during the "Notarizing" phase, pass the additional parameter to the App Notarization Command.
Navigate to <bds>\bin\codegear.deployment.targets, search for NotarizeAppAdditionalParams="", and add the additional parameters to something like "-abc def".

See Also