RORK LABEN
MAX — Rork MaxはiPhone・iPad・Apple Watch・Apple TV・Vision Pro向けにネイティブSwiftを生成し、2クリックでApp Store公開でき、Xcodeを必要としませんSTACK — 通常のRorkはReact Native(Expo)でクロスプラットフォームのモバイルアプリを作る位置づけ。用途に応じた使い分けが鍵ですFOCUS — BoltやLovableのようなWeb中心ツールと違い、RorkはiOS/Androidのネイティブアプリ生成に特化していますBUGS — 実利用レビューでは遭遇したバグの約70%を手動介入なしで解決、残り3割はエクスポート済みコードでの手修正が必要と報告されていますFUNDING — Rorkはa16z(Andreessen Horowitz)から$2.8Mを調達しましたPRICING — 無料で開始でき、有料プランは$25/月からです。まず触ってから判断できますMAX — Rork MaxはiPhone・iPad・Apple Watch・Apple TV・Vision Pro向けにネイティブSwiftを生成し、2クリックでApp Store公開でき、Xcodeを必要としませんSTACK — 通常のRorkはReact Native(Expo)でクロスプラットフォームのモバイルアプリを作る位置づけ。用途に応じた使い分けが鍵ですFOCUS — BoltやLovableのようなWeb中心ツールと違い、RorkはiOS/Androidのネイティブアプリ生成に特化していますBUGS — 実利用レビューでは遭遇したバグの約70%を手動介入なしで解決、残り3割はエクスポート済みコードでの手修正が必要と報告されていますFUNDING — Rorkはa16z(Andreessen Horowitz)から$2.8Mを調達しましたPRICING — 無料で開始でき、有料プランは$25/月からです。まず触ってから判断できます
記事一覧/ビジネス
ビジネス/2026-06-15上級

複数アプリのストア情報を App Store Connect API でコード管理する — 手作業の更新を月一の仕組みに変える

Rork で量産したアプリが増えると、ストアの説明文や価格を手作業で直す時間が無視できなくなります。App Store Connect API を使ってメタデータをコードとして管理し、十数本のアプリへ一括反映する運用設計を、認証の落とし穴も含めて実装視点でまとめます。

App Store Connect9API3運用5自動化11アプリビジネス2

プレミアム記事

アプリを十本ほど並行で運用していた頃、季節のキャンペーン文言を全アプリの説明文に入れる作業に、半日を溶かしたことがあります。App Store Connect の画面を開き、アプリを選び、各言語のタブを切り替え、説明文の決まった位置に一文を足して保存する。これを言語数だけ、アプリ数だけ繰り返します。退屈なだけでなく、必ずどこかで貼り忘れや誤字が混じります。

Rork のような生成ツールでアプリを量産できるようになると、この「公開後の運用」のほうがボトルネックになります。作るのは速くなったのに、育てる作業は手作業のままだからです。今回は、App Store Connect API を使ってストア情報をコードとして管理し、手作業の更新を月一の仕組みに変える設計を共有します。

手作業の更新が破綻する境界

アプリが二、三本なら手作業で十分です。問題は本数が増えたときに、作業量が本数と言語数の掛け算で増えることです。五本のアプリを日英二言語で運用していれば、一回の文言変更で十箇所の編集が発生します。

私の実感では、五本を超えたあたりから手作業は割に合わなくなります。割に合わないのは時間だけではありません。手作業はミスを生み、ミスは審査差し戻しや表示崩れになって、結局もっと時間を奪います。だからこの仕組み化は、効率化というより事故防止の投資だと考えています。

App Store Connect API の最初の壁は認証

このAPIで最初につまずくのは、ほぼ全員が認証です。App Store Connect API は JWT(JSON Web Token)で認証しますが、この JWT の作り方に細かい決まりがあり、一つ外すと 401 が返ってきて理由が分かりません。

押さえるべき点は三つです。トークンの有効期限は最大 20 分で、それを超える値を入れると即座に弾かれます。aud(オーディエンス)は appstoreconnect-v1 固定です。そして発行者 ID とキー ID を取り違えると通りません。

import jwt from "jsonwebtoken";
import fs from "node:fs";
 
// .p8 秘密鍵は App Store Connect の「Users and Access > Keys」で発行
const privateKey = fs.readFileSync(process.env.ASC_KEY_PATH, "utf8");
 
export function makeToken() {
  const now = Math.floor(Date.now() / 1000);
  return jwt.sign(
    {
      iss: process.env.ASC_ISSUER_ID,   // Issuer ID(チーム共通の UUID)
      iat: now,
      exp: now + 19 * 60,               // 19分。20分上限に余裕を持たせる
      aud: "appstoreconnect-v1",
    },
    privateKey,
    {
      algorithm: "ES256",              // RS256 ではない。必ず ES256
      header: { kid: process.env.ASC_KEY_ID, typ: "JWT" },
    }
  );
}

exp を 19 分にしているのは、生成からリクエスト到達までのわずかな時間で 20 分を超える事故を避けるためです。私自身、ここを 20 分ちょうどにして、ネットワークが遅い日にだけ間欠的に 401 が出る現象に半日悩まされました。アルゴリズムを ES256 にし忘れるのも定番の落とし穴です。.p8 鍵は楕円曲線鍵なので、RS256 を指定すると署名段階で失敗します。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
App Store Connect API の JWT 認証でハマりやすい有効期限・スコープの落とし穴と、その回避コードが持ち帰れます
説明文・キーワード・価格を JSON で一元管理し、十数本のアプリへ差分だけ反映する最小スクリプトの設計がわかります
一括反映で全アプリを同時に壊さないための、段階反映と本番前検証の判断基準がわかります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

ビジネス2026-05-22
App Store のレビュー返信を Claude in Chrome に任せた3ヶ月の所感
2014年から続けてきた個人アプリ開発で、ずっと後回しになっていたのが App Store / Google Play のレビュー返信でした。Claude in Chrome に半分任せて3ヶ月運用してみた結果、評価平均と低評価への向き合い方がどう変わったかを正直に書き残します。
ビジネス2026-06-13
収益の「本当の数字」を掴む — AdMob・App Store・Google Play・Stripe を突き合わせる集計設計
ダッシュボードの売上と実際の入金額は一致しません。通貨・タイムゾーン・推定値と確定値のズレを吸収し、4つの収益ソースを突き合わせる集計パイプラインを、6本並行運用の実装と運用判断とともに整理しました。
ビジネス2026-05-21
AdMob のダッシュボードを毎日見ない運用に切り替えた所感 — Rork アプリで Slack 通知 4 階層を組んでから 2 ヶ月
2014年からアプリ運営を続けるなか、AdMob を毎日開く習慣を手放しました。Slack 通知を4階層に分けて Rork アプリの広告指標を眺めない運用に変えてから2ヶ月の所感を、設計判断と失敗例を含めて書いています。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →