App Store Connect APIをラップしたGo製CLIツール「asc」です。TestFlight配信・ビルド管理・審査提出・署名・分析・スクリーンショット・サブスクリプションなどをターミナルやCI/CDパイプラインから操作できます。出力はJSONを基本とし、対話的なプロンプトを挟まない設計になっています。
cmd/ディレクトリに大量のサブコマンドが並び、peterbourgon/ff(ffcli)でフラグとサブコマンドツリーを構成しています。認証はAPIキー(key-id・issuer-id・p8ファイル)をkeyring経由でOS標準のキーチェーンに保存する方式で、CI向けに`--bypass-keychain`で設定ファイルに退避する経路も用意されています。テストはcmd/配下の`*_blackbox_test.go`が実バイナリを`go build`してから`exec.Command`で実行し、標準出力・標準エラー・終了コードまで検証するブラックボックス方式が中心です。root.goがコマンド階層とヘルプ・エラーメッセージ(未知コマンドの候補提示など)を組み立て、`.agents/skills/`配下にはAIエージェント向けの開発・レビュー・リリース手順(SKILL.md)まで用意されています。
- STEP 01
brewかインストールスクリプトでascバイナリを入れ、`asc version`と`asc --help`で起動確認をします。
- STEP 02
`asc auth login`にkey-idとissuer-idとp8ファイルを渡して認証プロファイルを作成し、キーチェーンへの保存可否を確認します。
- STEP 03
`asc auth status --validate`と`asc auth doctor`で認証状態とAPI疎通を診断します。
- STEP 04
`asc apps list --output table`を実行し、TTY判定でtableが自動選択されることを確認します。
- STEP 05
パイプ経由(`asc apps list | cat`)で実行すると出力形式が自動的にjsonへ切り替わる挙動を確認します。
- STEP 06
存在しないサブコマンドやtypoしたフラグを打つと、候補コマンドを提示するエラーメッセージと終了コード2が返る挙動を確認します。
App Store Connect関連の操作をスクリプト化できるバイナリ1本と、認証プロファイル・出力フォーマット・エラーハンドリングの型が手に入ります。実APIキーを用意すればTestFlightやビルド提出などをCIパイプラインに組み込める状態になります。
実際のApple Developer Programアカウントとp8 APIキーがないと、ほとんどのコマンド(apps list以降)は機能しません。認証情報なしで試せるのは`asc version`や`asc system-status`程度です。
WinGetパッケージはREADME時点でまだ受理待ちの状態(Discussion #1552)で、`winget search asc`にまだ出ない可能性があります。
go.modのモジュールパスは`github.com/rudrankriyam/App-Store-Connect-CLI`となっており、実際のリポジトリ名`rorkai/App-Store-Connect-CLI`と一致していません。移管や改名の履歴を確認したほうがよい点です。
go.modの`go 1.26.6`という指定は一般的なGoのバージョニング慣行からするとやや珍しい形式で、ビルド時にツールチェーンの取得動作に注意が必要です。
CI/CDパイプラインやエージェント駆動の開発フローにApp Store Connect操作を組み込みたいチームには合う設計です。blackbox testで実バイナリの標準出力・エラー・終了コードまで検証する体制や、TTYに応じた出力形式の自動切替、認証のキーチェーン対応など、実運用を意識した作り込みが確認できます。ただし判断の全ては公開されたテストコードとREADMEの記述に基づくもので、実際のApple Developerアカウントでの通信結果や、WinGet配布の完了状況、go.modのモジュールパス不一致の経緯までは今回のファイルからは確認できません。導入前には認証まわりの挙動と組織のCI環境での実行結果を自身の目で確認することをおすすめします。