コンテンツへスキップ
supastack
ドキュメントを閲覧
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ja/docs/mobile/revenuecat.md (or send Accept: text/markdown).

RevenueCat 購入のセットアップ

RevenueCat プロジェクトを作成し、App Store と Play のプロダクトをリンクし、購入を検証する SDK キーとサーバーシークレットを配線します。

このガイドについて質問
開くアプリ

初心者向けのウォークスルー

存在理由:Apple と Google はアプリ内のデジタル購入を自社の課金経由に限ることを要求しており——Stripe Checkout は不可——キットはその境界を強制します。RevenueCat は両方のストアの上に載るため、1 つの統合で iOS と Android をカバーします:レシート、サブスクリプション、復元を追跡し、サーバーは RevenueCat にワークスペースが支払ったかを尋ねます。

前提条件:モバイルアカウントガイドの Apple Developer Program(年額 99 ドル)と Google Play Console(25 ドル 1 回)のアカウント——RevenueCat がリンクする前にストアプロダクトが存在する必要があります——加えて実際にテストするための EAS 開発ビルド。Expo Go はネイティブ購入モジュールをまったく実行できないためです。RevenueCat の無料枠はテストをカバーします。プロダクトが公開されるまでは何も課金されません。

用語メモ:RevenueCat プロジェクトはストアにリンクしたアプリを保持します。プロダクトは RevenueCat 内にミラーされるストアアイテムです。エンタイトルメントはサブスクリプションがアクティブな間 RevenueCat が付与するフラグで、デフォルトは pro です。オファリングはプロダクトをアプリが提示するペイウォールに束ねます。公開 SDK キーはモバイル env に入り、シークレット API キーと webhook 認証はサーバーサイドに留まります。

作成するもの:1 つのプロジェクト、2 つのストアリンクアプリ、プロダクト、1 つのエンタイトルメント、1 つのオファリング——約 1 時間で、そのほとんどはストアプロダクトのセットアップ待ちです。

RevenueCat アカウントとプロジェクトを作成する

1. app.revenuecat.com → サインアップし、製品名でプロジェクトを作成します。

期待される結果:Apps、Products、Entitlements、Offerings、API keys のタブを持つ空のプロジェクトダッシュボード——次のセクションが順に埋めていきます。

ストアプロダクトを作成し、両アプリをリンクする

ストア側のプロダクトは RevenueCat が参照する前に存在する必要があります。iOS:appstoreconnect.apple.com → My Apps → ios.bundleIdentifier でアプリレコードを作成 → In-App Purchases または Subscriptions → 販売予定のサブスクリプションプロダクトを作成(テスト中はドラフトのままで構いません)。Android:play.google.com/console → アプリを作成 → Monetize → Products → Subscriptions(またはアプリ内プロダクト)。

次に RevenueCat 内で両方をリンクします:Apps → New app。iOS は App Store を選び、バンドル ID を入力し、フォームが求める App Store Connect 認証情報を提供します——各フィールドについて RevenueCat 自身のセットアップドキュメントにリンクしています。Android は Play Store を選び、パッケージ名を入力し、Play サービスアカウント JSON をアップロードします——リンクされたドキュメントが Google Cloud での作成を案内します。

期待される結果:両アプリがプロジェクト下にリストされ、ストアコンソールにプロダクトが存在しています——この段階ではドラフト状態で構いません。

プロダクト、エンタイトルメント、オファリング

1. Products → New:ストアプロダクトごとに 1 つの RevenueCat プロダクトを作成し、対応する App Store または Play のプロダクト ID を付けます——ID はコンソールと正確に一致する必要があります。

2. Entitlements → New:REVENUECAT_ENTITLEMENT_ID に合わせた名前——キットのデフォルトは pro——を付け、それを付与するプロダクトを紐付けます。

3. Offerings → New:オファリングを作成し、プロダクトを指すパッケージを追加し、Current にマークします——アプリはペイウォールを描画するときに offerings.current を読みます。

REVENUECAT_ENTITLEMENT_KEY はデフォルトの ai.reference-task のままにしてください:これはキット内部の台帳キー——同梱の Web プランが付与するのと同じキー——で、RevenueCat のアクセスはその下に書き込まれます。製品のプランキーが変わるときだけ名前を変更します。

キーをコピーし、webhook を登録する

Project → API keys に以下の 3 種類がリストされます。公開のプラットフォーム別 SDK キー(iOS は appl_…、Android は goog_…)は apps/mobile/.env.local に入ります——アプリを識別するもので課金権限は持たず、EXPO_PUBLIC_ プレフィックスはこれらに正しいものです。

シークレット API キー(sk_…、v1 キー)と webhook 認証は apps/web/.env.local のサーバー専用です——EXPO_PUBLIC_ には入れず、コミットもしません。サーバーはシークレットキーで RevenueCat のサブスクライバー API を呼び、各ワークスペースの購入状態を検証します。

Webhook:RevenueCat → Integrations → Webhooks → URL に {APP_URL}/api/billing/webhook/revenuecat を設定し、Authorization ヘッダー値——あなたが考案する任意の長いランダム文字列——を設定し、まったく同じ文字列を REVENUECAT_WEBHOOK_AUTHORIZATION に入れます。キットはヘッダーを逐語的に比較し、それ以外を拒否するため、更新・キャンセル・返金が次のアプリ起動を待たずにサーバーに届きます。

サンドボックス購入は本番以外では自動的に受け入れられます。本番 env の REVENUECAT_ALLOW_SANDBOX=true は起動時に拒否されるため、公開後は未設定のままにしてください。

