アプリを手放す日の実務 — App Store の「Appを転送」で引き継がれるもの・作り直すもの
App Store Connect の「Appを転送」でアプリを売却・移管する際の条件と実務を整理します。評価やサブスク購読者など引き継がれるもの、TestFlight や APNs キーなど作り直すもの、ユーザーの再ログインが発生する箇所まで公式情報に基づいてまとめました。
役目を終えたアプリをどう畳むか — 更新停止から完全終了までを先に設計する
収益がサーバ費を下回ったアプリを、どの順番で畳むか。更新停止・販売取り下げ・完全終了の3段階の判断表、サーバ由来の終了告知フラグとデータ持ち出し口のTypeScript実装、自動更新購読の後始末までを個人開発の実感から整理しました。
許可を聞かずに通知を届ける — Rork アプリの provisional 認可と、Expo の定番コードが握りつぶすもの
iOS には許可ダイアログを出さずに通知を配り始める provisional 認可があります。ところが Expo 公式が載せている定番の登録コードをそのまま使うと、provisional で通った端末が「拒否」として扱われ、避けたかったはずのダイアログが出ます。granted が false になる仕組みから、5値で許可状態を扱うフック、静かな配信を前提にした通知設計、昇格を求める判断、計測の分離までを実装込みで整理しました。
3分の動画だけが失敗する — Rork の動画解析をワーカー経由から端末直送に引き直す
Gemini Files API に動画を渡す経路を、Cloudflare Workers 中継から端末直送へ引き直した記録です。128MB のメモリ上限に当たる仕組み、resumable upload の発行だけをサーバーに残す実装、解像度とフレームレートで請求を決める判断までをまとめます。
半年ぶりのアップデートで署名が切れていた — Rork アプリの証明書とプロファイルを機械的に見張る
Apple の署名アセットは静かに期限を迎えます。App Store Connect API で証明書とプロファイルの残日数を機械的に棚卸しし、Cloudflare Workers の定期実行で先回りする設計をまとめました。
Rork の App Store 提出が「輸出コンプライアンス」で毎回止まるのを設定1行で終わらせる
Rork と Rork Max のビルドを App Store Connect に上げるたびに出る Missing Compliance 警告。免除の判断基準と、app.json / Info.plist で恒久的に消す設定、消えない場合の原因を整理しました。
壁紙の段組みギャラリーにネイティブ広告を差し込む — 広告セルの寿命をプールで設計する
段組みギャラリーにネイティブ広告を1枚入れたところ、20分のスクロールでメモリが伸び続けました。リスト再利用と広告の寿命が噛み合わない理由から、プール方式の実装、差し込み間隔の決め方まで実測とともに残します。
開発中は黄色い警告だけだったのに、復帰したら落ちた — ルートパラメータに関数を入れていた話
Rork が生成した画面遷移コードが、ルートパラメータに関数と Date を載せていました。開発中は警告で済むのに、アプリを復帰させると params.onFavorite is not a function で落ちます。原因と、ID だけを渡す形への直し方をまとめました。
「、」が行頭に落ちた — Rork が組んだ名言カードと日本語の禁則処理
React Native の Text は日本語の行頭禁則を保証しません。実測した違反率、WORD JOINER による事前結合の実装、onTextLayout での自動監査、Rork Max(SwiftUI)との挙動差までまとめました。
転送量が半分になったのに、体感は速くならなかった — 壁紙アプリの画像フォーマットとデコード費用
AVIF に寄せれば配信コストは下がります。けれど端末のデコード時間まで測ると話が変わりました。Accept ネゴシエーションとマニフェスト方式の分岐、端末別フォールバック、段階移行の順序を実測値とともに整理しました。
Rorkの癒しアプリにスリープタイマーを付けたら、フェードアウトが実際の音とズレた話
Rorkが生成するスリープタイマーは、壁時計のsetIntervalで音量を下げます。数値上は30分でも、実際の音はもっと早く消えたり不自然に途切れたりします。フェードを再生位置で駆動し直す実装と、対数カーブ・停止処理・画面ロック時の限界までを実運用の視点でまとめました。
壁紙を長押しして、プレビューと保存メニューを出す — Rork の Expo アプリで context menu を組む
壁紙ギャラリーのカードを長押ししても何も起きない。iOS利用者はプレビュー付きのメニューを期待します。Pressableだけでは届かない理由から、zeegoでのネイティブcontext menu実装、スクロールとの競合解消、保存・共有アクション、Android向けの自前フォールバックまで、動くコードでまとめます。