私の会社の iPhone/iPad 製品は、数世代の iOS と Xcode (現在は 5.1 と 4.3) に移行しており、多くのターゲットがあります。おそらくこれらの要因が原因で、PBXBuildFile セクションの各ソース ファイルに多くの同一の行があります。
14EE4CD315A5E69000DCA763 /* リソース内の movie@2x.png */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* movie@2x.png */; }; 14EE4CD415A5E69000DCA763 /* リソース内の movie@2x.png */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* movie@2x.png */; }; 14EE4CD515A5E69000DCA763 /* リソース内の movie@2x.png */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* movie@2x.png */; }; 14EE4CD615A5E69000DCA763 /* リソース内の movie@2x.png */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* movie@2x.png */; }; 14EE4CD715A5E69000DCA763 /* リソース内の movie@2x.png */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* movie@2x.png */; };
特定のソース ファイルの行はすべて完全に同一であり (私が間違っていたので、まったく同じではありません...)、重複する行の数は、0 行から 6 行以上までさまざまです。この重複のため、project.pbxproj の PBXBuildFile セクションは約 5000 行の長さになりますが、実際には約 1200 の一意のファイルしかありません。
これらの重複行をすべて削除するスクリプトを作成し、すべてのビルドとターゲットで完全な回帰をテストする前に、Xcode が何らかの難解な理由でこれらの重複行を必要としないことを確認したいと思います。
これは、バージョン管理がうまくいかなかったことが原因ではないことは確かです。重複する行は PBXBuildFile セクションにのみ表示されます。私は P4 が好きではありませんが、project.pbxproj ファイルの変更をマージするのにほとんど問題はありませんが、20,000 行近くあり、少し扱いにくいです。おそらく新しいターゲットを追加しているときに、Xcodeのいくつかのリリースでこれが行われたと思いますが、この問題について不満を言う人は他にいません。
二次的な質問: どうしてこうなったの? 他の誰かがこの種の重複行を見つけましたか?