我有一个包含2个目标的Xcode 4项目,一个用于iPhone,另一个用于iPad。如果我点击iPad目标并尝试转到Build Settings Xcode 4崩溃:
遇到多个断言。第一个断言是:/SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-269/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/FileTypes/../PBXFileType.m:594中的ASSERTION FAILURE 详细信息:filename应该是非空字符串,但它是nil
显然pbxproj文件在某处有一个错误的引用 - 可能是由于我被git强制执行的许多手动合并引起的。有没有办法清理pbxproj文件,以便它再次正常工作或告诉哪一行导致问题?我真的真的不想从头开始重新创建项目。
答案 0 :(得分:22)
我试过gorbster的方法没有成功(虽然它在过去解决了类似的问题)。
我进入了我的project.pbxproj
文件(在项目的.xcodeproj
包内),发现两行看起来有点可疑,两种形式都有:
53A45F8F138FE6F40077017F /* (null) in Resources */ = {isa = PBXBuildFile; };
我删除了这些行,并且vo:我可以再次访问此目标的构建设置。
不知道他们是如何进入那里的。我想猜测与SVN下的错误合并有什么关系。
答案 1 :(得分:15)
在拉开一位同事的合并之后,今天早上进入了同样的问题。
我能够通过以下方式解决这个问题:
我丢失了一些次要的用户偏好(文件和标签历史记录等),但现在可以单击所有(9)我的目标而不会出现问题。事实证明我的同事是在早期版本的Xcode上,但我不确定这是否会导致IDE崩溃。
答案 2 :(得分:9)
Ben Mosher找到了解决方案。 是的,这是由于SVN合并问题。
当我们与SVN合作时,错误经常发生,所以我写了一个bash脚本:
#!/bin/bash
sed "/(null) in/d" project.pbxproj > tmp_project.pbxproj
mv tmp_project.pbxproj project.pbxproj
答案 3 :(得分:6)
关闭XCode时,请尝试以下步骤。
在Finder中转到 {YOUR_PROJECT} .xcodeproj 文件。
右键点击 {YOUR_PROJECT} .xcodeproj 文件。
选择显示包装内容 ...这将在另一个Finder屏幕中打开内容。
打开文件 project.pbxproj 并搜索所有包含字符串“(null)”的行
删除(null)中的所有行...不用担心....自信地删除。
保存文件。
现在使用XCode打开您的项目并尝试打开Build Settings选项卡...希望您的问题能够得到解决。
谢谢, 穆罕默德。
答案 4 :(得分:0)
右键单击.xcodeproj文件和“显示包内容”。
然后用TextEdit打开project.pbxproj文件并复制。
使用相同的名称和扩展名保存重复文件。 (project.pbxproj)
并替换旧文件。
答案 5 :(得分:0)
如果您还尝试了删除(null)引用行并删除特定于用户的.xcuserdatad 文件夹,并且这些文件不起作用,则这是一个潜在的解决方案。仅供参考......这是在Xcode 7.3.1上体验的。
以下是我面临的情景:
我遇到了这个问题,这个问题是由于" twin" git repo中的分支...(即一个分支BRANCH_A是一个开发分支,其中一些功能不会发布,另一个分支具有相同的提交,除了新功能,称之为BRANCH_B)。
开发工作流程如下:从BRANCH_B开始,创建提交分支CHANGE_C,进行更改和提交,然后签出BRANCH_A,创建提交分支,然后从CHANGE_C中挑选更改。 BRANCH_A正在以这种方式跟踪BRANCH_B及其附加功能文件。
在我的情况下,(出于某种原因,在BRANCH_B跟踪的远程工作人员的同事变更问题上,BRANCH_B的项目文件被破坏了。
在这种情况下,解决方案是保存BRANCH_A项目文件的副本(这是好的并编译),然后签出BRANCH_B,并用副本替换其项目文件。
最初,它不会编译,直到从目标的构建阶段>中删除对特征文件(来自BRANCH_A)的所有引用。编译来源。
效果很好。