# apps/mobile/.env.local
EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER=revenuecat
EXPO_PUBLIC_REVENUECAT_IOS_API_KEY=appl_…
EXPO_PUBLIC_REVENUECAT_ANDROID_API_KEY=goog_…

# apps/web/.env.local — server side
MOBILE_PURCHASES_PROVIDER=revenuecat
REVENUECAT_SECRET_API_KEY=sk_…
REVENUECAT_WEBHOOK_AUTHORIZATION=<the exact Authorization value set on the webhook>
REVENUECAT_ENTITLEMENT_ID=pro
REVENUECAT_ENTITLEMENT_KEY=ai.reference-task

サンドボックス購入で確認する

購入は開発または本番ビルド内でのみ実行されます——Expo Go にはネイティブモジュールが完全にないため、この手順は eas build --profile development が開発クライアントを生成済みであることを前提とします(EAS ガイドがそれをビルドします)。

1. 開発ビルドをサンドボックスアカウントにサインインしたデバイスまたはシミュレーターにインストールします:iOS は App Store Connect → Users and Access → Sandbox Testers、Android は Play Console → license testing。

2. アプリでペイウォールを開き、サンドボックスアカウントで購入します。期待される結果:購入がサンドボックスで完了し——実際の課金なし——購入の復元が機能し、ワークスペースのエンタイトルメントがアクティブと表示され、ai.reference-task キーの下にサーバーサイドで記録されます。

よくある失敗:空のペイウォールはオファリングが Current でないかプロダクトが未リンクであることを意味します。デバイスでの購入失敗はストアプロダクトがまだドラフトか、間違ったサンドボックスアカウントでサインインしていることを意味します。反転しないエンタイトルメントは MOBILE_PURCHASES_PROVIDER/EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER がオフか、webhook Authorization が不一致であることを意味します——RevenueCat のダッシュボードが各 webhook 配信のステータスを一覧します。

よくある質問

14 件の質問

supastack とは何ですか?

supastack は AI SaaS 製品を構築するためのモジュラー基盤です。共通インフラをまとめて提供するので、製品固有の機能に集中できます。

Web とモバイルに対応していますか?

はい。supastack には Web とモバイル体験の出発点として Next.js アプリと Expo アプリが含まれています。

どの認証が含まれていますか?

Better Auth がメール/パスワード、OTP、ソーシャルログインをカバーします。個人ワークスペースはアカウントと一緒にプロビジョニングされ、初日からレコードが境界内に収まります。

AI はどうサポートされていますか?

supastack には設定可能なマルチプロバイダー AI、使用量追跡、予算、暗号化された自前キー(BYOK)サポートが含まれています。

サブスクリプションはどう管理されますか?

このキット上に構築された製品では、Stripe 課金・サブスクリプション・権限が有料アクセスの基盤になります。プロバイダーの秘密はサーバー側に留まります。

製品固有のコードはどこに置きますか?

製品固有の機能は別のコードベースに置き、製品側が supastack の基本モジュールを設定・統合します。

supastack の価格は?

キットは生涯アップデート付きの一回払いです:単一フレームワーク 249 ドル(期間限定のローンチ価格 — 通常価格 349 ドルから 100 ドル割引)、または全フレームワーク(Next.js・iOS・Android)499 ドル(期間限定のローンチ価格 — 通常価格 599 ドルから 100 ドル割引)、追加開発者シート 1 席 75 ドル。キットのサブスクリプションはありません。このサイトのチェックアウトはライセンスキーをメールで配信し、GitHub 招待でリポジトリアクセスを提供します。

ワークスペースはどうデータを囲いますか?

ユーザーレコードは workspaceId でスコープされます。認証、権限、AI 使用量、課金イベント、監査エントリは個人ワークスペースの境界内に留まります。

バックグラウンドジョブはどう機能しますか?

Trigger.dev が明示的なジョブランタイムです。JobRunner コントラクトは enqueue・status・cancel のみを約束し、ワークフロー意味論は Trigger.dev 固有で明示的です。

メールとアウトリーチの違いは?

トランザクションメールはタスク完了通知などの製品ワークフローをカバーします。コールドアウトリーチやキャンペーンは製品自身に属し、このキットのメールモジュールの外です。

モバイルの購入はどのように機能しますか?

モバイルでは RevenueCat によるネイティブ購入と復元に対応し、アクセス権をサーバーで検証します。公開前にストアアカウントを設定し、実機テストを完了してください。Web 課金は別に管理します。

AI プロバイダーのキーはどこにありますか?

BYOK 認証情報は暗号化され、サーバー側に留まります。キーはログでサニタイズされ、使用量と予算はワークスペースレベルで可視です。

チェックアウトで使える支払い方法は?

Stripe ホストのチェックアウトはカードを受け付け、Stripe アカウントでウォレットを有効にすれば Alipay と WeChat Pay も提供できます——中国の購入者に便利です。ウォレット認可は非同期で確定するため、決済完了と同時にライセンスページが更新されます。

返金を受けることはできますか?

リポジトリへのアクセス権を取得した後は、supastack は永久にあなたのものとなるため、返金はできません。ですがご安心ください。生涯アップデートを含む完全なソースコードを入手し、ご自身やクライアントのために無制限にプロダクトを構築・公開できます。コードの転売や、リポジトリをスターターキットやテンプレートとして再配布することのみ禁止されています。

JA
テーマ