为啥我的 ibtool 失败,退出代码为 255?

Posted

技术标签:

【中文标题】为啥我的 ibtool 失败,退出代码为 255?【英文标题】:Why am I getting ibtool failed with exit code 255?为什么我的 ibtool 失败,退出代码为 255? 【发布时间】:2013-03-14 23:22:03 【问题描述】:

突然间我无法构建我的项目。我收到以下编译器错误:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ibtool 失败,退出代码为 255

我的一大堆 xib 文件都出现此错误。任何想法正在发生什么,以及解决方案是什么?

使用 Xcode 4.6、ios 6.1。

【问题讨论】:

你能回滚 XIB 吗?您是否正在使用 git 之类的源代码控制来“突然”查看 xib 中的变化? @bryanmac 我正在使用 git,但问题出在许多 xib 文件中,其中许多我没有接触过。问题似乎是 Xcode 故障,可以通过多次重新启动 Xcode 或切换到不同的模拟器来解决,如接受的答案中所建议的那样。 只需一次尝试清理您的代码并运行。 我有一个 Xcode 9 的测试版正在运行,我已经关闭了。我忘了关闭模拟器的测试版。当我打开 Xcode 8 时,在尝试构建和运行应用程序时出现此错误。关闭 Beta 版模拟器、清理缓存并重新构建解决了该问题。 当我从 ~/Library 文件夹中删除一些文件时发生这种情况 【参考方案1】:

我最近在使用 Xcode 4.6 和 iOS 6.1 时遇到了类似的情况。

我所做的只是在模拟器上切换到不同的设备版本(5.1)并运行。切换回6.1并自行修复。

Xcode 有时可能没什么用。

【讨论】:

这个我已经试过了,但我又试了几次,终于解决了这个问题。 4.6.1 今天刚出来。也许这次更新会解决这个问题。 有时?这就是我今天的生产力:我连续工作了 6 个小时。 15 分钟创建代码,5:45h 与 xcode 战斗,我还没有解决这个问题。伙计,我讨厌 Xcode。是我用过的最糟糕的软件。 Xcode 有时反应很有趣。我遇到了同样的问题...尝试了几次,最终自己解决了。 刚刚更新到 Xcode 9.3。我正在使用 xamarin 进行开发,因此不要在编译器之外使用 Xcode。为我解决这个问题的是实际启动 xcode 并提示“安装所需的组件”。完成后,我可以重建我的项目,并且没有再次看到此错误。【参考方案2】:

这发生在我们身上,我们清理缓存,删除派生数据文件夹..等等,什么也没发生。

以下步骤已修复,

    打开 xib(nib) 作为源代码(右键单击来自 Xcode 的 xib Open As > Source Code 或使用 TextEdit 打开它) 删除此appearanceType="aqua" 使用 Xcode 保存并打开

更多解释请使用article,它可以帮助我们解决问题。

【讨论】:

我的代码中没有出现字段外观类型="aqua"。我该如何解决这个问题 @abc 只需搜索“appearanceType”并删除该行【参考方案3】:

尝试清理应用。 Cmd-Shift-K。

【讨论】:

【参考方案4】:

尝试找到项目中的所有XIB文件并打开它。其中之一很可能会使您的 Xcode 崩溃。

我的问题是某些 XIB 文件中的自定义字体。

我不得不在我的电脑上安装缺失的字体,问题就解决了。

【讨论】:

对我来说,问题在于情节提要。 对我来说问题是派生数据【参考方案5】:
    重新启动 Xcode - 不起作用 清理应用程序 - 无效 删除派生数据 - 无效 重置模拟器内容和设置 - 无效 更改模拟器版本 - 无效 重启操作系统 - 神奇的工作

我不确定哪个部分发挥了作用,是的,它浪费了很多时间。

【讨论】:

【参考方案6】:

就我而言,我正在使用 Visual Studio。一切都很好。突然之间,我遇到了同样的问题。 然后我打开 XCode,我看到了可用的更新。然后我更新了 Xcode 更新。然后它起作用了:)

所以原因是:XCode 预计会完成一些更新。在那之前,它无法正常工作。

【讨论】:

这是帮助修复它的原因。谢谢!【参考方案7】:

如果你被卡住了,你应该做的是,在一个 shell 中: ibtool --warnings --errors --notices yourfile.xib > alerts.plist

这会崩溃,但现在你有崩溃日志,在我的情况下,这是模拟指标的问题:

