dyld`__abort_with_payload:没有错误消息

Kev*_*OUX 60 xcode ios xcode8

当我用XCode启动我的应用程序时,我遇到了崩溃但没有错误

应用只是停在这个线程上

在此输入图像描述

如何获得有关该问题的更多信息?

mko*_*lov 93

如果您使用的是自定义框架,则需要将其放在"目标/常规"选项卡下的Xcode项目中的"嵌入式二进制文件"部分中.


Kli*_*One 52

对我来说简单Clean而且Rebuild整理出来.希望能帮助到你.

  • 清理,清理构建文件夹,删除Derived Data文件夹的内容,Pod安装(如果适用),重新启动Xcode,重启机器; 然后在门上抹上一些羊羔的血,以便做好准备 (48认同)
  • 就我而言,我不得不将辣椒和柠檬绑在门框上。 (3认同)

Дми*_*мов 28

在此处输入图片说明系统更新至 macOS 10.15.2 beta 后出现此问题。禁用“Thread Sanitizer”解决了这个问题(Xcode 11.2)。现在我无法使用 Thread Sanitizer,不得不等待下一次操作系统更新。

  • 这篇文章回答了升级到 Mac 10.15.2 后 Xcode 11.3 模拟器出现问题时的原始问题。这似乎是苹果的错误,请参阅https://forums.developer.apple.com/thread/126891 (6认同)

Wil*_*iuk 14

将框架添加到嵌入式二进制资产列表中可以解决此问题 以下是外部框架在Xcode GUI中作为嵌入式框架的最终形式的设置(Xcode 9.2,我个人喜欢视觉面包屑路径更好;-)): 在此输入图像描述

Apple是否故意使运行时崩溃以某种方式告诉开发人员您不能将非Apple框架用作iOS开发中的简单链接框架的问题?最好把它作为我认为的构建错误出现......用一个按钮说"移动它!"

嵌入式二进制文件的使用使最终用户不必独立于您的应用程序添加框架(或者您使用安装程序).在iPhone(iOS)的情况下,这是不可能的,但在macOS上,它是可能的,但可以快速混乱.

对于最终用户来说,简单地拖放应用程序以将其安装在macOS上就更好了,这就是嵌入式成为一种好处的地方.嵌入还避免了使用框架的外部版本进行管理的经典"DLL冲突".(磁盘空间很便宜,我的客户的时间很宝贵).


小智 12

终于解决了!

对我有用的是使框架"可选"而不是"必需".

希望有所帮助!


bla*_*arl 11

Xcode 11.1?关掉Do not EmbedEmbed & Sign是个不错的选择。

0

222

谢谢@mkonovalov,@William Cerniuk


Hon*_*Liu 10

我刚刚修改了项目中的错误!
如果您在Object-C项目中使用swift框架,我建议您更改构建设置.
始终将Swift标准库选项嵌入YES.像这样:在此输入图像描述

希望这对你有用.


小智 7

为了回答最初的问题“我该怎么做才能获得有关该问题的更多信息?”,这个 Apple 论坛帖子提供了一个非常简单的提示:只需在 XCode 之外运行崩溃的应用程序(即从 XCode 停止它,然后在您的计算机上手动运行它)设备)。这将生成一个崩溃日志,其中包含有关发生的事情的更多详细信息。然后,您可以从 XCode 窗口菜单/设备和模拟器 -> 查看设备日志查看此日志。

  • 这就是您滚动浏览最热门答案的原因。检查设备日志让我朝着正确的方向前进。谢谢您的回答! (7认同)

inf*_*oop 6

在诊断中取消选中“Guard Malloc”对我有用。 设置见图片

  • `Guard Malloc`,是正确的。有谁知道为什么它修复了崩溃? (2认同)

小智 6

1) 继续执行以查看调试器中是否显示任何消息,例如未找到“MyFramework.framework”。如果是这种情况,请遵循以下讨论:未加载 OS X 框架库:'找不到图像' 对我来说这个答案有效:https : //stackoverflow.com/a/44796734/4060763

2) 确保您已通过“嵌入二进制文件”部分添加了二进制文件。

3) 确保您在构建阶段部分启用了框架签名。

4) 确保嵌入式框架不是符号链接。

5) 您可以使链接的框架成为可选的,而不是在“将二进制文件与库链接”阶段中必需的。这将告诉 iOS 在启动期间不要查找这些框架。但无论如何,您需要修复错误才能使用这些框架!

6) 检查所有 info.plist 条目是否良好。就我而言,我使用的是适用于 iOS 的 Mac info.plist 文件。它正在寻找一些在 iOS 项目中不存在的 xib 文件。

7)在任何此类更改后进行清理和构建。这是必需的,因为如果这些文件已经存在,xcode 不会复制/更改它们。

8) 从 iPad 上删除该应用程序,然后安装。与7相同的原因。