ios dyld`__abort_with_payload:没有错误信息
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/42027601/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
dyld`__abort_with_payload: With no error message
提问by Kevin ABRIOUX
回答by mkonovalov
If you are using custom frameworks, you need to put it inside the "Embedded Binaries" section located in the Xcode project under the tab Target / General.
如果您使用自定义框架,则需要将其放在位于 Xcode 项目中 Target / General 选项卡下的“Embedded Binaries”部分。
回答by FlixMa
For me a simple Clean
and Rebuild
sorted it out. Hope it helps.
对我来说,一个简单的Clean
,并Rebuild
整理出来。希望能帮助到你。
回答by Дмитрий Акимов
This problem appeared after system update up to macOS 10.15.2 beta. Disabling "Thread Sanitizer" solved the issue (Xcode 11.2). Now I can't use Thread Sanitizer and have to wait for the next OS update.
系统更新至 macOS 10.15.2 beta 后出现此问题。禁用“Thread Sanitizer”解决了这个问题(Xcode 11.2)。现在我无法使用 Thread Sanitizer,不得不等待下一次操作系统更新。
回答by William Cerniuk
Adding the framework to the embedded binary asset list fixed this. Here is what the setup of a foreign framework looks like in final form in the Xcode GUI as an Embedded Framework (Xcode 9.2, personally I like a visual bread crumb trail better ;-) ):
将框架添加到嵌入式二进制资产列表修复了这个问题。以下是外部框架的设置在 Xcode GUI 中作为嵌入式框架的最终形式(Xcode 9.2,我个人更喜欢视觉面包屑路径;-)):
Did Apple intentionally crash the runtime to somehow tell the developer about the problem that you cannot use non-Apple frameworks as simply linked frameworks in iOS development? It would be better to have it come up as a build error I would think... with a button that said "move it!"
Apple 是否故意让运行时崩溃,以某种方式告诉开发人员您不能在 iOS 开发中使用非 Apple 框架作为简单链接框架的问题?我认为最好将它作为构建错误出现......带有一个说“移动它!”的按钮。
The use of Embedded Binaries keeps the end user from having to add the Framework independently of your app (or have you do with an installer). In the case of the iPhone (iOS), that is impossible, but on macOS, it is possible but can get messy fast.
嵌入式二进制文件的使用使最终用户不必独立于您的应用程序添加框架(或者您使用安装程序)。在 iPhone (iOS) 的情况下,这是不可能的,但在 macOS 上,这是可能的,但很快就会变得混乱。
For the end user, it is much nicer to simply drag and drop an app to install it on macOS, which is where embedded becomes a benefit. Embedding also avoids the classic "DLL conflicts" of having external versions of your framework to manage. (disk space is cheap, my customer's time is precious).
对于最终用户来说,简单地拖放应用程序以将其安装在 macOS 上会更好,这就是嵌入式成为一个好处的地方。嵌入还避免了经典的“DLL 冲突”,即需要管理框架的外部版本。(磁盘空间便宜,我客户的时间很宝贵)。
回答by Eran Talmor
Finally solved!
终于解决了!
What worked for me was to make the framework "optional" instead of "required".
对我有用的是使框架“可选”而不是“必需”。
Hope that helps!
希望有帮助!
回答by Hongbo Liu
I fixed the error in my project just now!
If you are using swift framework in Object-C project, I advice you to change the build settings.
Always Embed Swift Standard Libraries option to YES. like this:
我刚刚修复了我项目中的错误!
如果您在 Object-C 项目中使用 swift 框架,我建议您更改构建设置。
始终将 Swift 标准库选项嵌入 YES。像这样:
hope this was useful to you.
希望这对你有用。
回答by black_pearl
回答by infiniteLoop
回答by coolVick
1) Continue the execution to see if any message shows up in debugger such as "MyFramework.framework" not found. If that is the case, follow this discussion: OS X Framework Library not loaded: 'Image not found'For me this answer worked:https://stackoverflow.com/a/44796734/4060763
1) 继续执行以查看调试器中是否显示任何消息,例如未找到“MyFramework.framework”。如果是这种情况,请遵循以下讨论:未加载 OS X 框架库:'找不到图像'对我来说这个答案有效:https: //stackoverflow.com/a/44796734/4060763
2) Make sure you have added your binaries through "Embed Binaries" section.
2) 确保您已通过“嵌入二进制文件”部分添加了二进制文件。
3) Make sure you have enabled signing of frameworks in build phase section.
3) 确保您在构建阶段部分启用了框架签名。
4) Make sure the embedded frameworks are not symlinks.
4) 确保嵌入式框架不是符号链接。
5) You can make the linked frameworks optional instead of required in "Link binary with libraries" phase. This will tell iOS to not look for these frameworks during launch. But anyway you need to fix the errors to use those frameworks!
5) 您可以使链接的框架成为可选的,而不是在“将二进制文件与库链接”阶段中必需的。这将告诉 iOS 在启动期间不要查找这些框架。但无论如何,您需要修复错误才能使用这些框架!
6) Check if all the info.plist entries are good. In my case, I was using a Mac info.plist file for iOS. It was looking for some xib file which was not present in iOS project.
6) 检查所有 info.plist 条目是否良好。就我而言,我使用的是适用于 iOS 的 Mac info.plist 文件。它正在寻找一些在 iOS 项目中不存在的 xib 文件。
7) Do a clean and build after any such change. This is required because xcode does not copy/change these files if they already exist.
7)在任何此类更改后进行清理和构建。这是必需的,因为如果这些文件已经存在,xcode 不会复制/更改它们。
8) Remove the app from iPad and then install. Same reason as 7.
8) 从 iPad 上删除该应用程序,然后安装。与7相同的原因。
回答by Linus
I had just missed applying the "Privacy - Camera Usage Description" in the info.plist.
我刚刚错过了在 info.plist 中应用“隐私 - 相机使用说明”。
Don't know if this info helps anybody else though...
不知道这些信息是否对其他人有帮助...