mcpField
A
asc-auth

asc-auth

github.com/tddworks開発587 回インストール6 週間前に更新
リポジトリ

asc-auth について

App Store Connect 用のコマンドライン認証管理ツールです。複数の名前付きアカウントを保存し、`asc` コマンドで使うアクティブアカウントを選択できます。レポート用のベンダー番号に対応し、環境変数の認証情報も利用します。

主な機能

  1. 01複数の名前付きアカウントを保存
  2. 02アクティブアカウントを切り替え
  3. 03認証情報の一覧表示、確認、更新、削除
  4. 04ファイルまたは環境変数から認証情報を解決
  5. 05レポート用のベンダー番号を保存
  6. 06旧形式の単一アカウントファイルを移行

活用シーン

  1. 01個人用と業務用のアカウントを設定
  2. 02`asc` コマンドで使用アカウントを切り替え
  3. 03アクティブな認証情報を確認
  4. 04売上または財務レポート用のベンダー番号を設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tddworks/asc-cli-skills --skill asc-auth

インストール後、Claude Code で/asc-authを入力して読み込まれたか確認します。

詳細

asc auth — マルチアカウント認証

~/.asc/credentials.json の App Store Connect API キー認証情報を管理します。複数の名前付きアカウントに対応しており、アクティブなアカウントはすべての asc コマンドで自動的に使用されます。

コマンド

login — アカウントを保存する
asc auth login \
  --key-id <KEY_ID> \
  --issuer-id <ISSUER_ID> \
  --private-key-path ~/.asc/AuthKey_KEYID.p8 \
  [--name <alias>]          # optional; defaults to "default"
  [--vendor-number <number>] # optional; for sales/finance reports
  • --name にスペースを含めることはできません(ハイフンまたはアンダースコアを使用してください。例:work-org)
  • --name を指定しない場合は、"default" として保存されます
  • 保存したアカウントは自動的にアクティブに設定されます
  • 既存の名前で保存すると、そのアカウントが更新されます(安全に上書きされます)
  • PEM コンテンツをそのまま渡すには、--private-key-path の代わりに --private-key を使用してください
  • --vendor-number は任意です。認証情報とともに保存され、レポートコマンドで自動的に解決されます

出力 — AuthStatus JSON:

{
  "data": [{
    "affordances": {
      "check": "asc auth check",
      "list":  "asc auth list",
      "login": "asc auth login --key-id <id> --issuer-id <id> --private-key-path <path>",
      "logout": "asc auth logout"
    },
    "issuerID": "abc-def-456",
    "keyID":    "KEYID123",
    "name":     "work",
    "source":   "file"
  }]
}
list — 保存済みの全アカウントを表示する
asc auth list [--pretty] [--output table]
  • アクティブなアカウント:"isActive": true
  • 非アクティブなアカウントには、切り替え用の "use" アフォーダンスがあります

出力 — ConnectAccount の配列:

{
  "data": [
    {
      "affordances": { "logout": "asc auth logout --name personal", "use": "asc auth use personal" },
      "isActive": false, "issuerID": "...", "keyID": "KEYID1", "name": "personal"
    },
    {
      "affordances": { "logout": "asc auth logout --name work" },
      "isActive": true,  "issuerID": "...", "keyID": "KEYID2", "name": "work"
    }
  ]
}
use — アクティブなアカウントを切り替える
asc auth use <name>
# → Switched to account "work"

<name> が存在しない場合は accountNotFound をスローします。有効な名前を確認するには、先に asc auth list を実行してください。

logout — アカウントを削除する
asc auth logout              # removes the active account
asc auth logout --name work  # removes a specific account
# → Logged out successfully
update — 既存のアカウントを変更する
asc auth update [--name <alias>] --vendor-number <number>
  • 指定したアカウント(--name を省略した場合はアクティブなアカウント)を更新します
  • 現在は、sales-reports コマンドと finance-reports コマンドで使用されるベンダー番号 --vendor-number に対応しています
  • 既存の認証情報を読み込み、更新内容をマージして保存します
  • アカウントが存在しない場合は accountNotFound をスローします

出力 — AuthStatus JSON(vendorNumber を含む):

{
  "data": [{
    "affordances": { "check": "asc auth check", "list": "asc auth list", ... },
    "issuerID": "abc-def-456",
    "keyID":    "KEYID123",
    "name":     "work",
    "source":   "file",
    "vendorNumber": "88012345"
  }]
}
check — アクティブな認証情報を確認する
asc auth check [--pretty] [--output table]

アクティブなアカウント名とソース("file" または "environment")を表示します。保存されている場合は vendorNumber も表示します。環境変数の認証情報には name フィールドがありません。

認証情報の解決順序

すべての asc コマンドは、次の順序で認証情報を解決します。

  1. ~/.asc/credentials.json 内のアクティブなアカウント(auth login / auth use で設定)
  2. 環境変数:ASC_KEY_ID、ASC_ISSUER_ID、ASC_PRIVATE_KEY_PATH / ASC_PRIVATE_KEY_B64 / ASC_PRIVATE_KEY

認証情報ファイルの形式

{
  "accounts": {
    "personal": { "issuerID": "...", "keyID": "KEYID1", "privateKeyPEM": "..." },
    "work":     { "issuerID": "...", "keyID": "KEYID2", "privateKeyPEM": "...", "vendorNumber": "88012345" }
  },
  "active": "work"
}

vendorNumber フィールドは任意です。値が nil の場合、JSON から省略されます。--vendor-number が指定されていない場合に、sales-reports コマンドと finance-reports コマンドで自動解決するために使用されます。

レガシー形式からの移行:古い単一認証情報ファイル({ "keyID": ..., "issuerID": ..., "privateKeyPEM": ... })は、初回使用時に "default" という名前付きアカウントへ自動的に移行されます。

一般的なワークフロー

初回セットアップ(単一アカウント)
asc auth login \
  --key-id KEYID123 \
  --issuer-id abc-def-456 \
  --private-key-path ~/.asc/AuthKey_KEYID123.p8

asc auth check --pretty    # verify source: "file"
asc apps list              # works without env vars
複数アカウント(個人用 + 仕事用)
# Add accounts
asc auth login --key-id K1 --issuer-id I1 --private-key-path ~/.asc/personal.p8 --name personal
asc auth login --key-id K2 --issuer-id I2 --private-key-path ~/.asc/work.p8 --name work

# List all
asc auth list --pretty

# Switch
asc auth use personal
asc apps list   # now uses personal account

asc auth use work
asc apps list   # now uses work account
レポート用にベンダー番号を保存する
# During login
asc auth login --key-id K1 --issuer-id I1 --private-key-path key.p8 --vendor-number 88012345

# Or add to existing account
asc auth update --vendor-number 88012345

# Now reports auto-resolve vendor number
asc sales-reports download --report-type SALES --sub-type SUMMARY --frequency DAILY
アカウントを削除する
asc auth list              # find the name
asc auth logout --name personal
asc auth list              # confirm removal

エラーリファレンス

状況解決方法
accountNotFound("ghost")有効な名前を確認するには、asc auth list を実行してください
名前にスペースが含まれているハイフンまたはアンダースコアを使用してください:--name my-org
API 呼び出しで 401 Unauthorized が発生するアクティブな認証情報を確認するには、asc auth check を実行してください
認証情報がどこにもないasc auth login を実行するか、ASC_KEY_ID 環境変数を設定してください

コメント