◉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-19上級

Firebase App Check を Rork に段階的に enforcement する — AdMob 不正検知と Crashlytics を壊さない実運用設計

Firebase App Check を本番投入したいが Crashlytics や AdMob を壊したくない、という個人開発者向けに、Rork から DeviceCheck と Play Integrity を段階的に有効化する設計とロールバック手順をまとめます。

Firebase10App CheckAdMob73Crashlytics13Rork585本番運用10

✦ プレミアム記事

ある月曜の朝、Crashlytics のダッシュボードがほぼ無音になっていました。「クラッシュフリーが急に 99.97% に上がった」と一瞬喜んだのですが、5 分後には逆の意味だったと気づきます。クラッシュが減ったのではなく、レポートが届いていないだけでした。前夜、Firebase App Check の enforcement を Realtime Database と Crashlytics の両方で「未強制」から「強制」に切り替えていたのです。

App Check の話題はドキュメントが充実していて手順も書かれていますが、Rork で組んだアプリにあとから入れるとき、本当に怖いのは「ボタンひとつで本番から不正トラフィックを止められる」という設計の単純さの方です。広告収益を柱にした個人開発のアプリをいくつも抱えている身としては、App Check の段階的 enforcement だけは何度入れても緊張します。一度全停止を経験した側として、Rork で App Check を導入する個人開発者がそのまま使える設計を、実例ベースで書き残しておきます。

なぜ App Check の「即時強制」は本番で危険なのか

App Check は、Firebase バックエンドへのリクエストが「正規のアプリから来ているか」を、iOS なら DeviceCheck / App Attest、Android なら Play Integrity で検証する仕組みです。enforcement モードを「強制」にすると、検証に通らないリクエストはサーバ側で 401 として落とされます。

ここで問題なのは、検証に通らないリクエストの中に、不正トラフィックではなく「自分のアプリが出している正規のリクエスト」も普通に含まれてしまうという点です。よくある原因は次の三つで、いずれも自分の本番アプリで実際に踏みました。

  1. App Attest がまだプロビジョニングされていない端末(インストール直後数十秒の窓)からの起動シーケンス
  2. Debug Provider を設定し忘れたままのデバッグビルドや TestFlight ビルド
  3. iOS シミュレータや、Android のエミュレータからの社内 QA リクエスト

これらが全て「強制」モードでブロックされると、Crashlytics は単純にレポートが届かなくなり、Realtime Database はリスナーが立たなくなり、Remote Config はフェッチに失敗してデフォルト値で動き続けます。サーバ側エラーは Firebase コンソールにしか出ないので、Rork 側のログを見ても気づきません。

App Check を本番投入するときは、この「気づかない停止」が先に広がる前提で、必ず段階的 enforcement とロールバックフラグを同時に組むのが基本だと考えています。

Rork から App Check を有効化する 3 つの前提条件

Rork のプロジェクトで App Check をまっとうに動かすには、Expo SDK と Firebase JS SDK が両方とも噛んでいる構成を意識する必要があります。私の場合、次の三点を確認してから初めて Firebase コンソールの enforcement に手をつけることにしています。

第一に、Firebase JS SDK のバージョンが App Check 対応バージョンになっていること。@react-native-firebase/app-check を使う場合は v18 以降が安心で、v17 系には iOS の AppAttest provider で初期化が不安定になる既知の挙動がありました。

第二に、Expo の prebuild が走った状態で ios/<App>/AppDelegate.swift に App Check の provider 初期化が、Firebase.configure() の前に来ていること。順序が逆だと、初回 token 取得のために発火するべき内部 listener が落ちます。

第三に、Android 側で Play Integrity を使う場合、Play Console 側で「Play Integrity API」が「使用中」になっていること。Firebase コンソール側で provider を選んだだけでは有効化されません。

これらが揃っていない状態で enforcement だけ進めると、ロールバックしても症状が消えないことがあるので、私はチェックリスト化して毎回見直しています。

✦

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

この記事の続きを読む

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

この記事で得られること
✦DeviceCheck と Play Integrity を Remote Config 経由で 0%・10%・50%・100% と段階的に enforcement する具体的な実装
✦Crashlytics と Realtime Database が App Check 有効化で静かに停止する代表的な 3 つの失敗パターンと、本番で 1 日以内に検知するための観測手順
✦本番で何かが壊れたとき 3 分以内に revert する Remote Config フラグ設計と、リカバリ用の最小チェックリスト
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⬡ 開発ツール2026-06-12
Rork 製アプリに開発者デバッグメニューを実装する — 広告・課金・Remote Config の検証をリリース前に終わらせる設計
リリースビルドでしか再現しない広告・課金・Remote Config の不具合に毎回本番で向き合うのは消耗します。壁紙アプリ6本の運用で固まった、ストア提出ビルドには存在ごと残さない開発者デバッグメニューの設計と実装を、動くコードと落とし穴付きで共有します。
⬡ 開発ツール2026-05-16
Rork Max 製 iOS アプリの Firebase CocoaPods を Swift Package Manager へ移行した実録——2026年10月の廃止前に対応した手順と3つの落とし穴
Firebase Apple SDK の CocoaPods 配信が2026年10月に停止します。Rork Max 製 iOS アプリ4本を Swift Package Manager へ移行した実体験をもとに、手順・落とし穴・Dropbox競合コピー問題の解決策を詳細に解説します。
⬡ 開発ツール2026-05-08
Rork アプリの段階的リリース戦略 — 壊さない本番運用を作る
Rork で出したアプリの本番運用を、iOS Phased Release・Android Staged Rollout・OTA ホットフィックスの三層で守る手順です。停止の判断に使っている数値ライン、Sentry と GitHub Actions による監視、App Store Connect API から一時停止を叩く実装までをまとめました。