This python package provides one class, Notarizer, which is intended as a base class for a python object which automatically notarizes a signed macOS application bundle. The subclass which does the actual notarization needs to provide a method build_dmg which builds the disk image that will be used to distribute the app.
Apple's notarization process involves a complex dance which is performed by this object. First the signed app is packaged in a disk image and sent to Apple for notarization. Then the notarization ticket is stapled to the app and the app is repackaged in a new disk image which is signed and sent to Apple for a second notarization. Finally the notarization ticket can be stapled to the disk image itself.
The credentials and parameters which are needed for the various notarization steps are provided in a config file which should be in the current directory and should have the following structure:
[developer] username = <your app store id or email> password = <your app-specific password> identity = <the signing identity you used to sign your app> [app] app_name = <name of the app> app_path = <path to the application bundle> dmg_path = <path to the disk image that your build_dmg method will create> bundle_id = <an (arbitrary) bundle identifier that you provide for the request>
This package is available from pypi:
pip install notabot