localhost:Classes me$ ibtool --warnings --errors --notices CodeViewController.xib > alerts.plist 2014-04-25 17:40:48.625 ibtoold[11691:507] [MT] DVTAssertions:/SourceCache/IDEInterfaceBuilderCocoaTouch/IDEInterfaceBuilderCocoaTouch-5038/InterfaceBuilder/WidgetIntegration/SimulatedMetrics/IBUISimulatedSizeMetrics.m:33 中的断言失败 详细信息: (initialTargetRuntime) 不应为零。 目的: 方法:-initWithTargetRuntime: 线程:name = (null), num = 1 提示:无

所以在我的情况下,我通过上下文菜单将 xib 作为源打开并删除了指标对象。这取决于错误要删除或更改的内容。再次尝试 ibtool,如果它没有崩溃,你就很好。

背景: 此错误的原因是一般性的,它总是会随着 iOS xcode 版本之间的不同规格变化而发生,主要是如果您没有定期检查您的项目是否有 xcode 更新。

【讨论】:

此错误是由于 IB 中的任何新的不受支持的功能而发生的。因此,这是完美的答案。很好的答案。 +1【参考方案8】:

这对于那些过去遇到过这个问题的人来说是无关紧要的......但是在使用 WatchKit 框架时,我遇到了这个错误。我所做的只是删除了我在两个 WKInterface 控制器之间链接的 segue,然后构建成功了。

【讨论】:

