繁体   English   中英

仅使用LLDB()启动时iOS应用程序崩溃(该应用程序在模拟器中运行)

[英]iOS App Crash On Launch With Only LLDB() (The App Works In Simulator)

刚刚完成了将代码库更新到Swift 4的工作。在模拟器中,它工作正常。 构建设备时,我会立即崩溃,没有错误消息:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

它在模拟器中工作正常。

上面有一些线程:

应用仅因(lldb)而崩溃?

iOS应用程序崩溃,没有错误,仅(lldb)

dyld`__abort_with_payload:没有错误消息

从我学到的问题可能是链接的二进制文件,但是我已经研究了链接的二进制文件,并且我相信一切都正确地链接了。

关于从哪里开始调试此问题或可能是什么问题的任何想法?

更新1:我有一个内部框架用于我的xcodeproj,所以我尝试将其删除并将其安装为Pod,但错误仍然存​​在。

Update2添加完整的堆栈跟踪: 在此处输入图片说明

Update3错误跟踪,它不是通过从Xcode启动应用程序而是从手机本身启动应用程序,然后通过跟踪错误日志来强制崩溃: Termination Description: DYLD, Library not loaded: @rpath/PromiseKit.framework/PromiseKit | Referenced from: /var/containers/Bundle/Application/C50A937F-2A6F-4E5C-89C7-2D Termination Description: DYLD, Library not loaded: @rpath/PromiseKit.framework/PromiseKit | Referenced from: /var/containers/Bundle/Application/C50A937F-2A6F-4E5C-89C7-2D

UPDATE4去除promisekit框架应用程序的外壳版本没有这使我得出结论这(喜欢谁都有过这种神秘的问题等)的设备上进行编译后是一个框架链接错误。 但是,请尝试使用通用线程中的所有解决方案,例如:

带有框架的iOS应用在设备上崩溃,dyld:库未加载,Xcode 6 Beta

没用。 嵌入和链接或其他任何方法均无效。

因此,这是一个框架链接错误,但链接和嵌入似乎无法解决该问题。

可以使模拟器无法进行开发的一件事是它可以访问Macintosh资源。 该项目可能不小心链接到Macintosh版本的框架或库。 它存在于模拟器中,但不存在于iPhone设备上。

过去,当iOS和Mac的目标名称相同时,Xcode选择了错误版本的框架时遇到了问题。 如果您有这样的框架,请尝试暂时更改目标名称和产品名称中的一个或两个。 然后查看Xcode是否正在选择您想要的那个。

总而言之,当我将框架嵌入主应用程序时,它引起了其他一些难以理解的错误。 当我从构建阶段删除运行脚本时,它允许嵌入实际运行,并解决了该问题。

因此,通过删除以下在构建阶段中看到的运行脚本阶段: 在此处输入图片说明

我能够嵌入框架,并且该应用开始在设备上编译。

因此,如果将来出现此类错误,则解决方案仍然是嵌入它,但就我而言,还有另一个问题使嵌入无法正常工作。

解决了另一个问题后: https : //stackoverflow.com/a/48538124/1012775我修改了一些设置,这些设置弄乱了我的构建设置。 因此,我遇到了与提问者相同的问题。

我通过执行“ git reset --hard”解决了该问题,并恢复到干净的状态。 由于我已经没有这个问题了,感谢上帝。 它也可能对您有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM