◉RORK LABEN
●GPT6.1 — Rork のモデルメニューに GPT-6.1 Sol が加わりました(9月29日)。GPT-6 Sol と同価格で、1M トークンの文脈を読みます●10/12 — React Native 0.88.x の正式リリース予定まで残り6日。Expo SDK 58 安定版はその後で、Expo Go の更新で SDK 57 のサポートが落ちます●CRYPTO — expo-crypto の digest() が、TypeScript 上は ArrayBuffer を受けるのに Android のネイティブ側は TypedArray を求める、という Issue が出ています(修正 PR あり)●NEW — モデルメニューの入れ替わりを3種類に分けて、クレジットの行き先を台帳に残します●SDK58 — SDK 58 の安定版の日付は、昨日の確認時点ではまだ出ていませんでした●SHEET — expo-ui の BottomSheet で presentationBackground の素材が平らで不透明に描かれる、という報告が出ています●GPT6.1 — Rork のモデルメニューに GPT-6.1 Sol が加わりました(9月29日)。GPT-6 Sol と同価格で、1M トークンの文脈を読みます●10/12 — React Native 0.88.x の正式リリース予定まで残り6日。Expo SDK 58 安定版はその後で、Expo Go の更新で SDK 57 のサポートが落ちます●CRYPTO — expo-crypto の digest() が、TypeScript 上は ArrayBuffer を受けるのに Android のネイティブ側は TypedArray を求める、という Issue が出ています(修正 PR あり)●NEW — モデルメニューの入れ替わりを3種類に分けて、クレジットの行き先を台帳に残します●SDK58 — SDK 58 の安定版の日付は、昨日の確認時点ではまだ出ていませんでした●SHEET — expo-ui の BottomSheet で presentationBackground の素材が平らで不透明に描かれる、という報告が出ています
記事一覧/開発ツール
⬡ 開発ツール/2026-08-19中級

Play Policy Insights を Expo プロジェクトに通すと、検出が0件になる条件が3つあります

Google Play が公式に配布し始めたポリシー審査スキルを、Expo 構成のプロジェクトで走らせた記録です。指すディレクトリひとつで検出が5カテゴリから0件に変わりました。走査が届く条件と、出力を鵜呑みにしてはいけない箇所を残します。

Google Play35Expo212Rork575Data safety審査対策

✦ プレミアム記事

「検出0件」という結果ほど、疑ってかかるべきものはありませんでした。

Google Play が 2026年7月15日のポリシー告知で、ポリシー審査用のオープンソースツールを案内しています。LLM を Play のポリシー文書に接地させて、IDE や CLI の中でコードを評価させる、という趣旨のものです。名前は Play Policy Insights。提出してから差し戻される回数を減らせるなら、個人開発で6本のアプリを並行して抱えている身としては、試さない理由がありません。

手元に Expo 構成の最小プロジェクトを組んで走らせました。1回目、android/app を指定。検出0件。2回目、リポジトリのルートを指定。データ収集が5カテゴリ検出されました。同じコード、同じ権限、同じ依存です。

差はディレクトリの指定だけでした。

Play Policy Insights が実際に見ているもの

このスキルは android/skills リポジトリ で配布されています。監査対象は3ドメイン、Permissions and APIs Hygiene(権限と API の衛生)、User Account and Identity(アカウントと本人性)、Data Safety and Privacy(データセーフティとプライバシー)です。

構成は2フェーズです。第1フェーズで orchestrator.py init <app_dir> を実行し、静的解析でコードベースを地図化して、必要な監査ゴールを判定します。第2フェーズで、判定されたゴールごとにプロンプトが生成され、AI アシスタント側がそれを実行して JSON を書き出します。最後に generate_report.py が Markdown のレポートにまとめます。

フェーズ実行するもの成果物
Phase 1orchestrator.py init <app_dir>activated_goals・静的解析結果 JSON・ゴール別プロンプト
Phase 2ゴール別プロンプトの実行 → orchestrator.py aggregateaggregated_findings.json
Finalizegenerate_report.py <temp_dir>compliance_report.md

重要なのは、精度のすべてが第1フェーズの静的解析に乗っているという点です。ここで拾えなかったものは、後段の AI がどれだけ賢くても復元されません。スキル自身も「Phase 1 の自動監査が真実の源泉であり、失敗したら即座に停止せよ。手動監査へのフォールバックは禁じる」と明記しています。裏を返せば、第1フェーズが静かに空振りしたときが一番危ないということです。

条件1: 走査の入口がリポジトリのルートでないと、ハイブリッド判定が起きません

scanner.py は、指定されたディレクトリとその親ディレクトリだけを見て、package.json か pubspec.yaml があるかを確認します。あれば「ハイブリッドアプリ」と判定して、走査のルートをそこまで広げます。

Expo プロジェクトのルートは package.json があるリポジトリ直下です。android/app を指定すると、親は android であって、そこには package.json がありません。ハイブリッド判定は起きず、JS/TS のコードは1行も走査されません。

手元で確認した差がこれです。

指定したディレクトリactivated_goals検出されたデータカテゴリ
リポジトリのルートdata_safety_part_1, permissions_and_apis5件
android/app(空)0件

Android アプリの監査だと言われたら、android の下を指したくなります。私自身、最初にそうしました。ところが Expo / React Native では、権限を要求している実体は JS 側にあります。ネイティブ側だけを見に行った瞬間、監査は成立しなくなります。

init の標準エラー出力に Hybrid app detected. Expanding scan root to: ... という1行が出るかどうかが、成否の見分け方です。この行が出ていなければ、そのレポートは読む価値がありません。

✦

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

この記事の続きを読む

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

この記事で得られること
✦提出前チェックが「問題なし」と出たときに、本当に問題がないのか走査が届いていないだけなのかを自分で見分けられるようになります
✦Expo / React Native 構成のプロジェクトで公式スキルを正しい入口から走らせ、Data safety の申告漏れを提出前に潰せるようになります
✦静的走査が拾いすぎる項目と、そもそも見えていない収集元の境界を把握して、機械の出力をそのまま申告に書き写す事故を防げるようになります
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⬡ 開発ツール2026-09-21
exit code 0 で止まるビルド — ログを黙らせていた設定と、空ファイルを通した存在チェック
eas build --local が exit code 0 but produced no further output で止まる件と、0 バイトのスタブが埋め込まれず dyld で落ちる件。どちらも原因は出力を減らす設定でした。自分のスクリプトを棚卸しする手順まで書き残します。
⬡ 開発ツール2026-09-07
.easignore を置くと .gitignore は読まれなくなります — EAS Build に上がるファイルを手元で数える
EAS Build がアップロードする範囲は .gitignore で決まり、.easignore を置いた時点で入れ替わります。同梱ファイルを送信前に数える手順と、親ディレクトリを除外すると感嘆符では戻せないという実測結果をまとめました。
⬡ 開発ツール2026-09-05
Widget Extension でも BGTaskScheduler.submit は成功します。走らないのは register が親アプリだけのものだからです
Widget Extension から BGTaskScheduler に依頼を出すとビルドも submit も通るのに、翌朝ウィジェットは変わりません。register がホストアプリ専用である事実から、更新の主語を親アプリへ戻す設計まで、壁紙アプリの運用で詰めた手順を残します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます