ios - 能否安全删除 XCode 的 project.pbxproj 文件中的重复文件引用?

标签 ios xcode pbxproj

我公司的 iPhone/ipad 产品已经迁移了好几代 iOS 和 Xcode(现在是 5.1 和 4.3),并且有很多目标。也许由于这些因素,PBXBuildFile 部分中的每个源文件都有许多相同的行,例如:

14EE4CD315A5E69000DCA763 /* movie@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* movie@2x.png */; };
14EE4CD415A5E69000DCA763 /* movie@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* movie@2x.png */; };
14EE4CD515A5E69000DCA763 /* movie@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* movie@2x.png */; };
14EE4CD615A5E69000DCA763 /* movie@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* movie@2x.png */; };
14EE4CD715A5E69000DCA763 /* movie@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14EE4CB615A5E68500DCA763 /* movie@2x.png */; };

请注意,给定源文件的行都是绝对相同的(我错了,它们并不完全...),并且重复行的数量从无到六行或更多不等。由于这种重复,project.pbxproj 的 PBXBuildFile 部分几乎有 5000 行长,尽管我们实际上只有大约 1200 个唯一文件。

在我拼凑一个脚本来去除所有这些重复的行,并要求测试所有构建和目标的完全回归之前,我想确保 Xcode 不需要这些重复的行,因为一些神秘的原因。

我相当确定这不是由错误的版本控制引起的;重复的行只出现在 PBXBuildFile 部分,虽然我不喜欢 P4,但我们在合并 project.pbxproj 文件更改时遇到了一些麻烦,尽管有将近 20,000 行,但它有点笨拙。我认为 Xcode 的某些版本可能会在添加新目标时做到这一点,但我没有发现其他人提示这个问题。

次要问题: 这怎么发生的?还有其他人发现这种重复行吗?

最佳答案

如您所见,文件 ref 是重复的,但每个目标中的文件 ID 略有不同 14EE4CD*3*15A5E69000DCA763,第 8 位数字相当不同。

关于ios - 能否安全删除 XCode 的 project.pbxproj 文件中的重复文件引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11530977/

相关文章:

xcode - Swift XCTest 加载文件

ios - 我们可以为不同的 View 更新 xib 文件中的标签吗?

ios - NSFetchedResultsController 的范围

ios - 无法设置自定义对象的值

ios - iOS 企业应用程序中的动态库注入(inject)失败

ios - @1x 大小的 iOS 中的图像资源

swift - 在 Travis 的类型 'fromPost' 中找不到枚举案例 'Destiny?',但该类型在 File 中声明

xcode - 当 Xcode 在启动时打开最后一个项目时,它以红色列出,没有文件

ios - Swift 中 Bool var 和 func 命名约定的困惑