【发布时间】:2019-11-01 14:52:40
【问题描述】:
我最近更新了一个稳定的应用程序,该应用程序已在商店中使用了一年多,下载量已超过一千次。最后更新于 6 月 19 日。一切都好。 本周,我在 App Delegate 中的 Flurry 启动中添加了一个唯一的 UserID,并在各种视图控制器中添加了一些额外的 Flurry 事件调用,以帮助跟踪罕见的崩溃(可能一年报告 3 次崩溃)。应用程序在各种设备上的 Xcode Sim 中运行良好,并且在我的真实硬件中在调试和不受限制的情况下运行。 GIT 比较确认代码库或 XIB 等没有其他更改。上次在 Xcode 10.x 上为 AppStore 编译,现在是 11.1
App Store 审核失败并在启动时崩溃,他们尝试了 3 次并发送了崩溃日志。我删除了一些模块(但还没有 AppDelegate 中的 UserID)并重新提交:结果相同。我第一次在崩溃报告中发送它说他们在第三代 iPad 上进行了测试,所以我让他们第二次在 iPhone 上尝试,下一组崩溃报告的设备代码为 XXX!他们运行 13.1.2,我在 13.1.3 和 12.1.4 上测试都可以
这是问题 1)我看不到如何符号化崩溃报告。为此,Xcode 需要应用程序的二进制文件和 dSYM(我有这些),我没有 Flurry dSYM 和运行测试的硬件/操作系统的操作系统符号。我没有第三代 iPad (iPad11,3) 来插入并获取 Xcode 的符号。在这种情况下是否有替代符号化的途径。
2) 我不确定这些符号在这里是否有帮助,因为在从我的 Main 调用之后,看起来崩溃在 iOS 框架中很深(可能是 abi,见下文)。我知道当故事板有缺陷时经常会发生这类启动崩溃,但我看不到一个,并且该应用程序在新旧手机和旧 iPad 上本地运行良好。当我无法复制崩溃时(除了删除 Flurry 设置的 UserID!(我的下一个盲点!)),我的下一步是什么?
更新:我现在已将应用程序中的所有更改恢复到应用程序商店中的最后一个稳定版本(除了一个错误修复,我需要为使用旧 iOS 的用户发布 KVO Observer)。已恢复的应用程序仍未通过 App Store 审核!唯一的差异是在故事板中,一堆 Rect 的大小不同,因为上次打开的 IB 设备与上次提交时 repo 中的最后一个设备不同。应用在本地模拟和本地硬件上运行良好,但在 App Store 审核中启动时仍然崩溃。
{"app_name":"QueensDB","timestamp":"2019-10-30 15:28:10.12 -0700","app_version":"1.7","slice_uuid":"2133ecf9-943d-380e-9d2b-eb881e02a76f","adam_id":1369301260,"build_version":"2","share_with_app_devs":true,"is_first_party":false,"bug_type":"109","os_version":"iPhone OS 13.1.2 (17A860)","incident_id":"BB1B0B65-66BF-40B7-9017-7F8B14B57F58","name":"QueensDB"}
Incident Identifier: BB1B0B65-66BF-40B7-9017-7F8B14B57F58
CrashReporter Key: 1f7448b682620a373ff01cf8ae95a9238488a987
Hardware Model: iPad11,3
Process: QueensDB [90772]
Version: 2 (1.7)
AppStoreTools: 11A1002b
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Date/Time: 2019-10-30 15:28:09.6488 -0700
Launch Time: 2019-10-30 15:28:09.5818 -0700
OS Version: iPhone OS 13.1.2 (17A860)
Release Type: User
Baseband Version: n/a
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0
Application Specific Information:
abort() called
Last Exception Backtrace:
(0x184f6bc30 0x184c860c8 0x184e5b3ac 0x18897c810 0x18897cb2c 0x18855b700 0x18855b934 0x1884f6428 0x1889c59bc 0x1049975b8 0x104993ab4 0x188c935d8 0x18855b700 0x18855b934 0x1884f6428 0x188c928cc 0x1889c5b74 0x188920b94 0x188c935d8 0x18855b700 0x1884f6428 0x188c97784 0x18855b700 0x18855b934 0x1884f6428 0x188c926b0 0x188c952e8 0x18915a7d0 0x18915a660 0x1890007c4 0x189000d3c 0x188fff46c 0x1887a7710 0x188c537e8 0x1887a8248 0x1887a7c78 0x1887a8064 0x1887a78e8 0x1887ac098 0x188c6d214 0x188b80e90 0x188c6d1cc 0x1887abdb0 0x188c6d0b4 0x1887abc0c 0x188617630 0x1886160f4 0x188617360 0x188ffd91c 0x188ba2d7c 0x18a0d5014 0x18a0fbbd0 0x18a0e00f8 0x18a0fb864 0x184c1300c 0x184c15d50 0x18a122384 0x18a122030 0x18a12259c 0x184ee7260 0x184ee71b4 0x184ee6920 0x184ee17ec 0x184ee1098 0x18f04b534 0x1890017ac 0x10494a1c8 0x184d60f30)
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x0000000184d56ef4 0x184d31000 + 155380
1 libsystem_pthread.dylib 0x0000000184c77d1c 0x184c75000 + 11548
2 libsystem_c.dylib 0x0000000184c07a54 0x184b91000 + 485972
3 libc++abi.dylib 0x0000000184d1e3c8 0x184d1d000 + 5064
4 libc++abi.dylib 0x0000000184d1e5c0 0x184d1d000 + 5568
5 libobjc.A.dylib 0x0000000184c863a8 0x184c80000 + 25512
6 libc++abi.dylib 0x0000000184d2b634 0x184d1d000 + 58932
7 libc++abi.dylib 0x0000000184d2b5c0 0x184d1d000 + 58816
8 libdispatch.dylib 0x0000000184c13020 0x184c10000 + 12320
9 libdispatch.dylib 0x0000000184c15d50 0x184c10000 + 23888
10 FrontBoardServices 0x000000018a122384 0x18a0c8000 + 369540
11 FrontBoardServices 0x000000018a122030 0x18a0c8000 + 368688
12 FrontBoardServices 0x000000018a12259c 0x18a0c8000 + 370076
13 CoreFoundation 0x0000000184ee7260 0x184e39000 + 713312
14 CoreFoundation 0x0000000184ee71b4 0x184e39000 + 713140
15 CoreFoundation 0x0000000184ee6920 0x184e39000 + 710944
16 CoreFoundation 0x0000000184ee17ec 0x184e39000 + 690156
17 CoreFoundation 0x0000000184ee1098 0x184e39000 + 688280
18 GraphicsServices 0x000000018f04b534 0x18f048000 + 13620
19 UIKitCore 0x00000001890017ac 0x1885d1000 + 10684332
20 QueensDB 0x000000010494a1c8 0x104944000 + 25032
21 libdyld.dylib 0x0000000184d60f30 0x184d60000 + 3888
【问题讨论】:
-
您至少应该能够符号化应用程序中的堆栈帧 20。您是否尝试过 TestFlight 构建?
-
@Paul,感谢您的回复!尽管从商店下载崩溃报告,从网站提取实际报告,添加正确的文件扩展名,将其拖到正确的管理器视图窗格,并使用符号下拉列表,Xcode 没有做任何事情。但是,要寻址堆栈帧 20,它必须是“Main”。您在主线程的几乎每个堆栈跟踪中都会看到相同的模式。 “主要”并没有让我了解问题可能在发布中出现在哪里。我打算从 AppDelegate 中删除 USERID 内容并使用今天发布的 Xcode 11.2 进行重建。