Widget Extension でも BGTaskScheduler.submit は成功します。走らないのは register が親アプリだけのものだからです
Widget Extension から BGTaskScheduler に依頼を出すとビルドも submit も通るのに、翌朝ウィジェットは変わりません。register がホストアプリ専用である事実から、更新の主語を親アプリへ戻す設計まで、壁紙アプリの運用で詰めた手順を残します。
EAS の secret は「アプリに入れない」設定ではありません — 接頭辞と可視性を別々に決める
EXPO_PUBLIC_ の接頭辞は成果物に入るかを決め、EAS の可視性は誰が読めるかを決めます。二つを重ねたときに OTA 更新でだけ値が消える筋道と、出荷前に自分の手で確かめる手順をまとめました。
リンクを押してもアプリが開かないとき、疑うのは assetlinks.json の置き場所より先に署名鍵です
Android App Links が検証されずブラウザに吸われる原因の多くは指紋の食い違いです。keytool の実出力と、手元で照合できる小さな検査スクリプトの実行結果を添えて整理しました。
同じコードベースから出す2本目のアプリに、固有価値を宣言する1枚を置いています
Google Play が「低価値アプリ」の線引きを明確にしました。同じコードベースから兄弟アプリを出している側が、焼き直しに見えないための固有価値をどこに置き、提出前にどう数えているかを、実際に回している手順とスクリプトごと書き残します。
expo のパッチを1つ上げると、expo install の推奨が何個動くのかを数えました
expo install が推奨するバージョンは expo 本体のパッチ版に紐づいています。npm レジストリの実データで台帳の差分を数え、npm install が外す幅と、生成直後のプロジェクトに置く検査を示します。
無料枠で始める EAS Observe と、それでも Crashlytics を残す理由
EAS Observe が8月20日に正式版になりました。監視ツールを1本に減らせるかと思って調べたところ、ネイティブクラッシュは対象外でした。無料枠の上限と、最初の設定で落とし穴になる箇所をまとめています。
expo-doctor は API レベル 36 を見ていません。22 項目の中身を読んで分かったこと
expo-doctor 1.20.4 の配布物を開き、登録されている22チェックを一覧にしました。ストア提出を見る項目は1つだけで、基準は API レベル34のままでした。
30日で9回出た Expo のパッチのうち、自分のアプリに入っているのはどれかを確かめる
package.json にチルダ付きで書いてあれば最新のパッチが入る、と思い込んでいました。実際に入る版を決めているのは package-lock.json のほうです。npm の解決結果を実行して確かめた記録です。
Sunset.png と sunset.png は、手元の Mac では同じファイル、ビルドサーバーでは別のファイルです
手元では表示される画像が、クラウドのビルドだけで見つからない。原因はファイル名の大文字小文字でした。再現手順と、コミット前に検出する短いスクリプトを実測つきで残します。
Rork と Claude Code の分担は、ビルド環境を誰が持つかで切っています
Rork とターミナル側のコーディングエージェントのどちらで作るかを、生成物の印象ではなく自分のリポジトリの実データで決めるための手順です。保守の着地層を数えるスクリプトと、再生成でネイティブ設定が消える事故を先に見つける検査を掲載しています。
targetSdk を 36 に上げたら 16 KB の警告が出ました。この2つは別の期限です
対象 API レベル36 の8月31日と、16 KB メモリページサイズの2027年2月1日は別の条件です。NDK を入れずに手元の AAB を検査する方法と、LOAD のずれと zip 境界のずれで直し方が変わることを、実際の出力とあわせて整理しました。
変えられる名前と、変えられない名前 — Rork で最初の1本を公開する前の30分
アプリには名前が3種類あり、公開後に変えられるのは表示名だけです。Rork が既定で入れる ID をそのまま提出する前に、依存ゼロのスクリプトで検査する手順をまとめました。