I recently received an email from Apple stating that they are migrating users from altool
to notarytool
to notarize applications. Apple says altool
will no longer work for notarization starting November 1 2023, but that applications notarized before that will still behave as normal. I previously wrote about notarizing a Unity app on MacOS, so I wanted to add to that post since the linked scripts will be out of date by the end of the year.
What I'm about to write about is covered by Apple here, but I ended up submitting (and waiting and submitting and waiting) several times before figuring out the proper incantations, so I'm gathering the information here.
First, in the script for notarizing your application, you'll need to change --username
and --asc-provider
to --apple-id
and --team-id
respectively. Then you'll need to remove --primary-bundle-id
(and the value associated with that flag) and --file
. For that last one, remove ONLY --file
and leave the location of the file you want to notarize. Finally, swap altool --notarize-app
for notarytool submit
and add --wait
(the wait flag is optional, but I'll explain it below).
So you should go from this in the old script:
xcrun altool --notarize-app --username "$USERNAME" --password "$PASSWORD" --asc-provider "$TEAM_ID" --primary-bundle-id "$BUNDLE_ID" --file "$SIGNING_FOLDER/$APP_NAME.zip"
to
xcrun notarytool submit --wait --apple-id "$USERNAME" --password "$PASSWORD" --team-id "$TEAM_ID" "$SIGNING_FOLDER/$APP_NAME.zip"
The new tool has a nice progress text in the terminal for the upload status that looks like XX% (YY MB of ZZ MB)
. The wait flag is nice because it means you can skip the second script (from the link in the previous blog post) for checking the status of the file after you've uploaded it. If you use the wait flag, after the file finishes uploading, you'll see 'In progress ........', while it waits to be notarized. Much nicer than a hanging terminal session with no info!