storepulse_

開源 · CLI · 為 Expo & React Native 團隊而生

哪個版本已經上線?
哪個卡在審查?
一道指令,兩大商店。

storepulse 會把你管理的所有 iOS·Android App 的發布狀態 —— 版本、審查狀態、 逐步發布比例、測試軌道 —— 整合到同一塊終端機看板上。從設計上就是唯讀, 商店憑證永遠不會離開你的電腦。

~/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 儀表板只是它最早的 兩個介面。接下來是通知 —— 同一顆引擎,更多畫面。 實作兩個方法,就能接上你自己的資料來源。

功能

兩個主控台顯示的一切,全在一張表裡

正規化模型
把 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 金鑰都還沒建立,就能先評估這個工具。
Web 儀表板
storepulse serve 在瀏覽器中打開自動重新整理的看板。 選用的群組一次只顯示一個;設定中沒有群組時會隱藏選擇器。每張 App 卡片分開顯示 iOS 與 Android 列,並把最新套件放在發布管道旁。展開列 可以看到版本說明和 TestFlight 到期倒數,OS 標籤可篩選平台列。預設只 綁定 127.0.0.1。storepulse snapshot 則把看板輸出成 JSON。
Android 安裝目錄
獨立的安裝頁面同時顯示 Production 與 Development。可以設定固定的 latestTesterUrl,或依 versionCode 登記 provider 實際回傳的 installLinks。storepulse 不會猜測下載 URL,安裝舊建置可能 需要移除目前 App 時也會先提出警告。
Expo 友善
任何 iOS/Android App 都能用,但它出自 Expo 團隊之手, 也為 Expo 團隊而寫 —— 設定好 EAS_TOKEN 和每個 App 的 easProjectId,商店裡的每個版本就能連回產出它的 EAS 建置:git commit、建置設定檔、送審狀態,一項不漏。
CI 政策關卡
storepulse check --fail-on rejected,halted 把商店狀態 轉成 CI 判定。結束碼可區分正常、政策違規與收集錯誤, --format json 可直接接到自動化流程。

快速開始

從零到你的真實看板,大約 15 分鐘

1

先跑展示 —— 不需要憑證

$ npx storepulse demo

不用 clone、不用安裝 —— 有 Node.js 20.12 以上就夠了。偏好瀏覽器? npx storepulse serve --demo 會把同一塊看板開在 127.0.0.1:4780。

2

列出 App、填入金鑰

App 寫進 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 模式