Coming Soon

Portus

App Store Connectのメタデータを扱うmacOSネイティブアプリ。

何を解いているか

App Store Connect は、ロケールごとにタブを開かせる作りです。14ストアフロントに出しているアプリの「このバージョンの新機能」を1行直すには、タブを14枚開いて同じ操作を14回します。直したい単位はフィールドなのに、UIの単位はロケールです。

なぜ作ったか

自社アプリを14ストアフロントに送り出す午後を短くするために作っています。Portusは軸を入れ替えます。フィールドを選ぶと、その項目の全ロケールが1画面に並びます。まとめて編集して、変更したフィールドだけをPushします。 ファイルを正とする方式は採りませんでした。App Store Connect の現行値を引いてきて、下書きの上に差分を積む形にしています。Pushするまで、このMacから何も出ません。

設計の判断

  • ロケール軸をやめ、フィールド軸に寄せた

    言語ごとに1画面を開く並べ方と、フィールドごとに全言語を縦に並べる並べ方を、切替スイッチ付きで両方持たせていました。 使ってみると、直すときはいつも同じ欄を全言語ぶんでした。 ロケール軸と切替そのものを外し、フィールド軸だけを残しています。 文字数の上限も差分の有無も、同じ画面に収まります。

    ロケールを行・フィールドを列に取った表を2つ並べ、左は1行、右は1列が選ばれている対比図
    ロケールを行、フィールドを列に取った同じ表。外した案は行を選び、採用した案は列を選ぶ
  • ファイルを正とせず、現行値に差分を積む

    手元のファイルを正とする方式は採っていません。 App Store Connectの現行値を引いてきて、その上に下書きの差分を積む形にしています。 変更したフィールドだけをPushするので、触っていない欄を上書きしません。 書き出しの経路は持たせていないので、PushするまでこのMacから何も出ません。

    App Store Connect の現行値の下に、pulled と draft の2層をフィールド別に並べた表の図
    現行値の層と未送信の差分の層を分け、差分のある欄だけを App Store Connect へ送る
  • API キーは端末の Keychain だけに置く

    App Store Connect APIキーの紛失は情報漏洩です。 鍵はこの端末のKeychainだけに置き、iCloud同期の対象外にしています。 別のMacへ移行しても鍵は移りません。 署名はプロセス内で行い、リクエストはMacから直接App Store Connectへ向かいます。 経路上にサーバーを置いていません。

    Keychain と署名処理が端末の枠内に収まり、枠の外へは署名済みの通信だけが出ていく図
    キーは端末の Keychain に留まり、iCloud にも中継サーバーにも渡らない
  • エージェントには送信させず、承認を挟む

    MCPサーバーを内蔵していますが、エージェントが書けるのは下書きまでです。 Pushはアプリに確認ダイアログを開くところまでしかしません。 人が承認して初めて送信されるので、黙って公開される経路がありません。

    AI エージェント・Portus.app・App Store Connect の3列に、承認を挟んだ矢印を並べた図
    エージェントは下書きまで。App Store Connect へ出る矢印は承認の後にだけ現れる

提供形態

状態
近日公開
対応プラットフォーム
macOS
動作要件
macOS 26.5 以降
価格
無料(アカウント不要)
鍵の保管
このMacのKeychainのみ(iCloud同期なし)
AI連携
MCPサーバー内蔵(Pushは人間の確認を必須)
プラットフォーム
  • macOS

ほかのプロダクト

同じプラットフォーム向けに作っているものです。

← 自社プロダクト一覧へ