課金済みなのに広告が消えない — StoreKit 2 の Transaction.updates を起動直後に取りこぼす競合を Antigravity と塞いだ記録
起動直後に届く StoreKit 2 のトランザクションを取りこぼす競合を、View 寿命ではなくアプリ寿命にリスナーを固定して塞いだ実装記録。currentEntitlements での照合、finish() の徹底、StoreKitTest での回帰テスト化まで。
App Intents で AppEnum が破綻する場面 — 毎日増える壁紙カタログを Siri に選ばせる EntityQuery 設計
App Intents のパラメータを AppEnum で書くと、選択肢が固定のうちは動きますが、毎日増えるコンテンツには耐えません。動的カタログを Siri とショートカットに正しく選ばせる AppEntity + EntityQuery 設計と、識別子の安定化・Spotlight 連携の落とし穴をまとめました。
ユニバーサルリンクが黙って壊れる — 関連付けファイルのドリフトをエージェントの検証ゲートで塞ぐ
ユニバーサルリンク/App Linksは、関連付けファイルやエンタイトルメントがズレると例外を出さずにブラウザへ落ちます。ルート定義を単一の真実源にまとめ、エージェントに週次と公開前の検証を任せる設計をまとめました。
エージェントが書いた App Intent を Siri に喋らせる前に — 副作用で分類して確認ゲートを挟む設計
Antigravity が生成した App Intent を Siri やアシスタントに無確認で走らせると、破壊的な操作が音声一つで発火します。副作用で3分類し、確認ゲートを機械的に挟む実装と、欠落を push 前に弾く静的チェックをまとめました。
ダウンロードサイズの逆行に提出直前で気づかないために — AAB/IPA のサイズ予算をエージェントの週次ゲートで守る
メディエーションSDKやアセットの追加で静かに膨らむダウンロードサイズに、bundletool と App Thinning レポートを使ったサイズ台帳・予算ゲート・増分の内訳特定で歯止めをかける設計をまとめます。
メディエーションを増やしたら iOS の計測が静かに痩せた — SKAdNetwork ID のズレを4アプリで揃える
メディエーションに新しいパートナーを足したのに iOS の収益が伸びず、SKAdNetwork ID の登録漏れが原因だった実体験。Info.plist の SKAdNetworkItems を4アプリで突き合わせ、Antigravity エージェントに照合させて人間が採否を決める運用を紹介します。
ローカルでは通る iOS ビルドが CI の TestFlight アップロードで署名拒否されるとき — match の証明書が静かにズレる原因と運用メモ
fastlane match を CI に載せると、ビルドは成功するのに TestFlight アップロードだけが署名エラーで落ちることがあります。証明書とプロファイルのズレを再現可能に診断し、readonly 運用と事前検証ゲートで止める手順を実機の挙動に沿って整理しました。
Dropbox 同期のフォルダで Antigravity エージェントに Xcode を任せると、ビルドが時々壊れる理由
クラウド同期フォルダに置いた Xcode プロジェクトを Antigravity のエージェントに触らせると、ビルドが日替わりで成功したり失敗したりします。同期デーモンとビルドの競合という原因と、xattr による除外・衝突コピー検査までを実装視点でまとめます。
Xcode Cloud の無料25時間が月末に静かに尽きるとき — コンピュート時間を計測して守る運用メモ
Xcode Cloud の無料コンピュート枠が月末に枯渇し、ビルドがキューで待たされる前に。消費の内訳を App Store Connect API で実測し、不要ビルドの早期停止・テスト分割でCI時間を運用で守る実践メモです。
毎日変わるはずの壁紙ウィジェットが止まった — WidgetKit のリロード予算を実測して設計を組み直した記録
毎日壁紙が切り替わるはずのウィジェットが数日で更新を止めました。WidgetKit のタイムラインとリロード予算、拡張のメモリ上限を実測し、1日分のエントリをまとめて積む設計へ組み直した過程をまとめます。
StoreKit 2 で「課金したのに使えない」と言われたとき — サブスク権利状態のズレを直す運用メモ
StoreKit 2 のサブスクリプションは実装より運用でつまずきます。currentEntitlements と subscription.status のズレ、Transaction.updates の取りこぼし、未 finish トランザクション、復元と返金の扱いを、本番で効いた整流ロジックとともに記録します。
壁紙ビューアのスライドショーとページ送りスクラバーを iOS から Android へ逆移植する — SnapHelper との双方向同期でつまずいた点
iOS 版の全画面壁紙ビューアにあったスライドショーと下部スクラバーを Android へ逆移植した実装記録。RecyclerView と SnapHelper で現在ページを確定させ、スクラバーと双方向同期し、自動送りとユーザー操作の競合を状態機械で解いた手順を Kotlin の動くコードで共有します。