在 iOS13/iPadOS 13 中使用 dylib 调试偶发的应用程序崩溃

2024-02-01

更新到 iOS 13.x / iPadOS 13.x 后,我们发现最近的 Testflight 版本偶尔会发生崩溃。我们还没有看到使用我们 13 之前发布版本的用户的报告,但似乎还没有多少人更新到 13,所以我们真的不知道。

该应用程序是一个带有 cordova-ios 5.0.2 的 cordova-app,使用 WkWebView。数据保护权限设置为完整。

我很难理解这次崩溃,它似乎是在 iOS 堆栈深处的某个地方?崩溃是偶发的,并且似乎仅在应用程序置于后台时偶尔发生。

我正在寻找一些关于如何弄清楚这一点的指导/指示。

来自 TestFlight 的崩溃报告:

Incident Identifier: 900F9C19-EE4A-4A9D-B1AB-E834F6387565
Beta Identifier:     7194E7C0-152C-43E4-9716-BE2AF29A0BD7
Hardware Model:      iPad7,5
Process:             SomeApp [677]
Path:                /private/var/containers/Bundle/Application/745F3054-AB4B-4A1A-A7AB-2AFD0516706C/SomeApp.app/SomeApp
Identifier:          SomeApp
Version:             380 (2.0.0)
AppStoreTools:       11A1002b
Beta:                YES
Code Type:           ARM-64 (Native)
Role:                Non UI
Parent Process:      launchd [1]
Coalition:           SomeApp [620]


