编译故事板时ibtool失败了

时间:2012-12-22 19:55:25

标签: xcode macos storyboard xcode4.5

我刚从两个不同的Macbook上的git存储库下载了一个项目。首先,它运行没有问题。

在第二台Macbook上显示以下消息:

Command /Applications/Xcode.app/Contents/Developer/usr/bin/ibtool 
failed with exit code 255

尝试编译文件MainStoryboard.storyboard时。

当我点击XCode上的MainStoryboard.storyboard时,它会崩溃并且不会打开它。

在另一台计算机上,一切正常。

我尝试了以下方法来解决这个问题,但没有成功:

1)将XCode从4.5升级到4.5.2

2)删除项目目录并再次克隆存储库。

3)在~/Library/Developer/Xcode/DerivedData

上删除了我项目的内容

4)purge

有关如何解决此问题的任何想法?

7 个答案:

答案 0 :(得分:2)

使用XCode 5发现此问题。

我已经解决了这个问题,但它需要硬重置。

有人说这是因为我在App Store之外安装了XCode,或者因为模拟器有问题,或者因为XCode指向错误的模拟器版本,或者resoruce缺少目标成员资格,或者其他什么。我尝试了所有这些。

我从App Store下载了XCode,重新安装了模拟器,但仍然没有运气。所以我只是将我的存储库回滚到更早的日期,并在此过程中丢失了一些工作。虽然不多,因为我总是很少投入。

自从2011年开始使用故事板以来,我一直都很少提供AND OFTEN。故事板很脆弱。

EDIT 重新添加新组件后,问题重新浮出水面。

我注意到我在UIViewController中放置了一个静态表视图。我以前这样做过。

我在代码中使用了UITableViewController的子类,但是故事板场景是一个UIViewController。我拖出了一个UITableViewController,并将表格视图单元格移动到那里,它解决了这个问题。

一切都归功于错过的错误消息。自从XCode 5以来,他们都去了哪里?

答案 1 :(得分:1)

做一个

which ibtool

在两台Mac上的命令行中。他们有可能是不同的。

在将Xcode捆绑在单个.app包中之前,它会在/ usr / local等文件夹中安装命令行工具。

我建议您删除这些本地副本以避免干扰Xcode的内置版本,即它使用旧版本。如果你仍然希望能够从命令行使用ibtool,这里是关于xcrun的解释:http://www.cocoanetics.com/2012/07/you-dont-need-the-xcode-command-line-tools/

答案 2 :(得分:1)

差不多半年后,我终于成功地发现了造成这个问题的原因并修复了这个问题。

现在,使用XCode 4.6.3,它给了我另一个关于这个问题的线索:

2013-06-28 18:15:32.606 Interface Builder Cocoa Touch Tool[7894:f07] CFPreferences: user home directory at file://localhost/Users/[myusername]/Library/Application%20Support/iPhone%20Simulator/User/ is unavailable. User domains will be volatile.Command /Applications/Xcode.app/Contents/Developer/usr/bin/ibtool failed with exit code 255

收到此新消息后,我在“iPhone模拟器”中搜索了此用户文件夹,并且没有名为“用户”的文件夹。

我创建了“User”文件夹,干净了,之后我又能够构建项目了!

答案 3 :(得分:1)

Xcode 6.4中对我的修复是...重启我的电脑。伤心,但却是真的。

答案 4 :(得分:0)

我得到了同样的错误。事实证明我在tableview单元格中错误地连接了一些插座。

答案 5 :(得分:0)

我不知道是否有人仍在努力解决这个错误,但今天轮到我了。我刚刚解决了这是背景:

我有一个UITableViewCell,其中一半用简单的UIVIEW覆盖。在这个UIVIEW里面我有很多其他视图(UILables,UITextField等)

就在UIVIEW结束的地方(再次它覆盖了整个UITableViewCell的中间)我放置了一个UIImageView。 UIImageView的一半覆盖了UIView,另一半覆盖了UITableView本身。在Hierarchy中,UIImageView位于UITableVIewCell上,而不在UIView中。

问题是当我应用autolayout时,我在UIView内部的视图和UIVIEW之外的UIImageView之间设置了约束。

当我运行应用程序时,错误出现了。半小时后删除视图和东西我意识到错误是由该约束引起的。删除该约束后,错误消失了。

如此底线,检查你的约束!只有“连接”视图与同一个超级视图内的其他人。

祝你好运!

答案 6 :(得分:-3)

尝试完全重新安装Xcode。似乎ibtool出现了一些错误,重新安装很可能无法修复。