首页 > 解决方案 > UIKitCore、CoreFoundation 等缺少 dSYM

问题描述

我试图象征 iOS 崩溃报告。我缺少 UIKitCore 和其他本机库的 dSYM。

该应用程序是使用 NativeScript 构建的。我已经成功地符号化了我的应用程序和 NativeScript 框架的框架。但是我似乎找不到一种方法来表示像 UIKitCore 这样的库框架,它们仍然显示为地址。我还尝试mdfind按照 Apple 文档搜索它们 - 它们不在我的 Mac 上。我也试过在网上寻找这些 dSYM,但没有运气。

这是我的崩溃日志的摘录:

Last Exception Backtrace:
0   CoreFoundation                  0x1cb5d927c 0x1cb4c1000 + 1147516
1   libobjc.A.dylib                 0x1ca7b39f8 0x1ca7ae000 + 23032
2   NativeScript                    0x10420fca0 NativeScript::reportFatalErrorBeforeShutdown(JSC::ExecState*, JSC::Exception*, bool) + 277664 (JSErrors.mm:189)
3   NativeScript                    0x104223354 NativeScript::FFICallback<NativeScript::ObjCBlockCallback>::ffiClosureCallback(ffi_cif*, void*, void**, void*) + 357204 (FFICallbackInlines.h:33)
4   NativeScript                    0x104cb9894 ffi_closure_SYSV_inner + 11458708 (ffi.c:1218)
5   NativeScript                    0x104cbc1b4 .Ldo_closure + 19
6   libdispatch.dylib               0x1cb018a38 0x1cafb9000 + 391736
7   libdispatch.dylib               0x1cb0197d4 0x1cafb9000 + 395220
8   libdispatch.dylib               0x1caff99e4 0x1cafb9000 + 264676
9   CoreFoundation                  0x1cb56ac1c 0x1cb4c1000 + 695324
10  CoreFoundation                  0x1cb565b54 0x1cb4c1000 + 674644
11  CoreFoundation                  0x1cb5650b0 0x1cb4c1000 + 671920
12  GraphicsServices                0x1cd76579c 0x1cd75b000 + 42908
13  UIKitCore                       0x1f7edf978 0x1f7623000 + 9161080
14  NativeScript                    0x104cbc044 ffi_call_SYSV + 67
15  NativeScript                    0x104cb8fb4 ffi_call_int + 11456436 (ffi.c:758)
16  NativeScript                    0x104cb8ab0 ffi_call + 11455152 (ffi.c:767)
17  NativeScript                    0x1041d4f90 NativeScript::FunctionWrapper::call(JSC::ExecState*) + 36752 (FunctionWrapper.mm:97)
18  NativeScript                    0x104cb7b58 llint_entry + 32567

我发现的许多文章都有带有 UIKitCore 符号的示例,所以我认为这与我的配置有关。

标签: iosxcodenativescriptdsym

解决方案


第 1 部分:安装符号

  1. 在崩溃报告中查看完整的 iOS 版本。它应该看起来像“iPhone OS 13.3 (17C54)”
  2. 有很多带有 iOS 符号或指向它们的链接的存储库。喜欢这个:https ://github.com/Zuikyo/iOS-System-Symbols/blob/master/collected-symbol-files.md
  3. 查找并下载您需要的符号。
  4. 将它们解压到 ~/Library/Developer/Xcode/iOS\ DeviceSupport
  5. 如果丢失,将 info.plist 添加到根文件夹(只需从其他符号复制并更改其版本值)

第 2 部分。使用 Xcode 的力量

  1. 连接任何真实设备,打开 Xcode,打开“设备和模拟器”窗口,单击“查看设备日志”,然后转到“所有日志”选项卡。
  2. 将崩溃拖放到表中。找到它。
  3. 如果系统符号未去符号化——请右键单击崩溃并选择“重新符号化崩溃”。
  4. 多次重复第 3 步(通常 2-3 次就足够了)——它需要时间来重新符号化它,但看起来 xcode 不会自动更新崩溃日志

是的,UIKitCore 是一个系统框架


推荐阅读