mirror of
https://github.com/zotero/zotero.git
synced 2026-10-07 02:58:09 +00:00
Support notarytool keychain profiles for notarization
Some checks are pending
CI / Detect changes (push) Waiting to run
CI / Build, Upload (push) Waiting to run
CI / Test () (push) Blocked by required conditions
CI / Test (macOS NFS) (push) Blocked by required conditions
CI / Test (Windows arm64) (push) Blocked by required conditions
CI / Test (Windows x64) (push) Blocked by required conditions
CI / Utilities Tests (push) Waiting to run
Some checks are pending
CI / Detect changes (push) Waiting to run
CI / Build, Upload (push) Waiting to run
CI / Test () (push) Blocked by required conditions
CI / Test (macOS NFS) (push) Blocked by required conditions
CI / Test (Windows arm64) (push) Blocked by required conditions
CI / Test (Windows x64) (push) Blocked by required conditions
CI / Utilities Tests (push) Waiting to run
If NOTARIZATION_PROFILE is set, notarize_mac_app and notarization_info authenticate with that stored notarytool profile (e.g., an App Store Connect API key) instead of an Apple ID and app-specific password, unlocking the keychain first if needed.
This commit is contained in:
parent
53ded5eb44
commit
8c3b967bf9
4 changed files with 29 additions and 2 deletions
|
|
@ -28,6 +28,9 @@ NOTARIZATION_BUNDLE_ID=""
|
|||
NOTARIZATION_USER=""
|
||||
NOTARIZATION_TEAM_ID=""
|
||||
NOTARIZATION_PASSWORD=""
|
||||
# Name of a notarytool keychain profile (see `xcrun notarytool store-credentials`), e.g., for an
|
||||
# App Store Connect API key -- used instead of the Apple ID settings above if set
|
||||
NOTARIZATION_PROFILE=""
|
||||
|
||||
# Paths for Windows installer build
|
||||
NSIS_DIR='C:\Program Files (x86)\NSIS\'
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ set -euo pipefail
|
|||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
ROOT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
. "$ROOT_DIR/config.sh"
|
||||
. "$SCRIPT_DIR/utils.sh"
|
||||
|
||||
function usage {
|
||||
echo "Usage: $0 id"
|
||||
|
|
@ -15,5 +16,7 @@ if [[ -z "$id" ]]; then
|
|||
usage
|
||||
fi
|
||||
|
||||
xcrun notarytool log "$id" --apple-id "$NOTARIZATION_USER" --team-id "$NOTARIZATION_TEAM_ID" --password "$NOTARIZATION_PASSWORD" notary_log.json
|
||||
prepare_notary_auth
|
||||
|
||||
xcrun notarytool log "$id" "${notary_auth[@]}" notary_log.json
|
||||
cat notary_log.json
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ set -euo pipefail
|
|||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
ROOT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
. "$ROOT_DIR/config.sh"
|
||||
. "$SCRIPT_DIR/utils.sh"
|
||||
|
||||
function usage {
|
||||
echo "Usage: $0 file"
|
||||
|
|
@ -15,5 +16,7 @@ if [[ -z "$file" ]]; then
|
|||
usage
|
||||
fi
|
||||
|
||||
prepare_notary_auth
|
||||
|
||||
echo "Uploading ${file##*/} to Apple for notarization" >&2
|
||||
xcrun notarytool submit $file --apple-id "$NOTARIZATION_USER" --team-id "$NOTARIZATION_TEAM_ID" --password="$NOTARIZATION_PASSWORD" --wait
|
||||
xcrun notarytool submit $file "${notary_auth[@]}" --wait
|
||||
|
|
|
|||
|
|
@ -167,3 +167,21 @@ function remove_between {
|
|||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Set $notary_auth to notarytool authentication arguments: the keychain profile in
|
||||
# NOTARIZATION_PROFILE if set, or else the Apple ID and app-specific password
|
||||
function prepare_notary_auth {
|
||||
if [[ -n "${NOTARIZATION_PROFILE:-}" ]]; then
|
||||
notary_auth=(--keychain-profile "$NOTARIZATION_PROFILE")
|
||||
if [[ -n "$KEYCHAIN" ]]; then
|
||||
keychain_path="$HOME/Library/Keychains/$KEYCHAIN.keychain-db"
|
||||
# The keychain may have auto-locked since signing
|
||||
if [[ -n "$KEYCHAIN_PASSWORD" ]]; then
|
||||
security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$keychain_path"
|
||||
fi
|
||||
notary_auth+=(--keychain "$keychain_path")
|
||||
fi
|
||||
else
|
||||
notary_auth=(--apple-id "$NOTARIZATION_USER" --team-id "$NOTARIZATION_TEAM_ID" --password "$NOTARIZATION_PASSWORD")
|
||||
fi
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue