すべての記事
無料枠で始める EAS Observe と、それでも Crashlytics を残す理由
EAS Observe が8月20日に正式版になりました。監視ツールを1本に減らせるかと思って調べたところ、ネイティブクラッシュは対象外でした。無料枠の上限と、最初の設定で落とし穴になる箇所をまとめています。
expo-paste-input で画像を貼り付けられる入力欄を作り、消える file:// を documents へ逃がす
チャット入力に画像やGIFを貼り付けられるようにする expo-paste-input の実装手順です。onPaste が返す file:// は一時ファイルで、送信までの間に消えることがあります。保存先を移す実装と、実機で確かめる順番をまとめました。
画面ロックから3分後、expo-audio の環境音は静かに止まっていました
expo-audio の音が画面ロックで止まる原因を、ビルド設定・オーディオセッション・ロック画面連携の三層に分けて切り分けます。Android で約3分後に止まるのは、ドキュメントに書かれた止まり方です。
Google Play の期限後、更新を止めた Android アプリを上げるか据え置くかの線引き
更新を止めた Android アプリには、提出の基準とは別の基準が効いています。手元の成果物から実効 targetSdk を並べ、上げる・据え置く・畳むを判断するまでの手順をまとめました。
expo-doctor は API レベル 36 を見ていません。22 項目の中身を読んで分かったこと
expo-doctor 1.20.4 の配布物を開き、登録されている22チェックを一覧にしました。ストア提出を見る項目は1つだけで、基準は API レベル34のままでした。
targetSdk を 36 にした後、依存ライブラリのどこを見るか
依存ライブラリの AndroidManifest を実際に6本開いて数えました。targetSdkVersion は1本も書かれておらず、代わりに12個の権限が入ってきます。提出前に何を見るべきかの整理です。
30日で9回出た Expo のパッチのうち、自分のアプリに入っているのはどれかを確かめる
package.json にチルダ付きで書いてあれば最新のパッチが入る、と思い込んでいました。実際に入る版を決めているのは package-lock.json のほうです。npm の解決結果を実行して確かめた記録です。
更新が止まってから足した Remote Config のキーは、配信済みの版には届きません
更新経路が閉じる前に、遠隔で動かせる範囲を数え直した記録です。コンソールに足したキーは、それを読む版が配られていなければ効きません。凍結前の最後のビルドに積むスイッチの選び方と、既定値の共有で起きた汚染の実測を残します。
Sunset.png と sunset.png は、手元の Mac では同じファイル、ビルドサーバーでは別のファイルです
手元では表示される画像が、クラウドのビルドだけで見つからない。原因はファイル名の大文字小文字でした。再現手順と、コミット前に検出する短いスクリプトを実測つきで残します。
定期ジョブの取りこぼしに二週間気づけなかったのは、成功ログだけを見ていたからです
1日2回動くはずのアセット処理ジョブが半分しか発火せず、それでもログは全て成功でした。実行されなかった回を検出する台帳と、滞留の傾きを見る二つ目の番兵を、実行結果つきで組み立てます。
メモリが膨らむ原因を自分のコードに探す前に、worklet の数を数えてください
Hermes V1 は worklet 1つにつき 512KB のデバッグ用メタデータを積みます。Reanimated を読み込むだけでメモリが増える仕組みと、自分のコードを疑う前に数えるべき3つの数字、そして4通りの直し方の選び分けをまとめました。
タブレットで縦固定が外れる Android 16 の変更と、Expo 側に用意されていない逃げ道
targetSdkVersion 36 では、sw600dp 以上の画面で screenOrientation が無視されます。app.json の orientation では戻せないこと、オプトアウトのプロパティが何を戻して何を戻さないかを、手元で確かめた出力とあわせて整理しました。