RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-06-12中級

Rork 製アプリに開発者デバッグメニューを実装する — 広告・課金・Remote Config の検証をリリース前に終わらせる設計

リリースビルドでしか再現しない広告・課金・Remote Config の不具合に毎回本番で向き合うのは消耗します。壁紙アプリ6本の運用で固まった、ストア提出ビルドには存在ごと残さない開発者デバッグメニューの設計と実装を、動くコードと落とし穴付きで共有します。

Rork515React Native209Expo149デバッグメニューAdMob70Remote Config6

プレミアム記事

2026年5月、運営している壁紙アプリの Android 版 v2.1.0 を 5%→25% と段階公開していたとき、「リワード広告で広告を外したはずなのにペイウォールが出る」という報告がレビュー欄に書き込まれました。手元のデバッグビルドでは何度試しても再現しません。原因は後述するとおり課金判定の合成漏れだったのですが、このとき一番つらかったのは、本番と同じ条件 — 本物の Remote Config、本物の広告在庫、本物の課金状態 — を手元で再現する手段が、当時のそのアプリに無かったことです。

リリースビルドでだけ顔を出す不具合は、広告・課金・リモート設定の3つが絡む場所に集中します。逆に言えば、この3つを実機の画面から安全に切り替えられる「開発者メニュー」を一度作ってしまえば、この種の検証の大半はリリース前に終わらせられます。個人開発で壁紙アプリ6本を並行運用するなかで形になってきた、ストア提出ビルドには存在ごと残らないデバッグメニューの設計と実装をまとめます。

「設定画面の隅に隠す」では、なぜ破綻するのか

最初に作りがちなのは、設定画面の最下部に __DEV__ 条件で項目を足していくやり方です。私も最初の数年はそうしていました。これが破綻する理由は3つあります。

  • 散らばる: 広告のテスト切替は広告モジュールに、接続先の切替は API クライアントに、と条件分岐がコードベース全体へ広がっていきます。半年後の自分は、どこに何を仕込んだか思い出せません。
  • 消し忘れる: リリース直前に「あのフラグ、戻したかな」と不安になる構造そのものが事故の温床です。実際、私は過去に検証用の接続先 URL を本番ビルドへ残しかけたことがあります。提出前のチェックリストで拾えたものの、仕組みで防げていない不安は残りました。
  • 再現手順を共有できない: 「◯◯をオンにして△△の画面を3回開くと出ます」という手順が口伝になります。一人で開発していても、未来の自分は他人です。

そこで方針を逆にします。デバッグ操作は1つの画面に集約し、その画面への入口と実装そのものをビルド種別で消す。散らばった if を追いかける代わりに、「上書きレイヤー」を1枚だけ設計するイメージです。

全体像 — 4セクションと、譲らない2つのルール

いま6本のアプリで運用しているメニューは、次の4セクションに落ち着きました。

  • 環境: コンテンツ配信や API の接続先切替(dev / staging / production)と、現在のビルド variant の表示
  • 広告: テスト広告モードの切替、直近の広告ロード結果ログ、メディエーションでどのネットワークがフィルしたかの表示
  • 課金: エンタイトルメント(広告非表示・プレミアム)の強制上書きと、購入フローのサンドボックス起動
  • Remote Config: 任意キーの上書きと、モーダル系施策の強制発火

そして、どのアプリでも譲っていないルールが2つあります。

  1. ストアへ提出するビルドには、メニューの入口だけでなくコードごと含めない。「見えないだけで入っている」状態は、審査の観点でも事故防止の観点でも中途半端です。
  2. 上書きが1つでも効いている間は、画面の隅に常時バッジを出す。 テスト状態のまま本番の数値を眺めて一喜一憂する、という間抜けな時間をこのバッジで撲滅しました。

なぜ2つ目をここまで強調するかというと、デバッグメニューの最大の敵は「自分が何を上書きしたか忘れること」だからです。上書きは便利になるほど忘れます。状態の可視化は飾りではなく、機能の一部だと考えています。

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

この記事の続きを読む

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

この記事で得られること
「本番ビルドでしか再現しない」広告・課金まわりの不具合調査で消耗していた人が、同じ条件を手元で再現できる開発者メニューを今日から実装できる
環境切替・広告テストモード・課金状態シミュレーション・Remote Config 上書きを1画面に集約する設計パターンと、そのまま動く TypeScript コードを習得できる
デバッグ機能をストア提出ビルドから存在ごと取り除き、審査リスクと消し忘れ事故を避ける運用チェックリストを自分のアプリに適用できる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-07-15
「、」が行頭に落ちた — Rork が組んだ名言カードと日本語の禁則処理
React Native の Text は日本語の行頭禁則を保証しません。実測した違反率、WORD JOINER による事前結合の実装、onTextLayout での自動監査、Rork Max(SwiftUI)との挙動差までまとめました。
開発ツール2026-07-10
React Compiler を Expo に入れて、手書き memo を 41 箇所消しました
Rork が生成した React Native 画面に React Compiler を導入し、再レンダリング回数を Profiler で実測しました。手書き memo/useCallback の削除判断、効かない箇所の見分け方、CI での回帰検知までをまとめています。
開発ツール2026-07-07
アイコンのバッジが「3」のまま消えない — Expoアプリのバッジ数をSource of Truthで作り直す
Expoアプリのアイコンバッジが実際の未読と食い違い、消えなくなる原因を突き止め、バッジ数を状態から再計算して同期するSource of Truth設計を、動くコードと実運用の落とし穴つきで整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →