Add an alternate script for notarizing builds
This commit is contained in:
parent
e1c8ba1320
commit
9dce9fb1f2
|
@ -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) <dmg>"
|
||||
exit 1
|
||||
fi
|
Loading…
Reference in New Issue