我公司的 iPhone/ipad 产品已经迁移了几代 iOS 和 Xcode(现在是 5.1 和 4.3),并且有很多目标。也许是因为这些因素,PBXBuildFile 部分中的每个源文件都有许多相同的行,例如:
14EE4CD315A5E69000DCA763 /* 资源中的电影@2x.png */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* 电影@2x.png */; }; 14EE4CD415A5E69000DCA763 /* 资源中的电影@2x.png */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* 电影@2x.png */; }; 14EE4CD515A5E69000DCA763 /* 资源中的电影@2x.png */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* 电影@2x.png */; }; 14EE4CD615A5E69000DCA763 /* 资源中的电影@2x.png */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* 电影@2x.png */; }; 14EE4CD715A5E69000DCA763 /* 资源中的电影@2x.png */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* 电影@2x.png */; };
请注意,给定源文件的行都是绝对相同的(我错了,它们并不完全...),重复行的数量从无到六打或更多不等。由于这种重复,project.pbxproj 的 PBXBuildFile 部分几乎有 5000 行长,尽管我们实际上只有大约 1200 个唯一文件。
在我拼凑出一个脚本来去除所有这些重复的行,并要求对所有构建和目标进行完全回归测试之前,我想确保 Xcode 出于某种神秘的原因不需要这些重复的行。
我相当肯定这不是由版本控制错误引起的。重复的行只出现在 PBXBuildFile 部分,虽然我不喜欢 P4,但我们在合并 project.pbxproj 文件更改时遇到了一点麻烦,虽然有近 20,000 行,但有点笨拙。我认为 Xcode 的某些版本做到了这一点,也许是在添加新目标时,但我没有发现其他人抱怨这个问题。
次要问题:这是怎么发生的?有没有其他人发现这种重复的行?