You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.3 KiB
32 lines
1.3 KiB
#!/bin/sh |
|
|
|
echo "Notarizing file: $1" |
|
|
|
# Store the notarization credentials so that we can prevent a UI password dialog |
|
# from blocking the CI |
|
|
|
echo "Create keychain profile" |
|
xcrun notarytool store-credentials "notarytool-profile" \ |
|
--apple-id "$MACOS_NOTARIZATION_APPLE_ID" \ |
|
--team-id "$MACOS_NOTARIZATION_TEAM_ID" \ |
|
--password "$MACOS_NOTARIZATION_PWD" |
|
|
|
# We can't notarize an app bundle directly, but we need to compress it as an archive. |
|
# Therefore, we create a zip file containing our app bundle, so that we can send it to the |
|
# notarization service |
|
|
|
echo "Creating temp notarization archive" |
|
ditto -c -k --keepParent "$1" "notarization.zip" |
|
|
|
# Here we send the notarization request to the Apple's Notarization service, waiting for the result. |
|
# This typically takes a few seconds inside a CI environment, but it might take more depending on the App |
|
# characteristics. Visit the Notarization docs for more information and strategies on how to optimize it if |
|
# you're curious |
|
|
|
echo "Notarize app" |
|
xcrun notarytool submit "notarization.zip" --keychain-profile "notarytool-profile" --wait |
|
|
|
# Finally, we need to "attach the staple" to our executable, which will allow our app to be |
|
# validated by macOS even when an internet connection is not available. |
|
echo "Attach staple" |
|
xcrun stapler staple "$1"
|
|
|