◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-05-25中級

Rork で作る iOS アプリに StoreKit 2 で買い切り課金を実装するノート

Rork が生成する Swift / SwiftUI コードに StoreKit 2 で買い切り課金を後付け実装する手順メモ。累計 5,000 万 DL の壁紙アプリで StoreKit 1 から 2 へ移行した経験を踏まえて、ProductID 設計・Transaction 検証・Paywall UI・本番ハマりどころまで実装サンプル込みで共有します。

rork59rork-max41storekit-2アプリ内課金9ios12swiftui11個人開発218

✦ プレミアム記事

Rork で iOS アプリを生成すると、起動から画面遷移までは綺麗に動くのに、肝心の課金部分は「ここは自分で書いてください」というコメントだけが置かれていることがあります。実際に App Store に出すなら必ず通る部分なので、ここで手が止まってお蔵入りする方を時々見かけます。

廣川政樹です。2014 年から個人開発で iOS / Android アプリを続けていて、累計 5,000 万 DL の壁紙アプリ群(綺麗な壁紙・浮世絵壁紙・クールな壁紙・イラスト壁紙・Dolice 壁紙)と Lab 4 サイト・Blog 2 サイトを一人で運営しています。5 アプリすべてを 2025 年に StoreKit 1 から StoreKit 2 に移行した直後だったので、Rork で生成したコードに StoreKit 2 を後付けで組み込むのは比較的スムーズに進みました。

このノートはその実装メモです。「Rork で動くものは作れたけれど、課金で詰まっている」「StoreKit 2 の実装例を探しているが iOS 公式サンプルが Rork のコード構成と合わない」という方の参考になればと思います。

なぜ Rork コードに StoreKit 2 を後付けすることになるか

Rork は要件から SwiftUI アプリの骨格を生成してくれますが、IAP(In-App Purchase)の実装は基本的に「ここでアンロックする」というプレースホルダだけ置かれます。理由は単純で、IAP は App Store Connect 側の設定(ProductID 作成、Tax フォーム提出、銀行口座登録、契約承認)が完了していないと動作確認できず、Rork 側でテストできないからです。

Rork が生成するアプリは、おおよそ以下のような構造になります。

MyApp/
├── MyAppApp.swift           ← @main エントリポイント
├── ContentView.swift        ← トップ画面
├── Views/
│   ├── WallpaperView.swift  ← 機能画面
│   └── PremiumGateView.swift ← 「ここで課金」と書かれた仮実装
├── Models/
│   ├── WallpaperItem.swift
│   └── PurchaseManager.swift ← 中身は TODO だけ
└── Resources/
    └── Assets.xcassets

PurchaseManager.swift が空っぽなので、ここに StoreKit 2 のロジックを書き込むのが課金実装の本体です。SwiftUI ベースなので StoreKit 2 と相性が良く、StoreKit 1 時代のように SKProductsRequestDelegate を SwiftUI のライフサイクルに無理やり押し込む必要がありません。

私自身、壁紙アプリ群を StoreKit 1 → 2 に移行した直後だったので、Rork コードへの後付けは「移行作業を 1 から繰り返す」感覚で進められました。逆に言えば、StoreKit 2 を初めて触る方には少し学習コストがあります。本稿は「初めて StoreKit 2 を触る人」向けにフルセットで書いています。

App Store Connect 側の準備 — 課金実装よりこっちが鬼門

実装の前に App Store Connect 側で済ませる作業があります。私の経験上、ここで詰まる方が多いです。

第一に、App Store Connect で課金契約と各種フォームを完了 させます。これが未完了だとサンドボックスでも本番でも IAP が動きません。Apple の「Tax, Banking, and Trade Representative Contact Information」のセクションを全て埋める必要があります。

第二に、ProductID の命名規則を決めて作成 します。私は以下のような命名規則で統一しています。

{bundle_id}.{type}.{label}

例:
- com.dolice.wallpaper.consumable.pack_50  (消耗品)
- com.dolice.wallpaper.nonconsumable.premium  (買い切り)
- com.dolice.wallpaper.subscription.monthly  (月額)
- com.dolice.wallpaper.subscription.yearly  (年額)

命名規則を決めずに開発すると後で困ります。1 つ目のアプリで premium_full という ID を作って、2 つ目のアプリで unlock_all という ID を作ると、共通化されたコードで分岐が必要になります。最初に統一しておくのが個人運用での実用的な判断です。

第三に、ProductID は本番と検証で同じものを使う こと。Apple のサンドボックスでテストするときと本番購入で同じ ProductID が使われるので、開発初期に作った ID を後から変更しにくい構造になっています。最初に慎重に決めてください。

✦

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

この記事の続きを読む

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

この記事で得られること
✦Rork で生成された Swift / SwiftUI コードに StoreKit 2 を後付けで組み込む具体的な実装手順とフォルダ構成パターンの完全コードを取得できます
✦5,000 万 DL の壁紙アプリで StoreKit 1 から 2 に移行した経験を踏まえた、ProductID 設計と Transaction 検証の落とし穴対策が分かります
✦RevenueCat を使わずに素の StoreKit 2 で完結させる場合と、RevenueCat を入れて運用工数を下げる場合の判断軸を、個人開発者の実用範囲で比較できます
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⬡ 開発ツール2026-05-20
iOS の 0x8badf00d ウォッチドッグ強制終了に Rork アプリが落ちるときの対処
Rork で作った iOS アプリが起動直後に消える。クラッシュログに 0x8badf00d。Apple のウォッチドッグが React Native の重い初期化を切ったときの正しい直し方を、私の運用中アプリで実際に効いた手順で説明します。
◉ AI モデル2026-05-04
Rork Max SwiftUI から App Store リリースまでの完全プレイブック
Rork Max が SwiftUI コードを生成してから、実際に App Store 審査を通過してリリースするまでには、見落としがちな8つの工程があります。10年以上の個人開発経験から、生成コードを商用品質に持ち上げるための完全プレイブックを共有します。
⟐ ビジネス2026-04-28
Rork Max で SwiftUI ネイティブアプリを収益化する — App Store 審査攻略からサブスクリプション設計まで
Rork Max が生成した SwiftUI コードを App Store 審査に通し、StoreKit 2 でサブスクリプション課金を組み込むまでの工程を、動くコードと審査で確認される項目つきで整理します。