Xcode 4项目:用于清理pbxproj文件的实用程序?

mem*_*ons 24 xcode xcode4

我有一个带有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:文件名应该是非空字符串,但它是零

显然pbxproj文件在某处有一个错误的引用 - 可能是由于我被git强制执行的许多手动合并引起的.有没有办法清理pbxproj文件,以便它再次正常工作或告诉哪一行导致问题?我真的真的不喜欢必须从头创建项目.

Ben*_*her 23

我试过gorbster的方法没有成功(虽然它在过去解决了类似的问题).

我进入了我的project.pbxproj文件(在.xcodeproj项目的包内),发现两行看起来有点可疑,两种形式:

53A45F8F138FE6F40077017F /* (null) in Resources */ = {isa = PBXBuildFile; };
Run Code Online (Sandbox Code Playgroud)

我删除了这些行,并且vo:我可以再次访问此目标的构建设置.

不知道他们是如何进入那里的.我想猜测与SVN下的错误合并有关.


小智 15

在拉开同事的合并后,今天早上进入同一个问题.

我能用以下方法解决这个问题:

  1. 关闭Xcode
  2. 在Finder中打开.xcodeproj
  3. 删除project.xcworkspace文件/包
  4. 打开xcuserdata文件夹并删除特定于用户的.xcuserdatad文件夹.
  5. 重新打开Xcode和项目

我丢失了一些次要的用户偏好(文件和标签历史记录等),但现在可以单击所有(9)我的目标而不会出现问题.事实证明我的同事是在早期版本的Xcode上,但我不确定这是否会导致IDE崩溃.

  • 你在git repos中包含xcworkspace和xcuserdata? (2认同)

Mar*_*ian 9

Ben Mosher找到了解决方案.是的,这是由于SVN合并问题.

当我们与SVN合作时,错误经常发生,所以我写了一个bash脚本:

#!/bin/bash
sed "/(null) in/d" project.pbxproj > tmp_project.pbxproj
mv tmp_project.pbxproj project.pbxproj
Run Code Online (Sandbox Code Playgroud)


Moh*_*rim 7

关闭XCode时,请尝试以下步骤.

  1. 转到finder中的{YOUR_PROJECT} .xcodeproj文件.

  2. 右键单击{YOUR_PROJECT} .xcodeproj文件.

  3. 选择显示包内容 ...这将打开另一个Finder屏幕中的内容.

  4. 打开文件project.pbxproj并搜索所有包含字符串" (null)in "的行

  5. 删除所有行中的行 (空) ...无后顾之忧....自信地删除.

  6. 保存文件.

现在使用XCode打开您的项目并尝试打开Build Settings选项卡...希望您的问题能够得到解决.

谢谢,穆罕默德.