diff --git a/app/scripts/notary.sh b/app/scripts/notary.sh new file mode 100644 index 0000000..d2be201 --- /dev/null +++ b/app/scripts/notary.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Borrowed from +# https://gist.github.com/lunixbochs/0ceeb23be5c3d5c6748165e61c6db493 + +PACKAGE=`cat package.json` +bundle=`echo "${PACKAGE}" | jq -r '.build.appId'` +username=`cat ./.appleId` +password=`cat ./.applePwd` +dmg="$2" +if [[ "$1" = "notarize" ]]; then + xcrun altool --notarize-app --primary-bundle-id "$bundle" --username "$username" --password "$password" --file "$dmg" | tee "notarize.out" +elif [[ "$1" = "staple" ]]; then + uuid=$(grep RequestUUID notarize.out | awk '{print $3}') + [[ -z "$uuid" ]] && exit 1 + # wait up to 2 hours for notarization + for i in $(seq 1 120); do + for j in 1 2; do # check twice a minute + sleep 30 + xcrun altool --notarization-info "$uuid" -u "$username" -p "$password" | tee "notarize-info.out" + if grep "You must specify a uuid" notarize-info.out &>/dev/null; then + exit 1 + fi + status=$(grep "Status:" notarize-info.out | awk '{print $2}') + if [[ "$status" = "invalid" ]]; then + exit 1 + fi + if [[ "$status" = "success" ]]; then + xcrun stapler staple "$dmg" + exit 0 + fi + done + done + echo "Notarization timed out." + exit 1 +else + echo "Usage: $0 (notarize | staple) " + exit 1 +fi \ No newline at end of file