RORK LABEN
PLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっていますPLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっています
記事一覧/開発ツール
開発ツール/2026-05-30上級

Rork で書き出したアプリの native 設定を Expo config plugin で一元管理する

prebuild のたびに消える AdMob ID や ATT 文言を手で書き直していませんか。Rork で書き出したアプリの native 設定を、自作の Expo config plugin で再現可能にし、6本の壁紙アプリで共有した実装記録です。

Rork548Expo194config plugin6AdMob70prebuild2

プレミアム記事

Rork で書き出したアプリに AdMob を組み込んだ翌週、別のライブラリを足そうとして npx expo prebuild を走らせたら、前の週に手で書き込んだ Info.plistGADApplicationIdentifier がきれいに消えていました。ios/ フォルダごと作り直されるのですから、当然です。けれど当時の私はそれを知らず、また手で書き戻して、また消して、を数回繰り返してしまいました。

2014年から個人でアプリを作ってきて、累計5,000万ダウンロードに育った壁紙アプリ群を今は6本並行で運用しています。同じ AdMob の初期設定を6回手で書くのは、間違いの温床でしかありません。1本だけ App ID を貼り間違えて、リリース後に広告が一切表示されなかったこともありました。この「手作業が native 層に残り続ける」問題を根本から無くしたのが、自作の Expo config plugin でした。

なぜ prebuild のたびに native 設定が消えるのか

Rork や Expo の開発体験は、ios/android/ を意識しなくて済むところに価値があります。これらのネイティブフォルダは「成果物」であって「ソース」ではありません。app.config.tspackage.json という宣言から、npx expo prebuild が毎回ネイティブプロジェクトを生成し直します。

ここを取り違えると延々とハマります。生成物である ios/MyApp/Info.plist を手で編集しても、それは砂浜に書いた文字のようなもので、次の prebuild で波にさらわれます。.gitignoreios/android/ を入れる「managed 寄り」の運用をしているなら、なおさらです。

正しい考え方は「ネイティブ設定もまた宣言から生成されるべき」というものです。その宣言と生成のあいだを橋渡しするのが config plugin です。両祖父が宮大工で、図面の通りに寸分違わず木を刻む姿を見て育ったせいか、私は「同じものは同じ手順から再現できる」状態をとても大切にします。config plugin は、まさにネイティブ設定にその再現性を与えてくれます。

config plugin の仕組み — prebuild の中で何が起きているか

config plugin は、@expo/config-plugins が用意した一連の「mod」を使って、prebuild の途中でネイティブファイルを書き換える関数です。代表的な mod は次の通りです。

  • withInfoPlist — iOS の Info.plist を JS オブジェクトとして受け取り、書き換える
  • withEntitlementsPlist — iOS の entitlements(Associated Domains 等)を扱う
  • withAndroidManifest — Android の AndroidManifest.xml をパース済みオブジェクトで扱う
  • withAppBuildGradleapp/build.gradle の文字列を直接編集する
  • withDangerousMod — 任意のファイルに直接アクセスする最終手段

prebuild は、これらの mod を順番に適用してからネイティブプロジェクトを書き出します。つまり手で Info.plist を編集する代わりに、「prebuild のたびに必ずこの値を入れてくれ」という指示を JS で書いておくわけです。

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

この記事の続きを読む

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

この記事で得られること
AdMob App ID・ATT 文言・SKAdNetwork を prebuild で自動注入する config plugin の完全な実装コード
6本のアプリで native 設定を共有モジュール化し、1か所の修正で全アプリへ反映させる構成
withDangerousMod の冪等性・mod 実行順・EAS Update では走らない、など本番で踏んだ落とし穴と対処
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-07-28
prebuild --clean で消える手入れを、上げる前に数える — Expo SDK 57 移行の棚卸し
Expo SDK 57 への移行前に、ios/ へ加えた手入れが prebuild の再生成でいくつ失われるかを数える手順をまとめました。素の差分649行のうち意味を持つのは3行。ノイズを正規化して実質的な変更だけを抽出するスクリプトと、config plugin への移し替えを実測つきで共有します。
開発ツール2026-06-16
課金復元より先に広告を初期化したら、有料ユーザに一瞬広告が出た — Rork(Expo)アプリの起動順序設計
同意取得・ATT・広告初期化・課金復元・リモート設定を、起動の数百ミリ秒のあいだにどの順番で走らせるか。順序を1つ間違えるだけで、有料ユーザに広告が一瞬出たり、EEA で同意なしの計測が走ったりします。Rork で生成した Expo アプリの起動処理を1つのオーケストレータに畳み、競合を設計で潰す手順を実装メモとしてまとめます。
開発ツール2026-06-15
「広告を消す理由」が3つに増えた日 — Rork アプリの広告非表示判定を1か所に畳む設計
課金していないはずの画面だけ広告が出る、あるいは課金済みの読者に広告が出てしまう。原因の多くは「広告を消す条件」がコードのあちこちに散らばっていることでした。サブスク・買い切り・リワード時限解除の3つを1つの状態に畳み、すべての広告表示を同じフックに通す設計を、個人開発で6本のアプリを運用してきた実装メモとしてまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →