storepulse_

オープンソース · CLI · Expo & React Native チームのために

いま公開中のバージョンは?
審査で止まっているのは?
コマンドひとつで、両ストアを。

storepulse は、管理しているすべての iOS・Android アプリのリリース状況を — バージョン、審査状況、段階的リリースの割合、テストトラックまで — ひとつのターミナルボードにまとめて表示します。設計から読み取り専用なので、 ストアの認証情報があなたのマシンの外に出ることはありません。

~/work — zsh
$ 

  storepulse  ·  one board, both stores

  APP                  OS        PRODUCTION                      BETA / TESTFLIGHT    INTERNAL
  ─────────────────────────────────────────────────────────────────────────────────────────────
  Aurora [prod]        iOS       2.4.1 LIVE  ·  2.5.0 REVIEW    2.5.0 LIVE (108)     —
                       Android   2.4.1 50% (241)                2.5.0 LIVE (250)     2.5.1 draft (251)
  Aurora Dev [dev]     iOS       —                              2.6.0 LIVE (12)      —
                       Android   —                              —                    2.6.0 LIVE (12)
  Borealis [prod]      iOS       1.9.2 LIVE  ·  1.9.3 REJECTED  1.9.3 LIVE (87)      —
                       Android   1.9.2 LIVE (192)               1.10.0 LIVE (200)    —

なぜ

ストアの鍵を預けても安心できるように

設計から読み取り専用

storepulse は何かを提出したり、昇格させたり、止めたりしません。 両ストアに尋ねるのはただひとつ —「いまリリースはどんな状態?」— そしてその答えを描くだけ。壊すものも、身構えるものもありません。

認証情報はローカルだけ

リクエストはあなたのマシンから Apple と Google に直接届きます。 サーバーも、アカウント登録も、テレメトリもなし。シークレットは 最初から git 管理外の .env の中だけです。

まずはライブラリとして

コアは認証情報を注入して使うライブラリで、CLI と Web ダッシュボードは その最初の画面にすぎません。次は通知 — 同じエンジンに画面を 増やしていくだけです。メソッドを 2 つ実装すれば、独自のソースも 追加できます。

機能

2 つのコンソールが見せるすべてを、1 枚の表に

正規化されたモデル
App Store の状態と Play のトラックを、ひとつの語彙に揃えました: チャンネル(production / beta / internal) × 状態(live, in-review, rollout, rejected…)。
ロールアウトの追跡
iOS の段階的リリースも Android の段階的な公開も、ただのパーセントで 表示します — 2.4.1 50% なら、ユーザーの半分に届いています。
審査状況をひと目で
2.4.1 LIVE · 2.5.0 REVIEW を並べて確認できます — どちらのコンソールでも掘らないと出てこない、あの「あいだの瞬間」です。
崩れないボード
認証情報がひとつ期限切れになっても、エラーが出るのはその行だけ。 ボードの残りが真っ白になることはありません。
デモモード
npx storepulse demo だけでサンプルデータのボードが 丸ごと描かれます — API キーを 1 つも作る前に、じっくり試せます。
Web ダッシュボード
storepulse serve で自動更新されるボードをブラウザでも 見られます。任意のグループは一度に 1 つ表示し、グループがない設定では セレクターを隠します。アプリカードは iOS と Android の行を分け、最新の バンドルを配信チャネルの隣に配置します。行を開くとリリースノートや TestFlight の期限が見え、OS チップでプラットフォーム行を絞り込めます。 デフォルトでは 127.0.0.1 にのみバインドします。 storepulse snapshot はボードを JSON で書き出します。
Android インストールカタログ
専用のインストールページで Production と Development を同時に 表示します。固定の latestTesterUrl、または provider が 返した正確な versionCode 別 installLinks を登録できます。 storepulse は URL を推測せず、古いビルドで現在のアプリの削除が 必要になる可能性も事前に警告します。
Expo フレンドリー
どんな iOS/Android アプリでも動きますが、作ったのは Expo チーム、 想定しているのも Expo チームです — EAS_TOKEN と アプリごとの easProjectId を設定するだけで、ストアの 各バージョンがそれを生んだ EAS ビルドにつながります: コミット、ビルドプロファイル、提出ステータスまで。
CI ポリシーゲート
storepulse check --fail-on rejected,halted でストアの 状態を CI の判定に変えられます。正常・ポリシー違反・収集エラーを 終了コードで区別し、--format json で自動化につなげられます。

クイックスタート

ゼロから実際のボードまで、およそ 15 分

1

まずはデモから — 認証情報は不要です

$ npx storepulse demo

クローンもインストールも不要 — Node.js 20.12 以上があれば 動きます。ブラウザ派なら npx storepulse serve --demo が同じボードを 127.0.0.1:4780 で開きます。

2

アプリを並べて、キーを入れる

アプリは storepulse.config.json に、シークレットは .env に(App Store Connect API キーと Play サービス アカウント — どちらも 5 分で終わる、一度きりのセットアップです)。

$ npx storepulse init  # 両方のファイルを生成 — あとは埋めるだけ
3

実行する

$ npx storepulse

あなたの実際のボードが現れます。 手順を追った完全チュートリアル →

ロードマップ

この先の予定

コア + コネクタ デモモード付き CLI EAS コネクタ Web ダッシュボード npx storepulse CLI 出力の英語・韓国語対応 スナップショット diff CI ポリシーゲート Android インストールカタログ 公式 GitHub Action generic webhook イベント ローカル watch モード