チュートリアル
ゼロから実際のボードまでの道のりです。ステップ 1–2 は 1 分ほど、 ステップ 3–4 は Apple と Google 側で行う、5 分ほどの一度きりの セットアップです。
ステップ 1
インストールしてデモを実行
前提: Node.js 20.12 以上、pnpm 9 以上。
$ git clone https://github.com/dioKR/storepulse.git $ cd storepulse $ pnpm install $ pnpm demo
デモボードには、実際のチームを模したサンプルデータが入っています — アプリ 2 つ、それぞれ prod・dev のバリアント、両プラットフォーム。 今後目にするバッジがすべて揃っています: LIVE, 50%(段階的リリース), REVIEW, REJECTED, draft。
ステップ 2
アプリを登録する
$ npx storepulse init
どのフォルダでも使えます — storepulse.config.json と
.env のテンプレートを作成し(既存のファイルは
上書きしません)、認証情報ファイルを .gitignore に
追加します。このリポジトリのクローンなら
cp storepulse.config.example.json storepulse.config.json
でも同じです。続いて storepulse.config.json を開き、
アプリを登録します:
| フィールド | 説明 |
|---|---|
key | 重複しなければ何でも OK(内部用です) |
name | ボードに表示される名前 |
group | 任意のラベル — 例: prod / dev |
platform | ios または android |
storeId | iOS: 数字の Apple ID · Android: パッケージ名 |
1234567890 のような数字です)。
ステップ 3
Apple — App Store Connect API キー
ここからは storepulse init が作った .env を
埋めていきます(リポジトリのクローンなら
cp .env.example .env)。
- App Store Connect → ユーザーとアクセス(Users and Access) → 統合(Integrations) → App Store Connect API へ。
- チームキー(Team Keys)で + をクリック。ロールは Developer を推奨します — storepulse が読む範囲にはこれで十分です。App Manager でも動作しますが、キーが漏えいするとアプリの提出やメタデータの変更まで可能になるため、最小権限が安全です。
.p8ファイルをダウンロードします。 Apple がダウンロードを許すのは一度きり — 大切に保管してください(storepulse initが既に git 管理外にしています)。このキーはロールが許す範囲で書き込みもできる認証情報なので、万一漏えいしたら App Store Connect で直ちに失効(revoke)させてください。- 3 つの値を埋めます:
ASC_KEY_ID=ABC123DEFG # キーの "Key ID" 列 ASC_ISSUER_ID=xxxxxxxx-... # ページ上部の "Issuer ID" ASC_PRIVATE_KEY_PATH=./AuthKey_ABC123DEFG.p8
コンソールの画面はときどき変わります — メニューの場所が違うときは、 Apple の公式ガイド Creating API Keys for App Store Connect API に従ってください。
ステップ 4
Google — Play サービスアカウント
- Google Cloud Console で プロジェクトを選ぶか新規作成し、Google Play Android Developer API を有効にします。
- IAM と管理 → サービスアカウント → 1 つ作成(ロールは不要)→ キータブ → 鍵を追加 → JSON。
- Play Console →
ユーザーと権限 → 新しいユーザーを招待 → サービスアカウントの
メールアドレス(
…@…iam.gserviceaccount.com)を貼り付け → アプリにアプリ情報の表示(View app information)権限を付与します。 付与するのはこの権限だけにしてください — リリース(公開)系の権限は決して付与しないでください。 storepulse には不要ですし、こうしておけばキーが漏えいしても 読み取り専用のままで済みます。 .envにその JSON を指定します:
PLAY_SERVICE_ACCOUNT_PATH=./service-account.json
コンソールの画面構成が変わっていたら、Google の公式ガイド Google Play Developer API スタートガイドで 同じ手順を確認できます。
*_BASE64 形式
(ASC_PRIVATE_KEY_BASE64,
PLAY_SERVICE_ACCOUNT_BASE64)に対応しているので、ディスクに
ファイルを置かずに CI で storepulse を実行できます。
ステップ 5
実行
$ npx storepulse
あなたの実際のボードが現れます(リポジトリのクローンでは
pnpm status でも同じです)。認証情報に問題のある行は、
その場所にエラーを表示するだけで、ボードの残りを隠すことはありません。
ステップ 6
Web ダッシュボードで見る
$ npx storepulse serve http://127.0.0.1:4780 を開くと、
同じボードが同じデザインの Web ダッシュボードとして表示されます。
自動で更新されます。行をクリックすると、リリースノート全文・日付・
TestFlight の期限カウントダウンを含む詳細パネルが開きます。上部の
チップで OS やグループごとの絞り込みもできます。行ではなく状態バッジを
クリックするとその状態の意味を説明するダイアログが開き、ヘッダーの
EN/KO スイッチャーで表示言語も切り替えられます(選択はブラウザに
記憶されます)。認証情報がまだなら
npx storepulse serve --demo でも大丈夫です。デフォルトでは
127.0.0.1 にのみバインドします — ボードには未公開の
バージョンが並ぶことがあるので、ローカルに留めておくのが安全です。
ステップ 7 — 任意
Expo(EAS)ビルドをつなぐ
Expo でリリースしていますか? .env にアクセストークンを
追加し(expo.dev →
Access tokens で作成できます。組織なら View Only の
ロボットトークンを推奨します — storepulse はビルドと提出を読むだけ
です)、storepulse.config.json の Expo アプリの項目に
easProjectId(app.json →
extra.eas.projectId)を書きます:
EAS_TOKEN=...
これで、スナップショット(JSON)と Web ダッシュボードの詳細パネルが、
ストアの各バージョンがどの EAS ビルドから生まれたのかを表示します —
コミット、ビルドプロファイル、提出ステータスまで(ターミナルの
ボードは要約のままです)。npx storepulse doctor の
[5] セクションが EAS チェーン全体を点検します。
トラブルシューティング
何かがおかしいとき
まずは npx storepulse doctor を実行してください —
下記の原因の大半を自動で診断し、失敗した項目ごとに一行の解決策を示します。
| 症状 | 考えられる原因 |
|---|---|
ASC API 401 | Key ID / Issuer ID の誤り、または .p8 がその Key ID のものではない |
ASC API 404 | storeId が数字の Apple ID ではない、またはキーのロールからそのアプリが見えない |
Play API 403 | Play Console にサービスアカウントが招待されていない、または Android Developer API が無効 |
Play API 404 | パッケージ名のタイプミス、または一度もリリースされていないアプリ |
| Android の審査状況が出ない | バグではありません — Google の API が審査状況を提供していないためです |
それでも詰まったら、issue を立ててください — ボードに出たエラー行をそのまま貼っていただければ大丈夫です。