Chris@34
|
1 #!/bin/bash
|
Chris@34
|
2
|
Chris@34
|
3 ## The following assumes we have generated an app password at
|
Chris@34
|
4 ## appleid.apple.com and then stored it to keychain id "altool" using
|
Chris@34
|
5 ## e.g.
|
Chris@34
|
6 ## security add-generic-password -a "cannam+apple@all-day-breakfast.com" \
|
Chris@34
|
7 ## -w "generated-app-password" -s "altool"
|
Chris@34
|
8
|
Chris@34
|
9 ## NB to verify:
|
Chris@34
|
10 # spctl -a -v "/Applications/Application.app"
|
Chris@34
|
11
|
Chris@34
|
12 user="cannam+apple@all-day-breakfast.com"
|
Chris@34
|
13 bundleid="org.sonicvisualiser.VampPluginPackInstaller"
|
Chris@34
|
14
|
Chris@34
|
15 set -e
|
Chris@34
|
16
|
Chris@62
|
17 target="$1"
|
Chris@34
|
18
|
Chris@62
|
19 if [ ! -f "$target" ] || [ -n "$2" ]; then
|
Chris@62
|
20 echo "Usage: $0 <target>"
|
Chris@62
|
21 echo " e.g. $0 MyApplication-1.0.target"
|
Chris@34
|
22 exit 2
|
Chris@34
|
23 fi
|
Chris@34
|
24
|
Chris@34
|
25 set -u
|
Chris@34
|
26
|
Chris@34
|
27 echo
|
Chris@34
|
28 echo "Uploading for notarization..."
|
Chris@34
|
29
|
Chris@34
|
30 uuidfile=.notarization-uuid
|
Chris@34
|
31 statfile=.notarization-status
|
Chris@34
|
32 rm -f "$uuidfile" "$statfile"
|
Chris@34
|
33
|
Chris@34
|
34 xcrun altool --notarize-app \
|
Chris@62
|
35 -f "$target" \
|
Chris@34
|
36 --primary-bundle-id "$bundleid" \
|
Chris@34
|
37 -u "$user" \
|
Chris@34
|
38 -p @keychain:altool 2>&1 | tee "$uuidfile"
|
Chris@34
|
39
|
Chris@34
|
40 uuid=$(cat "$uuidfile" | grep RequestUUID | awk '{ print $3; }')
|
Chris@34
|
41
|
Chris@34
|
42 if [ -z "$uuid" ]; then
|
Chris@34
|
43 echo
|
Chris@34
|
44 echo "Failed (no UUID returned, check output)"
|
Chris@34
|
45 exit 1
|
Chris@34
|
46 fi
|
Chris@34
|
47
|
Chris@34
|
48 echo "Done, UUID is $uuid"
|
Chris@34
|
49
|
Chris@34
|
50 echo
|
Chris@34
|
51 echo "Waiting and checking for completion..."
|
Chris@34
|
52
|
Chris@34
|
53 while true ; do
|
Chris@34
|
54 sleep 30
|
Chris@34
|
55
|
Chris@34
|
56 xcrun altool --notarization-info \
|
Chris@34
|
57 "$uuid" \
|
Chris@34
|
58 -u "$user" \
|
Chris@34
|
59 -p @keychain:altool 2>&1 | tee "$statfile"
|
Chris@34
|
60
|
Chris@34
|
61 if grep -q 'Package Approved' "$statfile"; then
|
Chris@34
|
62 echo
|
Chris@34
|
63 echo "Approved! Status output is:"
|
Chris@34
|
64 cat "$statfile"
|
Chris@34
|
65 break
|
Chris@34
|
66 elif grep -q 'in progress' "$statfile" ; then
|
Chris@34
|
67 echo
|
Chris@34
|
68 echo "Still in progress... Status output is:"
|
Chris@34
|
69 cat "$statfile"
|
Chris@34
|
70 echo "Waiting..."
|
Chris@34
|
71 else
|
Chris@34
|
72 echo
|
Chris@34
|
73 echo "Failure or unknown status in output:"
|
Chris@34
|
74 cat "$statfile"
|
Chris@34
|
75 exit 2
|
Chris@34
|
76 fi
|
Chris@34
|
77 done
|
Chris@34
|
78
|
Chris@34
|
79 echo
|
Chris@62
|
80 echo "Done, don't forget to staple the target or its contents"
|
Chris@62
|
81 echo "(e.g. xcrun stapler staple '$target')"
|
Chris@62
|
82 exit 0
|
Chris@34
|
83
|