Date/Time:           2019-10-03 07:10:10.2716 +0200
Launch Time:         2019-10-02 15:50:25.8963 +0200
OS Version:          iPhone OS 13.1.2 (17A860)
Release Type:        User
Baseband Version:    n/a
Report Version:      104

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: KERN_MEMORY_ERROR at 0x00000001048a5c8c
VM Region Info: 0x1048a5c8c is in 0x104884000-0x1048a8000;  bytes after start: 138380  bytes before end: 9075
      REGION TYPE                      START - END             [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      MALLOC_LARGE           0000000104880000-0000000104884000 [   16K] rw-/rwx SM=PRV  
--->  mapped file            0000000104884000-00000001048a8000 [  144K] r--/rw- SM=COW  ...t_id=18017271
      shared memory          00000001048a8000-00000001048ac000 [   16K] r--/r-- SM=SHM  

Termination Signal: Bus error: 10
Termination Reason: Namespace SIGNAL, Code 0xa
Terminating Process: exc handler [677]
Triggered by Thread:  12

Thread 12 name:
Thread 12 Crashed:
0   libdyld.dylib                   0x000000018a2f76c0 dyld3::closure::ObjCStringTable::hash(char const*, unsigned long) const + 16 (Closure.cpp:1339)
1   libdyld.dylib                   0x000000018a2f7cd4 dyld3::closure::ObjCStringTable::getIndex(char const*) const + 52 (Closure.h:840)
2   libdyld.dylib                   0x000000018a2f7a6c dyld3::closure::ObjCStringTable::getPotentialTarget(char const*) const + 20 (Closure.h:824)
3   libdyld.dylib                   0x000000018a2f7d40 dyld3::closure::ObjCClassDuplicatesOpt::getClassLocation(char const*, objc_opt::objc_opt_t const*... + 44 (Closure.cpp:1483)
4   libdyld.dylib                   0x000000018a3044bc dyld3::AllImages::forEachObjCClass(char const*, void (void*, bool, bool*) block_pointer) const + 72 (AllImages.cpp:1915)
5   libobjc.A.dylib                 0x000000018a236c38 getPreoptimizedClass + 148 (objc-opt.mm:279)
6   libobjc.A.dylib                 0x000000018a2218d8 getClassExceptSomeSwift(char const*) + 20 (objc-runtime-new.mm:1607)
7   libobjc.A.dylib                 0x000000018a222784 look_up_class + 100 (objc-runtime-new.mm:6843)
8   Foundation                      0x000000018a8b4b00 NSClassFromString + 200 (NSObjCRuntime.m:0)
9   BoardServices                   0x000000018f2ba1b0 +[BSXPCServiceConnectionProxy invokeMethod:onTarget:withMessage:forConnection:] + 104 (BSXPCServiceConnectionProxy.m:329)
10  BoardServices                   0x000000018f2b9374 -[BSXPCServiceConnectionProxy invokeMessage:onTarget:] + 144 (BSXPCServiceConnectionProxy.m:177)
11  BoardServices                   0x000000018f2c080c __63-[BSXPCServiceConnectionEventHandler connection:handleMessage:]_block_invoke + 428 (BSXPCServiceConnectionEventHandler.m:184)
12  BoardServices                   0x000000018f2d6bf0 BSXPCServiceConnectionExecuteCallOut + 344 (BSXPCServiceConnection.m:1049)
13  BoardServices                   0x000000018f2c062c -[BSXPCServiceConnectionEventHandler connection:handleMessage:] + 172 (BSXPCServiceConnectionEventHandler.m:173)
14  BoardServices                   0x000000018f2d53e4 -[BSXPCServiceConnection _connection_handleMessage:fromPeer:withHandoff:] + 644 (BSXPCServiceConnection.m:808)
15  libdispatch.dylib               0x000000018a1bf610 _dispatch_call_block_and_release + 24 (init.c:1408)
16  libdispatch.dylib               0x000000018a1c0184 _dispatch_client_callout + 16 (object.m:495)
17  libdispatch.dylib               0x000000018a16c464 _dispatch_lane_serial_drain$VARIANT$mp + 608 (inline_internal.h:2487)
18  libdispatch.dylib               0x000000018a16ce88 _dispatch_lane_invoke$VARIANT$mp + 468 (queue.c:3820)
19  libdispatch.dylib               0x000000018a16c330 _dispatch_lane_serial_drain$VARIANT$mp + 300 (inline_internal.h:2528)
20  libdispatch.dylib               0x000000018a16ce88 _dispatch_lane_invoke$VARIANT$mp + 468 (queue.c:3820)
21  libdispatch.dylib               0x000000018a176340 _dispatch_workloop_worker_thread + 588 (queue.c:6386)
22  libsystem_pthread.dylib         0x000000018a20ffa4 _pthread_wqthread + 276 (pthread.c:2323)
23  libsystem_pthread.dylib         0x000000018a212ae0 start_wqthread + 8

更新到 iPadOS 13.2 后的堆栈,值得注意的是:PluginKit:

Thread 5 name:
Thread 5 Crashed:
0   libdyld.dylib                   0x00000001bc5505d0 dyld3::closure::ObjCStringTable::hash(char const*, unsigned long) const + 16 (Closure.cpp:1339)
1   libdyld.dylib                   0x00000001bc550be4 dyld3::closure::ObjCStringTable::getIndex(char const*) const + 52 (Closure.h:841)
2   libdyld.dylib                   0x00000001bc55097c dyld3::closure::ObjCStringTable::getPotentialTarget(char const*) const + 20 (Closure.h:825)
3   libdyld.dylib                   0x00000001bc550c50 dyld3::closure::ObjCClassDuplicatesOpt::getClassLocation(char const*, objc_opt::objc_opt_t const*... + 44 (Closure.cpp:1483)
4   libdyld.dylib                   0x00000001bc55d3cc dyld3::AllImages::forEachObjCClass(char const*, void (void*, bool, bool*) block_pointer) const + 72 (AllImages.cpp:1915)
5   libobjc.A.dylib                 0x00000001bc48fc28 getPreoptimizedClass + 148 (objc-opt.mm:279)
6   libobjc.A.dylib                 0x00000001bc47a7d8 getClassExceptSomeSwift(char const*) + 20 (objc-runtime-new.mm:1620)
7   libobjc.A.dylib                 0x00000001bc47b684 look_up_class + 100 (objc-runtime-new.mm:6880)
8   BaseBoard                       0x00000001bf30447c _BSXPCEncodeObjectForKey + 124 (BSXPCCoder.m:377)
9   BaseBoard                       0x00000001bf30428c -[BSXPCCoder encodeObject:forKey:] + 96 (BSXPCCoder.m:181)
10  RunningBoardServices            0x00000001bf29f604 __44+[RBSXPCMessage messageForMethod:arguments:]_block_invoke + 288 (RBSXPCUtilities.m:152)
11  RunningBoardServices            0x00000001bf29f35c +[RBSXPCMessage messageWithEncoder:] + 72 (RBSXPCUtilities.m:132)
12  RunningBoardServices            0x00000001bf29f408 +[RBSXPCMessage messageForMethod:arguments:] + 148 (RBSXPCUtilities.m:140)
13  RunningBoardServices            0x00000001bf29f788 +[RBSXPCMessage messageForMethod:varguments:] + 192 (RBSXPCUtilities.m:170)
14  RunningBoardServices            0x00000001bf28f234 -[RBSConnection _invalidateAssertionIdentifier:error:] + 144 (RBSConnection.m:1361)
15  RunningBoardServices            0x00000001bf28808c -[RBSConnection invalidateAssertion:error:] + 80 (RBSConnection.m:275)
16  RunningBoardServices            0x00000001bf28605c -[RBSAssertion _clientInvalidateWithError:] + 124 (RBSAssertion.m:317)
17  AssertionServices               0x00000001c0e6278c -[BKSAssertion _invalidateSynchronously:] + 104 (BKSAssertion.m:164)
18  AssertionServices               0x00000001c0e6718c -[BKSProcessAssertion invalidate] + 92 (BKSProcessAssertion.m:291)
19  Foundation                      0x00000001bcb2e624 ___NSExtensionTearDownRequestWithIdentifier_block_invoke_2 + 84 (NSExtension.m:1098)
20  PlugInKit                       0x00000001c9e6db4c -[PKHostPlugIn endUsing:] + 152 (PKHostPlugIn.m:814)
21  Foundation                      0x00000001bcb2d090 __64-[NSExtension _safelyEndUsingWithProcessAssertion:continuation:]_block_invoke + 116 (NSExtension.m:1670)
22  libdispatch.dylib               0x00000001bc418610 _dispatch_call_block_and_release + 24 (init.c:1408)
23  libdispatch.dylib               0x00000001bc419184 _dispatch_client_callout + 16 (object.m:495)
24  libdispatch.dylib               0x00000001bc3c5404 _dispatch_lane_serial_drain$VARIANT$mp + 608 (inline_internal.h:2484)
25  libdispatch.dylib               0x00000001bc3c5df8 _dispatch_lane_invoke$VARIANT$mp + 420 (queue.c:3863)
26  libdispatch.dylib               0x00000001bc3cf314 _dispatch_workloop_worker_thread + 588 (queue.c:6445)
27  libsystem_pthread.dylib         0x00000001bc468f98 _pthread_wqthread + 276 (pthread.c:2323)
28  libsystem_pthread.dylib         0x00000001bc46bad4 start_wqthread + 8

对于遇到这些问题的其他人,这里有一些其他相关链接:

https://forums.developer.apple.com/thread/123728 https://forums.developer.apple.com/thread/123728 https://forums.developer.apple.com/message/384064#384064 https://forums.developer.apple.com/message/384064#384064


dyld3 似乎将生成的 clojure 文件保存在 app tmp 目录中,如果您使用 NSFileProtectionComplete,则闭包文件也具有此属性。

要生成崩溃,请关闭应用程序,锁定手机,发送唤醒应用程序的推送,然后生成崩溃。

解决方案似乎很简单,只需将应用程序 tmp direcptry 的权限更改为 NSFileProtectionCompleteUntilFirstUserAuthentication,应用程序就不会崩溃。 我实在不明白苹果为什么要这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 iOS13/iPadOS 13 中使用 dylib 调试偶发的应用程序崩溃 的相关文章

  • 推送通知未注册到 iOS 13 上的应用程序

    我构建了我的应用程序并在其中放置了一个断点didRegisterForRemoteNotificationsWithDeviceToken但它没有被触发 它在其他版本的 iOS 上运行良好 这是 iOS 13 中的错误还是我错过了 iOS
  • XCode 4.2 + Iphone 3g 无法运行应用程序

    当我创建一个普通的 Phonegap 应用程序并尝试在装有 IOS 4 2 的 iPhone 3g 上运行它时 它无法运行 IOS 部署目标设置为 4 0 并且一切都构建成功 这一切都是在我使用 IOS SDK5 安装 XCode 4 2
  • 如何保证清理代码在 Windows C++ 中运行(SIGINT、错误分配和关闭窗口)

    我有一个 Windows C 控制台程序 如果我不调用ReleaseDriver 在我的程序结束时 某些硬件会进入错误状态 并且在不重新启动的情况下无法再次使用 我想确定一下ReleaseDriver 即使程序异常退出 例如如果我点击Ctr
  • window.resolveLocalFileSystemURL 与 window.requestFileSystem

    使用上有什么区别window resolveLocalFileSystemURL vs window requestFileSystem使用 cordova 文件插件下载文件时 我找不到有关resolveLocalFileSystemURL
  • 无法获取 Ripple 会话信息

    我使用 Visual Studio 2015 RC 创建了一个 Ionic Apache Cordova 应用程序 我在自己的解决方案文件中创建了它 并且可以使用 Ripple 运行它 现在我想将文件移动到与服务器应用程序相同的文件夹中 因
  • CordovaApp.Windows.jsproj(70,3):错误 MSB4019:导入的项目

    完整错误日志 C Users user Development Tutorials cordova tutorial hello platforms windows CordovaApp Windows jsproj 70 3 error
  • 关于使用 Ionic3 和 Hammer.JS 进行捏合缩放手势的独家新闻是什么?

    我需要能够在 Android 和 iOS 上进行捏合缩放以缩放字体大小 不仅仅是我在谷歌搜索时看到的众多示例中的常规图像 有人可以告诉我在 Ionic 3 中是否有一种简单的方法可以做到这一点吗 文档 https ionicframewor
  • iOS PhoneGap 调试工作流程

    如何在 Xcode 中调试 javascript 我可以做的一件事是在 OS X Chrome 浏览器中打开页面 但这自然不适用于涉及本机代码的应用程序流 我是否缺少一个聪明的 Xcode 技巧 随着 iOS 6 的发布 Apple 与 M
  • Phonegap 中使用 AJAX 的 CSRF 令牌

    我正在开发一个应用程序Phonegap使用 Django 后端 后端使用csrf 所以我需要我的Phonegap要使用的应用程序csrf所以它可以与Django 我读到你可以使用csrf通过Ajax 但我没能让它工作 您能举个例子告诉我我该
  • 分享一些东西到phonegap应用程序

    有什么方法可以注册phonegap应用程序以显示在要共享的应用程序菜单中吗 要出现在此列表中 您必须修改 AndroidManifest xml 文件并在您的 Activity 下添加以下行
  • 有没有办法覆盖 iOS 13 上下文菜单的(深色/浅色)用户界面风格?

    我的应用程序支持 iOS 13 深色模式 并为用户提供匹配系统外观或强制应用程序始终使用深色模式或浅色模式的选项 无论系统设置如何 该应用程序还允许在用户按下时显示上下文菜单UILabel 但是 当使用以下方式呈现上下文菜单时UIConte
  • 如何使用 PDB 文件

    我听说使用 PDB 文件可以帮助诊断崩溃发生的位置 My basic理解是你给 Visual Studio 源文件 pdb 文件和崩溃信息 来自 Dr Watson 有人可以解释一下这一切是如何运作的 涉及什么吗 谢谢你 PDB 文件将程序
  • Keycloak 重定向 URI 提供 https://localhost 而不是 http://localhost

    我正在尝试在 Keycloak 上验证 Cordova Android 应用程序 我之前提出过一个关于它的问题 但我在这里将其简化为仅提供要点 因为我在过去 2 3 天中发现了很多东西 Cordova Android 应用程序中的网页不可用
  • Phonegap从Java代码获取本地存储值?

    我已经使用phonegap在客户端保存了数据本地存储 http docs phonegap com en 1 2 0 phonegap storage storage md html现在我想用java代码访问保存的数据 这可能吗 我怎样才能
  • Android SDK 中缺少 Gradle(使用 cordova + ionic)

    是的 我搜索了这个 但没有搜索到任何内容 只是有关 ANDROID HOME 路径的信息 但就我而言 我认为这不是真正的问题 当我尝试做的时候ionic build android我收到这个错误 错误 在 android sdk 中找不到
  • Phonegap html5视频无法播放

    我正在尝试在 iPad 上的phonegap 应用程序中播放视频 该视频给了我错误 MEDIA ERR SRC NOT SUPPORTED 我尝试播放的视频不是本地的 当我在该视频上使用curl I 时 这是它带来的信息 HTTP 1 1
  • 设备收到 GCM Android 通知但未显示

    尽管通知已在应用程序本身中注册 但我的 Ionic Android 应用程序的 GCM Cloud 消息通知未出现在我的设备的主屏幕中 我正在使用 npm 模块node gcm https www npmjs com package nod
  • SwiftUI withAnimation 完成回调

    我有一个基于某种状态的 swiftUI 动画 withAnimation linear duration 0 1 self someState newState 上述动画完成时是否会触发任何回调 如果有关于如何在 SwiftUI 中使用完成
  • 使用 Adob​​e PhoneGap + Angular2 时不显示图像(图片和 src)

    我使用 cli 创建了一个全新的项目 我尝试添加一些图像标签 每个标签都有不同类型的来源 本地图片 网络图片 https来源图片 在浏览器上 这可以很好地呈现所有内容 但是当使用 Adob e PhoneGap 通过 PhoneGap 桌面
  • iOS 中的自动旋转崩溃

    当我更改设备方向时 我正在使用的应用程序出现异常终止 崩溃 我无法经常重现它 当我旋转时 它并不总是发生 假设机会约为 0 01 但这是一个严重的问题 我附上崩溃报告的重要部分 Exception Type EXC BAD ACCESS S

随机推荐

  • 根据查找表替换数据框中的值

    我在替换数据框中的值时遇到一些问题 我想根据单独的表替换值 下面是我正在尝试做的事情的一个例子 我有一张表 其中每一行都是客户 每一列都是他们购买的动物 我们称这个数据框为table gt table P1 P2 P3 1 cat liza
  • 无法将“cv::VideoCapture”转换为“CvCapture*”

    我有一个简单的程序 可以拍摄视频并播放它 尽管它对视频进行了一些图像处理 可以从对话框结果中检索视频 也可以直接通过给出文件路径来检索视频 当我使用CV CvCapture 捕获1 我得到像 capture1 isOpen 这样的属性 ca
  • RequireJS:如何将变量从一个文件传递到另一个文件?

    我将 require 与骨干 骨干形式一起使用 我目前正在使用 RequireJS 将代码分成多个文件 我将模型存储在单独的文件中 并希望单独保留表单验证器 但是 我无法访问一个文件以及依赖于该文件的另一个文件中定义的变量 我得到的是Unc
  • 如何国际化delphi应用程序[重复]

    这个问题在这里已经有答案了 可能的重复 翻译申请 https stackoverflow com questions 12311926 translate application 国际化用 delphi xe2 编写的应用程序的最佳方法是什
  • 执行长字传输到 CPU 需要多少个周期和大小

    该任务针对架构 ColdFire 处理器 MCF5271 我不明白执行到 CPU 的长字传输或字传输需要多少个周期以及什么大小的周期 我正在阅读图表 但不明白其中有何联系 非常感谢任何评论 我附上了两个例子和答案 数据总线大小 https
  • 从文件名获取目录名

    我有一个文件名 C folder foo txt 并且我需要检索文件夹名称 C folder 在 C 中 在 C 中我会做这样的事情 string folder new FileInfo C folder foo txt Directory
  • 在 RMarkdown 中的标题页后插入空白页

    我试图在我的 RMarkdown 文档 pdf 输出 的标题页和目录之间插入空白页 我遵循了所描述的建议here https stackoverflow com questions 28962651 inserting title page
  • 数组的随机打乱

    我需要随机洗牌以下数组 int solutionArray 1 2 3 4 5 6 6 5 4 3 2 1 有什么功能可以做到这一点吗 使用集合来打乱原始类型数组有点过分了 自己实现该功能非常简单 例如使用费舍尔 耶茨洗牌 http en
  • 如何在 Apache httpclient 中使用指数退避策略?

    The docs https hc apache org httpcomponents client dev httpclient cache apidocs org apache http impl client cache Expone
  • 即使我使用 Content-Disposition: inline,PHP 也会强制下载 PDF 文件

    如果可能的话 我正在尝试在浏览器中显示 PDF 而且我知道我可以在 Chrome 中执行此操作 这就是我正在测试的版本 问题是 每次我尝试时 它都会提示下载 我正在使用 PHP 会话 所以我知道发送了一些无关的标头 所以我调用header
  • 使用 System.IO.Ports.SerialPort 类打开串行端口时出错

    我正在尝试使用 System IO Ports SerialPort 类打开并读取串行端口 我将串行端口从工具窗格 Visual Studio 2008 拖到我的 Windows 窗体应用程序上 我已经设置了属性网格 因此我可以在运行时轻松
  • Flutter:如何防止设备方向改变并强制纵向?

    我想阻止我的应用程序改变其方向并强制布局坚持 纵向 在 main dart 中 我放置了 void main SystemChrome setPreferredOrientations DeviceOrientation portraitU
  • 如何在 JVM 上确定任意格式(JPEG、PNG 等)图像文件的尺寸?

    我想浏览一个目录并挑选出所有图像 然后根据它们的尺寸执行一些操作 有哪些库可供我执行此操作 我正在 Clojure 中工作 但 JVM 上可用的任何东西都是公平的 提前致谢 with open r java io FileInputStre
  • 释放 malloc 失败

    我有这样的东西 char temp xyz temp char malloc sizeof somestring xyz char malloc sizeof temp xyz strrchar temp temp does not con
  • 将图像上传到 firebase 实时数据库或存储?

    我正在尝试将图像与其他字符串和双精度数据类型一起上传到 firebase 我现在想到两个选项 一个是将图像 Url 上传到 firebase 实时数据库 当我检索它时 我将检索图像 Url 并将其转换为图像 另一种方法是将图像文件上传到 F
  • 子进程的奇怪行为

    我有一个关于子进程行为的问题 这个测试程序的目的是运行Linux命令echo Hello wc使用管道 我的命令不起作用 结果调用了错误的 c 字符串 预期输出是 command 0 echo command 1 wc 但是 我得到 com
  • Google Apps 脚本 - 处理多个谷歌帐户

    我有一个自定义表单 可以向数据库发出一些请求来验证用户 我注意到 如果我有一个谷歌帐户 它可以正常工作 但如果有多个帐户 就不行了 我注意到的另一件事是脚本不会抛出任何错误 它只是不会从自定义表单返回结果 这就是我的自定义表单的样子 div
  • JUnit 测试期间静态初始化程序不运行

    我这里有一个有趣的 JUnit 问题 JUnit 4 12 我有一个只有静态方法的基类 由于它们的使用方式 它们必须是静态的 我从基类继承了其他类 所以 如果基类是Base 我们有ChildA and ChildB 大多数方法都包含在基类中
  • 如何获取运行任务的队列 - celery

    我是新使用芹菜 有一个问题 我有这个简单的任务 app task name test install queue def test install queue return subprocess call exit 0 shell True
  • 在 iOS13/iPadOS 13 中使用 dylib 调试偶发的应用程序崩溃

    更新到 iOS 13 x iPadOS 13 x 后 我们发现最近的 Testflight 版本偶尔会发生崩溃 我们还没有看到使用我们 13 之前发布版本的用户的报告 但似乎还没有多少人更新到 13 所以我们真的不知道 该应用程序是一个带有