ANTIGRAVITY LABEN
記事一覧/アプリ開発
アプリ開発/2026-08-29上級

ビルドが通ったことは、pbxproj の編集が正しかった証明になりません

エージェントに project.pbxproj を編集させると、ビルドは緑のままリソースやスクリプトだけが静かに外れます。構造で確かめる4つの検査と、1,200ファイル規模でも0.1秒で終わる監査スクリプトを、iOS アプリの実運用の側からまとめます。

antigravity448xcode5ios36エージェント設計19ビルド

プレミアム記事

Android の壁紙アプリで、ビルドもリリースも成功しているのに、一部の端末でだけ背景が真っ白になる、という報告を受けたことがあります。コードは何も壊れていませんでした。原因は Play Store の密度分割で、特定の密度バケットから画像が落ちていたことでした。

ビルドの成否は、リソースが端末に届くことを何も保証していなかったわけです。

同じ性質の穴が、iOS 側では project.pbxproj にあります。しかもこちらは、エージェントに編集させたときに広がりやすい。私自身、個人開発で 6 本のアプリを運用しながら Antigravity のエージェントを日常的に走らせていますが、pbxproj だけは扱いを変えています。理由と、その代わりに置いている検査の話をします。

緑のビルドが保証しているのは、コンパイルが通ったことだけです

xcodebuild が成功で返るのは、ソースがコンパイルでき、リンクが解決し、成果物が生成できたときです。ここに含まれていないものが、pbxproj の編集事故のほぼ全部を占めます。

編集内容ビルドの結果実際に起きること
画像・JSON がターゲットのリソースから外れる成功実行時に nil が返り、その画面だけ表示されない
Run Script フェーズの出力パス宣言が消える成功増分ビルドで毎回走る、または CI でだけ飛ばされる
SPM のパッケージを追加したがターゲットにリンクしていない成功(未使用なら)後日 import した瞬間に別の場所で失敗する
ローカライズファイルがどのターゲットにも属していない成功その言語だけキー名が画面に出る

いずれも「参照は存在しているが、ビルドフェーズまで到達していない」という同じ形をしています。コンパイラはこれを見ません。見る必要がないからです。

設定が黙って無視されるという意味では、無視された設定キーが CI を通り抜ける経路と、その塞ぎ方で扱った現象と根が同じです。無効な指定に対して何も言わない層があると、そこが検証の空白になります。

pbxproj の差分がレビューをすり抜ける理由

pbxproj のビルドフェーズは、24 桁の 16 進 UUID の羅列です。手元で、1,200 ファイル規模のプロジェクトから画像 1 枚分の行だけを落として差分を取ってみました。

@@ -2508,7 +2508,6 @@
 				3B000000000000000000003F /* img63.png in Resources */,
 				3B0000000000000000000040 /* img64.png in Resources */,
 				3B0000000000000000000041 /* img65.png in Resources */,
-				3B0000000000000000000042 /* img66.png in Resources */,
 				3B0000000000000000000043 /* img67.png in Resources */,
 				3B0000000000000000000044 /* img68.png in Resources */,

変更行数は 1 です。前後の行と見た目がまったく同じで、削られたことに意味があるのかどうかが、この差分からは判断できません。エージェントが 30 ファイルを一度に触った変更の中に、この 1 行が紛れていたとして、私はレビューで気づける自信がありません。

Git の差分は行の増減を見せてくれますが、pbxproj で重要なのは行ではなく参照の到達先です。人間が読むべき粒度と、ファイルが持っている構造の粒度がずれています。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
エージェントに任せてよい pbxproj の編集と、Xcode に生成させるべき編集を、復旧のしやすさから自分で線引きできるようになる
リリース後に「一部の端末でだけ画像が出ない」と報告を受ける前に、コミットの段階で取りこぼしを止められるようになる
1,200 ファイル規模の pbxproj でも 0.1 秒で終わる構造監査を手元に持ち帰り、緑のビルドに頼らない検証手順を組めるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

アプリ開発2026-06-27
Dropbox 同期のフォルダで Antigravity エージェントに Xcode を任せると、ビルドが時々壊れる理由
クラウド同期フォルダに置いた Xcode プロジェクトを Antigravity のエージェントに触らせると、ビルドが日替わりで成功したり失敗したりします。同期デーモンとビルドの競合という原因と、xattr による除外・衝突コピー検査までを実装視点でまとめます。
アプリ開発2026-05-04
Swift Testing × Antigravity — XCTest の限界を超えて AI 駆動テスト設計へ
Swift Testing フレームワークと Antigravity の組み合わせで iOS テスト品質を根本から変える実践ガイド。@Test・#expect マクロの活用から XCTest 移行戦略、Antigravity によるテスト自動生成まで体系的に解説します。
アプリ開発2026-04-16
SwiftUI 開発で Antigravity が本当に役立つ場面と、そうでない場面
SwiftUI アプリ開発に Antigravity を取り入れる際の実践パターンを解説します。UI プロトタイピング・SwiftData モデル設計・テスト生成まで、個人開発者が日常的に使えるテクニックを紹介します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →