ios - WatchKit 扩展崩溃

标签 ios xcode crash-reports apple-watch xcode-6.2

我为 Apple Watch 制作了一个应用程序,并已发布。今天,我收到了来自苹果的崩溃日志。据他们称,在 Apple Watch 上使用语音输入时,我的应用程序崩溃了。这是我的崩溃日志。有人有建议吗?我找不到我的应用程序崩溃的原因,因为我自己测试时它工作得很好

Incident Identifier: 623D5DE7-27F9-44CE-83B3-3101D29CA71A
CrashReporter Key:   3a62bf8f6b6b5aea51f9fa22b9df0f117f8e8a4b
Hardware Model:      xxx
Process:             awtrans WatchKit Extension [1038]
Path:                /private/var/mobile/Containers/Bundle/Application/654805BF-84CD-42E8-AAB6-A8E53384D632/awtrans.app/PlugIns/awtrans WatchKit Extension.appex/awtrans WatchKit Extension
Identifier:          com.prodict.awtrans.watchkitextension
Version:             4.0 (1.0)
Code Type:           ARM-64 (Native)
Parent Process:      launchd [1]

Date/Time:           2015-04-23 04:44:26.640 -0700
Launch Time:         2015-04-23 04:43:51.234 -0700
OS Version:          iOS 8.3 (12F70)
Report Version:      105

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread:  1

Last Exception Backtrace:
(0x1837b82d8 0x194fdc0e4 0x1837b8218 0x1846446f0 0x100036bd0 0x19562d994 0x19562d954 0x19563a780 0x19563bc4c 0x19580d22c 0x19580cef0)

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0:
0   libsystem_kernel.dylib          0x0000000195758e0c 0x195758000 + 3596
1   libsystem_kernel.dylib          0x0000000195758c84 0x195758000 + 3204
2   CoreFoundation                  0x000000018376f720 0x183690000 + 915232
3   CoreFoundation                  0x000000018376d674 0x183690000 + 906868
4   CoreFoundation                  0x00000001836992d0 0x183690000 + 37584
5   Foundation                      0x00000001845d14c4 0x1845c4000 + 54468
6   Foundation                      0x000000018462b80c 0x1845c4000 + 423948
7   libxpc.dylib                    0x00000001958401b0 0x195830000 + 65968
8   libxpc.dylib                    0x0000000195841f1c 0x195830000 + 73500
9   Foundation                      0x00000001847a2908 0x1845c4000 + 1960200
10  PlugInKit                       0x000000018f3ea80c 0x18f3dc000 + 59404
11  WatchKit                        0x0000000188c12248 0x188be8000 + 172616
12  libdyld.dylib                   0x000000019565aa04 0x195658000 + 10756

Thread 1 name:  Dispatch queue: com.apple.root.default-qos
Thread 1 Crashed:
0   libsystem_kernel.dylib          0x0000000195773270 0x195758000 + 111216
1   libsystem_pthread.dylib         0x000000019581116c 0x19580c000 + 20844
2   libsystem_c.dylib               0x00000001956eab14 0x195688000 + 404244
3   libc++abi.dylib                 0x00000001947a9414 0x1947a8000 + 5140
4   libc++abi.dylib                 0x00000001947c8b88 0x1947a8000 + 134024
5   libobjc.A.dylib                 0x0000000194fdc3bc 0x194fd4000 + 33724
6   libc++abi.dylib                 0x00000001947c5bb0 0x1947a8000 + 121776
7   libc++abi.dylib                 0x00000001947c5474 0x1947a8000 + 119924
8   libobjc.A.dylib                 0x0000000194fdc200 0x194fd4000 + 33280
9   CoreFoundation                  0x00000001837b8214 0x183690000 + 1212948
10  Foundation                      0x00000001846446ec 0x1845c4000 + 526060
11  awtrans WatchKit Extension      0x0000000100036bcc 0x10002c000 + 43980
12  libdispatch.dylib               0x000000019562d990 0x19562c000 + 6544
13  libdispatch.dylib               0x000000019562d950 0x19562c000 + 6480
14  libdispatch.dylib               0x000000019563a77c 0x19562c000 + 59260
15  libdispatch.dylib               0x000000019563bc48 0x19562c000 + 64584
16  libsystem_pthread.dylib         0x000000019580d228 0x19580c000 + 4648
17  libsystem_pthread.dylib         0x000000019580ceec 0x19580c000 + 3820

Thread 2 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 2:
0   libsystem_kernel.dylib          0x0000000195758c24 0x195758000 + 3108
1   libdispatch.dylib               0x000000019563de6c 0x19562c000 + 73324
2   libdispatch.dylib               0x000000019562f998 0x19562c000 + 14744

Thread 3:
0   libsystem_kernel.dylib          0x0000000195773c78 0x195758000 + 113784
1   libsystem_pthread.dylib         0x000000019580d2d8 0x19580c000 + 4824
2   libsystem_pthread.dylib         0x000000019580ceec 0x19580c000 + 3820

Thread 4 name:  com.apple.NSURLConnectionLoader
Thread 4:
0   libsystem_kernel.dylib          0x0000000195758e0c 0x195758000 + 3596
1   libsystem_kernel.dylib          0x0000000195758c84 0x195758000 + 3204
2   CoreFoundation                  0x000000018376f720 0x183690000 + 915232
3   CoreFoundation                  0x000000018376d674 0x183690000 + 906868
4   CoreFoundation                  0x00000001836992d0 0x183690000 + 37584
5   CFNetwork                       0x000000018317a890 0x1830dc000 + 649360
6   Foundation                      0x00000001846b9db4 0x1845c4000 + 1007028
7   libsystem_pthread.dylib         0x000000019580fdc4 0x19580c000 + 15812
8   libsystem_pthread.dylib         0x000000019580fd20 0x19580c000 + 15648
9   libsystem_pthread.dylib         0x000000019580cef4 0x19580c000 + 3828

Thread 5 name:  com.apple.CFSocket.private
Thread 5:
0   libsystem_kernel.dylib          0x0000000195773498 0x195758000 + 111768
1   CoreFoundation                  0x0000000183775124 0x183690000 + 938276
2   libsystem_pthread.dylib         0x000000019580fdc4 0x19580c000 + 15812
3   libsystem_pthread.dylib         0x000000019580fd20 0x19580c000 + 15648
4   libsystem_pthread.dylib         0x000000019580cef4 0x19580c000 + 3828

最佳答案

它的重要部分是您无法重现客户的步骤。例如,您的语音输入命令有效,他们的语音命令导致崩溃。但是,请注意,语音命令可能需要 iPhone 的帮助和网络调用回苹果来处理音频,因此一个关键的区别是它们所处的网络环境,以及它们看到的延迟。

您是否有任何代码在回调时执行操作 - 这些回调可能比您的测试环境晚或早出现,例如当语音命令完成并且文本可用时。

一种方法是尝试在代码中引入人为的时间延迟,并在回调进入时添加日志记录代码。也许可以从 Apple 成员(member)中心下载网络链接调节器开发工具(它允许在网络中引入延迟和错误)。

我注意到在电气嘈杂的环境中,我多次被(在本例中为 Darwin 通知)调用(可能是操作系统层重新发送)。因此,也值得查看您的数据协议(protocol)(如果有的话)。确保捕获延迟的消息和重复的消息(比如将随机 token 放入任何消息传递调用中)。

由于您的应用程序是在野外使用的,因此它的使用条件可能会有很大差异,具体取决于它的使用范围。因此,随着使用量的增长,模拟不良条件并添加代码/日志记录来处理杂散条件变得更加重要。

因为您的错误是 SIGABRT,这意味着系统知道您做错了它可以检测到的事情;这些通常是对已释放对象的调用方法或给定对象不支持的调用方法。它可能是一些标准错误,而不是您需要注意的异常情况。

关于ios - WatchKit 扩展崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29829038/

相关文章:

ios - Flutter:应用程序不是 x86_64。运行 lipo -info:,应用程序架构:arm64

java - Android 应用程序在启动时崩溃

ios - cocoapods 没有正确更新存储库

Android/iOS 指纹扫描仪用作身份验证

ios - 使用 React Native 进行 UI 测试。如何修复时间戳事件匹配错误 : Failed to find matching element

ios - 我如何读取 Apple 的崩溃日志

java - Firebase crashlytics 无法读取崩溃报告

ios - 如何在ios中更改svg图像的颜色?

ios - 正确使用 Alamofire 路由器

ios - 应用内购买?