Required:
--key-path <path> Path to App Store Connect API key (.p8)
--issuer-id <uuid> App Store Connect issuer ID
Optional:
--key-id <id> API key ID (auto-detected from AuthKey_<id>.p8 if omitted)
--service <name> Keychain service name (default: openclaw-asc-key)
--account <name> Keychain account name (default: $USER or $LOGNAME)
--write-env Upsert non-secret env vars into apps/ios/fastlane/.env
--env-file <path> Override env file path used with --write-env
-h, --help Show this help
if [[ -z "$KEY_PATH" || -z "$ISSUER_ID" ]]; then echo"Missing required arguments." >&2
usage
exit 1 fi
if [[ ! -f "$KEY_PATH" ]]; then echo"Key file not found: $KEY_PATH" >&2
exit 1 fi
if [[ -z "$KEY_ID" ]]; then
key_filename="$(basename "$KEY_PATH")" if [[ "$key_filename" =~ ^AuthKey_([A-Za-z0-9]+)\.p8$ ]]; then
KEY_ID="${BASH_REMATCH[1]}" else echo"Could not infer --key-id from filename '$key_filename'. Pass --key-id explicitly." >&2
exit 1 fi fi
if [[ -z "$ACCOUNT" ]]; then echo"Could not determine Keychain account. Pass --account explicitly." >&2
exit 1 fi
KEY_CONTENT="$(cat "$KEY_PATH")" if [[ -z "$KEY_CONTENT" ]]; then echo"Key file is empty: $KEY_PATH" >&2
exit 1 fi
echo"Stored ASC API private key in macOS Keychain (service='$SERVICE', account='$ACCOUNT')." echo echo"Export these vars for Fastlane:" echo"ASC_KEY_ID=$KEY_ID" echo"ASC_ISSUER_ID=$ISSUER_ID" echo"ASC_KEYCHAIN_SERVICE=$SERVICE" echo"ASC_KEYCHAIN_ACCOUNT=$ACCOUNT"
if [[ "$WRITE_ENV" -eq 1 ]]; then if [[ -z "$ENV_FILE" ]]; then
ENV_FILE="$DEFAULT_ENV_FILE" fi
upsert_env_line "$ENV_FILE""ASC_KEY_ID""$KEY_ID"
upsert_env_line "$ENV_FILE""ASC_ISSUER_ID""$ISSUER_ID"
upsert_env_line "$ENV_FILE""ASC_KEYCHAIN_SERVICE""$SERVICE"
upsert_env_line "$ENV_FILE""ASC_KEYCHAIN_ACCOUNT""$ACCOUNT" # Remove file/path based keys so Keychain is used by default.
delete_env_line "$ENV_FILE""ASC_KEY_PATH"
delete_env_line "$ENV_FILE""ASC_KEY_CONTENT"
delete_env_line "$ENV_FILE""APP_STORE_CONNECT_API_KEY_PATH"
echo echo"Updated env file: $ENV_FILE" fi
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-04-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.