【问题标题】:iOS App Crash On Launch With Only LLDB() (The App Works In Simulator)仅使用 LLDB() 启动 iOS 应用程序崩溃(该应用程序在模拟器中工作)
【发布时间】:2018-04-05 22:41:37
【问题描述】:

刚刚完成将代码库更新到 Swift 4。它在模拟器中运行良好。当我构建到设备时,我会立即崩溃,但没有错误消息:

在模拟器中运行良好。

上面有一些线程:

App crashes only with (lldb)?

iOS app crashes with no error, just (lldb)

dyld`__abort_with_payload: With no error message

据我所知,问题可能是链接的二进制文件,但我已经深入研究了链接的二进制文件,我相信一切都正确链接。

关于从哪里开始调试或可能出现什么问题有什么想法吗?

更新 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

Update4 删除 promisekit 框架后,应用程序的 shell 版本确实在设备上编译,这让我得出结论(就像其他遇到这个神秘问题的人一样)是框架链接错误。但是尝试了常见线程中的所有解决方案,例如:

iOS app with framework crashed on device, dyld: Library not loaded, Xcode 6 Beta

没有成功。嵌入和链接或其他任何操作均无效。

所以这是某种框架链接错误,但链接和嵌入似乎无法解决问题。

【问题讨论】:

  • device 控制台日志中是否有任何可能提供线索的消息?您是否查看过应用程序包本身的 Frameworks 文件夹,看看是否有您期望的所有内容?
  • @PhillipMills 我已经研究过了,遗憾的是它很干净。没有崩溃日志。所发生的只是应用程序启动时出现初始屏幕并冻结。
  • (为了清楚起见,我不是指崩溃日志...我指的是选择设备时在 Xcode 的“设备”窗口底部显示的日志。)
  • @PhillipMills 我现在检查了几次,每次尝试启动应用程序时电话日志中都没有添加任何新内容。
  • 扩展线程显示以查看第 1 层到第 4 层可能会有所帮助。这可能会提供线索 DYLD 代码中哪个条件失败。

标签: ios xcode lldb swift4 sigabrt


【解决方案1】:

可能会妨碍使用模拟器进行开发的一件事是它对 Macintosh 资源的访问。该项目可能已意外链接到框架或库的 Macintosh 版本。它存在于模拟器上,但不存在于 iPhone 设备上。

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

【讨论】:

    【解决方案2】:

    总而言之,当我将框架嵌入到主应用程序中时,它导致了一些其他晦涩的错误。当我从构建阶段删除运行脚本时,它允许嵌入实际工作并解决了问题。

    因此,通过删除构建阶段中的运行脚本阶段:

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

    因此,如果您将来遇到此类错误,解决方案仍然是嵌入它,但就我而言,还有另一个问题阻止嵌入工作。

    【讨论】:

      【解决方案3】:

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

      我通过执行“git reset --hard”解决了这个问题,并回到了我的干净状态。既然我不再有这个问题了,感谢上帝。 它也可能对你有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-21
        • 1970-01-01
        • 1970-01-01
        • 2011-10-11
        • 1970-01-01
        • 2016-02-25
        • 2022-01-06
        相关资源
        最近更新 更多