我开始这个问题更多是跟segue什么的有关。我在旧分支上工作,我的老板在故事板上改变了很多东西。我只在合并时出现版本冲突,但在合并后。无论我在解决冲突时选择了哪一方。它得到同样的错误。 :(【参考方案9】:

我遇到了这个错误,在扫描崩溃日志后,我注意到我的 Xcode-7 构建正在尝试使用 Xcode-8 Beta 中的构建工具。我以前使用 xcode-select 来更改我想使用的构建工具的版本。如果您安装了 xcode-beta,请使用以下命令检查您的设置:

显示设置了哪个构建工具路径:

xcode-select -p

选择标准的Xcode路径:

sudo xcode-select -s /Applications/Xcode.app/

如果您尝试使用不同安装路径的 Xcode 进行构建,请确保上面的路径反映了这一点。

【讨论】:

【参考方案10】:

刚刚使用 XCode 8.3 得到了这个。

对我来说,我只是退出 XCode,然后清理应用程序并重新构建。后来就好了。

我的原因是为本地化故事板添加新的字符串文件。

【讨论】:

【参考方案11】:

我刚刚经历了同样的事情,这里没有其他答案可以为我解决这个问题。由于 git 合并,它原来是情节提要中的重复 UILabel。显然,如果两个 UI 元素具有相同的内部 ID,Xcode 将会崩溃。

我找到问题原因的方法是:

迭代地倒退 git 历史,检查每个提交,直到找到第一个不会导致 Xcode 崩溃的故事板。 一旦您的提交开始崩溃,请检查 HEAD 并迭代还原问题提交中的情节提要更改。继续缩小范围,直到有一个 UI 元素或一行会导致崩溃。 永久还原负责的更改并重新启动 Xcode。再次打开情节提要,您可能会收到有关内部不一致的警告。同意 Xcode 提出的更改建议,但请查看它们。 如有必要,您现在可以尝试重新创建之前导致问题的 UI 元素或更改。

【讨论】:

【参考方案12】:

当我遇到“255”问题时,我正在辅助 git 分支中工作。

我只是切换回我的主 git 分支,清理项目并运行。没有我预期的问题。

然后我切换回“问题”git分支并成功重建它。

小精灵。

【讨论】:

【参考方案13】:

我在使用 Xcode 8.2.1 和 iOS 10.2 时也遇到过类似的事情。

我在模拟器上切换到较早的设备版本并且它工作正常。然后我切换回来,它被修复了。

【讨论】:

【参考方案14】:

我发现如果你使用 Xcode 时间过长而不关闭它,Xcode 最终会变得毫无帮助并给你随机的神秘错误。所以每次出现可疑错误时,我都会定期重启 Xcode 和我在 Mac 上运行的所有应用程序。

Xcode Cache第一次尝试检查您所有的 segue/outlet/storyboard 控制器类。有时情节提要会与已设置的视图控制器类断开连接。 (这可能会导致运行时错误)。

第二次尝试清理您的项目并转到 (~/Library/Developer/Xcode/DerivedData) 并删除您的项目缓存。 然后强制关闭 Xcode 然后重新启动它。

3rd 尝试检查您所有的 segue/outlet/storyboard 控制器类。有时情节提要会与已设置的视图控制器类断开连接。 (这可能会导致运行时错误)。

4th 尝试检查(复制捆绑资源,编译源 - 项目 > 构建阶段)确保列出的文件存在且地址和文件夹正确。有时创建组会导致创建文件夹并导致编译器找不到文件

第 5 次 这也可能是由于移动文件 + Xcode 最终变得无用并给您随机神秘错误。并在文件更改目录后更新(复制捆绑资源,编译源 - 项目>构建阶段)

个人错误。意外删除 这也可能是调用已删除的 ViewController 或 outlet 造成的

【讨论】:

在项目文件 > 构建设置 > iOS 部署目标下,它只显示数字,没有“最新版本”。设置为 iOS 11,然后设置为 iOS 9,然后再设置回 iOS 11 无效。版本 9.0 (9A235) @WilliamCerniuk 从我发布此答案之日起,我发现如果您使用 Xcode 时间过长而不关闭它,Xcode 最终将变得无用并给您随机的神秘错误。所以每次出现可疑错误时,我都会定期重启 Xcode 和我在 Mac 上运行的所有应用程序。 @WilliamCerniuk 尝试清理您的项目并转到 (~/Library/Developer/Xcode/DerivedData) 并删除您的项目缓存。然后强制关闭 Xcode 然后重新启动它。 @WilliamCerniuk 尝试检查你所有的 segue/outlet/storyboard 控制器类。有时情节提要会与已设置的视图控制器类断开连接。 (这可能会导致运行时错误)。 @WilliamCerniuk 尝试检查(复制捆绑资源,编译源 - 项目 > 构建阶段)确保列出的文件以正确的地址和文件夹存在。有时创建组会导致创建文件夹并导致编译器找不到文件【参考方案15】:

在 OS 更新 (macOS High Sierra 10.13.4) 后,我在使用 Visual Studio for Mac(社区,7.4.2(内部版本 12))时遇到了同样的问题。

在这种情况下,您似乎只需要更新 Visual Studio 和 Xcode。

请注意,当然,Visual Studio 不会带来 Xcode 更新,因此“诀窍”是打开后者并让它运行更新。

【讨论】:

这也是我的问题 - 启动 xcode 提示我重新安装所需的组件并修复它。 更新到 iOS 12.0,我也遇到了同样的情况。只需要第一次运行XCode,让它安装一些额外的组件就完成了!【参考方案16】:

我在 Xcode 8 中也遇到了同样的问题。删除派生数据解决了我的问题。

    转到文件夹 ~/Library/Developer/Xcode/DerivedData/ 并清除其中的文件夹 重新启动 Xcode 和模拟器并运行您的项目....!

【讨论】:

无法删除项目的派生数据,也无法删除 ~/Library/Caches/com.apple.dt.Xcode(一个经常损坏的缓存)【参考方案17】:

在故事板中做了一些工作后才发生这种情况。我做了一些撤消操作,结果是一个简单的 UIButton 添加到视图中。删除它并且它没有错误地构建。刚刚添加了一个新按钮,它工作。

更多解释...该按钮已从一个 TVCell 原型复制到另一个原型。我猜副本中发生了一些混乱。很高兴在尝试构建之前我没有改变太多。

【讨论】:

【参考方案18】:

在我的情况下,它发生在重命名一些命名空间之后,我解决了同样的问题,转到项目属性 > APPLICATION 选项卡 > 默认命名空间: 提供新的正确命名空间。

当然,我也在类内部更改了命名空间,但这会有所帮助,因为会修复所有自动生成的文件。 建议清理并构建,并最终关闭并重新打开解决方案。

【讨论】:

【参考方案19】:

当我将 git 格式的代码与其他开发人员代码合并时,我遇到了同样的问题。我尝试了很多时间来清理我的项目。但是没有什么能帮到我。

我在源代码中打开故事板。开始与上一个工作存储库故事板进行比较。然后我发现同一个标签在同一个屏幕上出现了两次。然后我删除其中一个并保存。它帮助到我。

您可以检查您的 xib 或故事板。

【讨论】:

【参考方案20】:

我有这个错误是因为我在将情节提要作为源代码编辑时将<view> 重写为<imageView>

我认为这个快速而简单的解决方案可以用UIImageViews 替换一些自定义类(UIView 的子类)。


都称赞 GIT。

【讨论】:

【参考方案21】:

这就是我遇到问题的原因: 我曾尝试将 iOS 8.0 模拟器与 Xcode 5.0.2 一起使用。 我在以下路径中粘贴了 iOS 8.0 模拟器 - /Applications/Xcode\ 2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs 结果是我能够在 Xcode 5.0.2 的下拉列表中看到 iOS 8.1 模拟器,但这导致 libtool 的编译错误。我从路径中删除了模拟器,它在我重新启动 Xcode 后工作。现在为了使用 iOS 8.0 模拟器,我使用的是 Xcode 6.1

【讨论】:

【参考方案22】:

我用这个命令修复了错误,关闭模拟器和Xcode:

codesign -vv /A*/Xc* | open -ef

希望对您有所帮助。

【讨论】:

协同设计与此有何关联。当我只是想在 sim 上构建时【参考方案23】:

在为 10.9 构建在 XCode 6.4 (10.10) 中创建的 .XIB 时遇到此错误。

见this answer。 XIB 正在调用 10.10 中引入的“labelColor”,但在 10.9 中是未知的。

将 XIB 作为源打开可以防止 XCode 崩溃,并允许我将 'labelColor' 的实例更改为 'textColor' 并解决了错误。

【讨论】:

【参考方案24】:

正如 Logan Geefs 上面提到的,它似乎是由接口控制器 segues(即循环)引起的。删除“坏”的 segues 并不能真正解决导航问题。需要有策略地将一些按钮操作放置到 [pop controllers]。

这是对我有用的代码:

 - (IBAction)backToStart 

   [self popToRootController];
 

 - (IBAction)backToPrevious 

   [self popController];
 

【讨论】:

【参考方案25】:

很少有人提到这个问题与segue有关,我的也是,虽然在我添加新的segue之后它没有立即弹出并且我能够运行应用程序几次进行一些更改,添加新的视图之前它发生了,所以不要忽视这一点。我去删除一些控制器并撤消它以防它没有帮助。如果 segue 是您可能构建的问题,但您将无法添加该 segue,因此如果它是一个可行的选项,请重新创建整个视图控制器。复制和粘贴似乎不起作用,尽管我没有尝试删除 IBOutlet 连接。

【讨论】:

【参考方案26】:

当我安装并开始使用 XCode 9 测试版时,这开始发生在我身上。当我在 8.3 中开始修改好的项目时,故事板被这个错误破坏了,XCode 崩溃了。 我的电脑上安装了 XCode 7.x、8.3 和 9。我卸载了所有这些(并删除了所有相关文件),然后从 App Store 重新安装了 8.3。我的项目情节提要仍然损坏,但我能够从备份中恢复,现在一切正常。 不确定这是否与 9 beta 相关。

【讨论】:

【参考方案27】:

就我而言,我在手动解决“project.pbxproj”文件中的合并冲突后遇到了这个问题。 在 XCode 中,选择 project->target->BuildPhases->CopyBundleResources。在那里,我删除了一些以空白图标显示的重复文件(与 XIB 文件图标不同)。在此之后,构建顺利,没有问题。

【讨论】:

【参考方案28】:

我今天在一个新项目中遇到了这个错误,通过“增强现实应用”项目模板测试 iOS 的 ARKit。

将一些 .scn 文件从根项目移动到 art.scnassets 文件夹后,我开始收到代码签名错误,但我所做的一切都无法解决。

我尝试了此线程中的所有建议(清理、清理派生数据、重新启动 Xcode、重新启动 Mac、在情节提要文件中查找重复的 ID)......但它对我有用的是:

提交我的更改并将其推送到我的 git 项目 硬重置为上一次提交 清理派生数据,并成功运行 硬重置回最近的提交

...现在它工作了...所以我猜这是 XCode 的 git 处理中的一些错误???

【讨论】:

【参考方案29】:

在 XCODE 9 上,造成这种情况的一个原因是 XCODE 9.1 中存在旧 .XIB 文件的错误。

修复:

    升级到 XCODE 9.2

    您的所有 .XIB 文件都应设置为 iOS 8.1 或更高版本。

【讨论】:

【参考方案30】:

只需干净构建您的项目。你会得到解决!

【讨论】:

以上是关于为啥我的 ibtool 失败,退出代码为 255?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.6 失败,退出代码为 255

latexindent:未知的 PerlIO 层“编码”-格式化失败,退出代码为 255 macOS 12 Monterey

命令 /Applications/Xcode-beta.app/Contents/Developer/usr/bin/actool 失败,退出代码为 255

ibtool failed with exit code 255

为啥 Spark 作业失败并显示“退出代码:52”

MySQLdb Python 连接器构建和安装命令“gcc-4.2”失败,退出状态为 255