RORK LABEN
MAX — Rork Maxはコード署名やプロビジョニングを肩代わりし、2クリックでApp Storeへ申請できます。公開にローカルMacは不要ですSIMULATOR — ブラウザ内のストリーミングシミュレータで操作感を試せ、QRを読めばTestFlightなしで実機に直接インストールできますNATIVE — SwiftUI・ARKit・HealthKit・HomeKit・Core ML・Metalなど、React Nativeでは届かない領域までカバーしますSEED — Rorkは2026年4月にLeft Lane Capital主導で$15Mのシードを調達し、Peak XVやa16z Speedrunが参加しましたGROWTH — 月間743,000訪問・成長率85%と報じられ、AIモバイルアプリ構築の裾野が広がっていますNOCODE — Gartnerは2026年末までに新規アプリの75%がローコード/ノーコードで作られると予測していますMAX — Rork Maxはコード署名やプロビジョニングを肩代わりし、2クリックでApp Storeへ申請できます。公開にローカルMacは不要ですSIMULATOR — ブラウザ内のストリーミングシミュレータで操作感を試せ、QRを読めばTestFlightなしで実機に直接インストールできますNATIVE — SwiftUI・ARKit・HealthKit・HomeKit・Core ML・Metalなど、React Nativeでは届かない領域までカバーしますSEED — Rorkは2026年4月にLeft Lane Capital主導で$15Mのシードを調達し、Peak XVやa16z Speedrunが参加しましたGROWTH — 月間743,000訪問・成長率85%と報じられ、AIモバイルアプリ構築の裾野が広がっていますNOCODE — Gartnerは2026年末までに新規アプリの75%がローコード/ノーコードで作られると予測しています
記事一覧/開発ツール
開発ツール/2026-07-11上級

StoreKit 2 の署名付きトランザクションを Cloudflare Worker で検証する

端末が申告した課金状態をそのまま信じると、改ざんされたエンタイトルメントを通してしまいます。StoreKit 2 の署名付きトランザクション(JWS)を Cloudflare Worker 側で検証し、端末を信用せずに権利を付与する設計と実装を、動くコードとともに整理します。

StoreKit 215Cloudflare Workers23課金検証JWS3Rork500

プレミアム記事

課金まわりで最初にひやりとしたのは、あるアプリで「プレミアム解放フラグ」を端末の UserDefaults に保存し、それを信じて機能を出し分けていたときでした。脱獄端末やプロキシを噛ませたリクエストの前では、そのフラグは何の保証にもなりません。無料のまま全機能が開いてしまう構造を、リリース後しばらく経ってから気づいたのです。

課金の判定は、最終的に「誰が署名したか」で決めるべきものです。StoreKit 2 はトランザクションに Apple の署名を載せて渡してくれます。であれば、その署名を私たち自身のサーバーで検証し、端末の申告そのものは信用しない、という境界を引けます。ここでは、その検証を Cloudflare Worker 上で行う設計と実装を、実際に動くコードで組み立てていきます。

端末を信用しない、とはどういうことか

課金状態の判定には、大きく二つの立場があります。端末が「私は課金済みです」と言うのをそのまま受け取る立場と、端末が持ってきた「Apple が署名した証拠」を検証してから受け取る立場です。この違いは、実装の複雑さではなく、信頼の置き所の違いです。

観点端末の申告を信じる署名を検証してから信じる
改ざん耐性なし(フラグを書き換えれば解放)あり(Apple の署名がなければ通らない)
権利の正本端末のローカルストレージサーバーが検証して発行したエンタイトルメント
オフライン挙動常に即時(だが偽装可能)検証済みの結果をキャッシュして即時化
実装コスト低いWorker 一つ分だけ増える

個人開発では、サーバーを持たずに端末だけで完結させたくなります。私自身もそうでした。ただ、収益に直結する機能ほど、検証の一枚を挟む価値があります。幸い Cloudflare Worker なら、常時起動のサーバーを抱えずに、リクエストが来たときだけ署名検証を走らせられます。この「必要なときだけ立ち上がる検証層」という形が、個人開発の運用コストと相性が良いと感じています。

StoreKit 2 の署名付きトランザクション(JWS)

StoreKit 2 では、購入結果やトランザクション履歴が VerificationResult という形で返ってきます。この中に、Apple が署名した生の文字列 jwsRepresentation が入っています。これは JWS(JSON Web Signature)のコンパクト形式で、ヘッダー.ペイロード.署名 の三つを . で連結した文字列です。

ヘッダーには署名アルゴリズム(ES256)と、x5c という証明書チェーンが入っています。x5c は配列で、先頭が実際に署名した証明書(リーフ)、続いて中間証明書、末尾が Apple のルート証明書(Apple Root CA - G3)です。ペイロードには bundleIdproductIdtransactionIdenvironment・購入日時などが入っています。

つまり検証とは、次の三つを確かめる作業に分解できます。第一に、リーフ証明書の公開鍵で JWS の署名が正しいこと。第二に、証明書チェーンが Apple のルートまで正しく繋がっていること。第三に、ペイロードの中身が自分のアプリの正しい商品を指していること。この三つが揃って初めて、その端末が本当に購入したと判断できます。

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

この記事の続きを読む

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

この記事で得られること
端末が申告する課金状態を鵜呑みにして不安を感じていた人が、Cloudflare Worker で StoreKit 2 の署名を検証して権利を付与する実装を手に入れられる
Apple の署名付きトランザクション(JWS)と証明書チェーンの検証手順を理解し、Web Crypto と jose で動く Worker を書けるようになる
リプレイ・環境取り違え・ルート証明書未固定という三つの穴を、コードレベルで塞げるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-05-20
Rork × StoreKit 2 × App Store Server API — 個人開発アプリのサブスク基盤を3層で守る実装設計
Rork製iOSアプリにStoreKit 2とApp Store Server APIを組み合わせ、クライアント検証・サーバ検証・通知監視の3層でサブスク収益を守る実装と運用ノウハウを公開します。
開発ツール2026-04-25
RevenueCat の固定費が気になり始めた人のための、App Store Server Notifications V2 自前運用ガイド
Rork アプリで RevenueCat を経由せず、App Store Server Notifications V2 を Cloudflare Workers で受信する構成を、JWS 検証・冪等処理・テスト戦略まで含めて実装する完全ガイド。
開発ツール2026-06-30
返金申請に12時間以内で応答する — CONSUMPTION_REQUEST を Cloudflare Workers で受け止める
Rork で作ったサブスクアプリに届く App Store の CONSUMPTION_REQUEST 通知を、Cloudflare Workers で受信して Send Consumption Information API に12時間以内で応答する実装を、フィールドの意味づけと運用判断まで含めて解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →