【问题标题】:ibtool failed when compiling storyboardibtool 在编译故事板时失败
【发布时间】:2012-12-09 23:24:42
【问题描述】:

我刚刚从两台不同 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

关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: xcode macos storyboard xcode4.5


    【解决方案1】:

    尝试完全重新安装 Xcode。似乎 ibtool 有问题,重新安装可能能够修复。

    【讨论】:

    • 原来的列表中没有列出来?
    • javsmo 没有提到重新安装 Xcode,所以我不知道你从哪里得到它已经完成...?
    【解决方案2】:

    做一个

    which ibtool

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

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

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

    【讨论】:

    • 两台机器都返回/usr/bin/ibtoolwhich ibtool
    • 尝试使用 --version 调用它们
    • $ ibtool --version <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.ibtool.version</key> <dict> <key>bundle-version</key> <string>1878</string> <key>short-bundle-version</key> <string>4.5.2</string> </dict> </dict> </plist>(两者)
    • 那我就没主意了。向 Apple 提交错误报告。
    • 几个月前我提交了一份错误报告,但没有人回答。我所做的所有其他错误报告都得到了答复和修复。
    【解决方案3】:

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

    现在,有了 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 Simulator”中搜索了这个User文件夹,并没有名为“User”的文件夹。

    我创建了“用户”文件夹,进行了清理,之后我能够再次构建项目!

    【讨论】:

    • 如果您修复了原始错误,为什么不分享解决方案?
    • 问题是 iPhone 模拟器中缺少用户文件夹,正如我在这个答案中所说...
    【解决方案4】:

    使用 XCode 5 发现了这个问题。

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

    有人说这是因为我在 App Store 之外安装了 XCode,或者因为模拟器有问题,或者因为 XCode 指向了错误的模拟器版本,或者资源缺少目标成员资格,等等。我都试过了。

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

    自从 2011 年开始使用故事板以来,我一直很少而且经常这样做。故事板很脆弱。

    编辑 重新添加新组件后,问题再次浮出水面。

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

    我在代码中使用了 UITableViewController 的子类,但情节提要场景是 UIViewController。我改为拖出一个 UITableViewController,并将表格视图单元格移到其中,它解决了这个问题。

    感谢丢失的错误消息。自 XCode 5 以来,它们都去了哪里?

    【讨论】:

      【解决方案5】:

      我遇到了同样的错误。原来我在 tableview 单元格中的一些插座接线错误。

      【讨论】:

        【解决方案6】:

        在 Xcode 6.4 中对我的修复是……重新启动我的计算机。悲伤,但真实。

        【讨论】:

          【解决方案7】:

          我不知道是否有人仍在为这个错误而苦苦挣扎,但今天轮到我面对它了。我刚刚解决了。这是上下文:

          我有一个 UITableViewCell,其中一半被一个简单的 UIVIEW 覆盖。在这个 UIVIEW 中,我有许多其他视图(UILables、UITextField 等)

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

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

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

          所以底线,检查你的约束!仅将视图与同一 superView 中的其他视图“连接”。

          祝你好运!

          【讨论】:

            猜你喜欢
            • 2015-12-14
            • 1970-01-01
            • 2020-09-22
            • 2012-05-18
            • 1970-01-01
            • 2017-06-21
            • 2017-08-24
            • 2015-05-28
            • 1970-01-01
            相关资源
            最近更新 更多