無料枠で始める 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 をそのまま提出する前に、依存ゼロのスクリプトで検査する手順をまとめました。
一括置換は全ファイル成功しました。壊れたのは、消さなかった行のほうです
生成コードに一括置換をかけると、一致した行ではなく隣の行が壊れます。運用中のプロジェクトで実際に起きた破損と、置換の不変条件を検査する20行のガードスクリプトをまとめました。
Apple の自動解析は、purpose string が書いてあるかではなく何に使うかを読んでいます
Rork や Expo で生成した iOS アプリを提出すると、Guideline 5.1.1 で「placeholder or otherwise insufficient purpose strings」と返されることがあります。キー名が示されないこの指摘の読み方と、app.json から文言を書き直すまでの手順をまとめました。
生成ループが緑を返した後に、私が手元で回している4つの受け入れ検査
ビルドが成功しても出荷できない状態は実在します。AI がビルドを反復する構成で見落とされやすい4点を、成果物そのものを走査する検査スクリプトとして手元に置く方法をまとめました。
ベータ SDK でビルドしたアプリは、TestFlight には配れても審査には出せません
ベータ版の Xcode でビルドしたアプリは TestFlight には配布できますが、App Store の審査には提出できません。手元のビルドがどの SDK で作られたかを確認する方法と、eas.json で提出用ビルドを守る設定をまとめました。
審査がいつ明けるか読めないなら、公開日は審査の外側で決めます
審査の所要時間は開発者側で短縮できませんが、公開の瞬間は自分で決められます。App Store Connect の3つのリリース設定と Google Play の公開の管理、そして eas submit との噛み合わせを整理します。