Ios 容器应用程序崩溃:需要Crashlytics提供更多信息

Ios 容器应用程序崩溃:需要Crashlytics提供更多信息,ios,crashlytics,google-fabric,Ios,Crashlytics,Google Fabric,与我合作的开发团队已经开发了一个容器应用程序,为客户的移动站点提供服务。我们可以看到容器应用程序在iOS 10上崩溃,但没有太多关于问题原因的信息。堆栈跟踪只指出Webkit和JS Core可能存在的问题: Crashed: com.apple.main-thread 0 WebKit 0x19673fddc API::Object::ref() + 2 1 WebKit 0x1968bb35c

与我合作的开发团队已经开发了一个容器应用程序,为客户的移动站点提供服务。我们可以看到容器应用程序在iOS 10上崩溃,但没有太多关于问题原因的信息。堆栈跟踪只指出Webkit和JS Core可能存在的问题:

Crashed: com.apple.main-thread
0  WebKit                         0x19673fddc API::Object::ref() + 2
1  WebKit                         0x1968bb35c WebKit::WebPageProxy::didStartProvisionalLoadForFrame(unsigned long long, unsigned long long, WTF::String const&, WTF::String const&, WebKit::UserData const&) + 192
2  WebKit                         0x1968d621c void IPC::handleMessage<Messages::WebPageProxy::DidStartProvisionalLoadForFrame, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, WTF::String const&, WebKit::UserData const&)>(IPC::MessageDecoder&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, WTF::String const&, WebKit::UserData const&)) + 100
3  WebKit                         0x1967941d0 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::MessageDecoder&) + 120
4  WebKit                         0x196917614 WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) + 32
5  WebKit                         0x19675d3e8 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >) + 160
6  WebKit                         0x19675fa00 IPC::Connection::dispatchOneMessage() + 204
7  JavaScriptCore                 0x191b4c834 WTF::RunLoop::performWork() + 172
8  JavaScriptCore                 0x191b4ca60 WTF::RunLoop::performWork(void*) + 36
9  CoreFoundation                 0x18d332b5c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
10 CoreFoundation                 0x18d3324a4 __CFRunLoopDoSources0 + 524
11 CoreFoundation                 0x18d3300a4 __CFRunLoopRun + 804
12 CoreFoundation                 0x18d25e2b8 CFRunLoopRunSpecific + 444
13 GraphicsServices               0x18ed12198 GSEventRunModal + 180
14 UIKit                          0x1932a57fc -[UIApplication _run] + 684
15 UIKit                          0x1932a0534 UIApplicationMain + 208
16 Betfred                        0x10005c250 main (main.m:16)
17 libdispatch.dylib              0x18c2415b8 (Missing)
崩溃:com.apple.main-thread
0 WebKit 0x19673fddc API::Object::ref()+2
1 WebKit 0x1968bb35c WebKit::WebPageProxy::didStartProvisionalLoadForFrame(无符号长、无符号长、WTF::字符串常量&,WTF::字符串常量&,WebKit::UserData常量&)+192
2 WebKit 0x1968d621c void IPC::handleMessage(IPC::MessageDecoder&,WebKit::WebPageProxy*,void(WebKit::WebPageProxy::*)(无符号长、无符号长、WTF::字符串常量&,WTF::字符串常量&,WebKit::用户数据常量&)+100
3 WebKit 0x1967941d0 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&,IPC::MessageDecoder&)+120
4 WebKit 0x196917614 WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&,IPC::MessageDecoder&)+32
5 WebKit 0x19675d3e8 IPC::Connection::dispatchMessage(std:_1::unique_ptr)+160
6 WebKit 0x19675fa00 IPC::Connection::dispatchOneMessage()+204
7 JavaScriptCore 0x191b4c834 WTF::RunLoop::performWork()+172
8 JavaScriptCore 0x191b4ca60 WTF::RunLoop::performWork(void*)+36
9 CoreFoundation 0x18d332b5c\uuu CFRUNLOOP\u正在调用\u OUT\u以执行\u函数\uuu+24
10 CoreFoundation 0x18d3324a4\uu CFRunLoopDoSources0+524
11 CoreFoundation 0x18d3300a4 _ucfrunlooprun+804
12 CoreFoundation 0x18d25e2b8 CFRUNLOOPTRUN特定+444
13图形服务0x18ed12198 GSEventRunModal+180
14 UIKit 0x1932a57fc-[UIU应用程序运行]+684
15 UIKit 0x1932a0534 UIApplicationMain+208
16 Betfred 0x10005c250干管(干管长度:16)
17 libdispatch.dylib 0x18c2415b8(缺失)
没有人能够让应用程序可靠地崩溃(包括24小时使用它的测试团队),据我们所知,移动站点没有问题

我被要求调查这个问题,但我有点不知所措,因为如果我不能一直让它破裂,我就无法诊断和修复它


我们有没有办法从Crashlytics获得更多关于这次车祸原因的信息?

Mike来自Fabric,像这样的车祸很难追踪。你需要发布一个新版本的应用程序,但是有三种不同的方式来获取更多信息

1) 添加,例如跟踪正在加载的页面或正在命中的端点,可以提供额外的上下文:

- (void)setObjectValue:(id)value forKey:(NSString *)key;

// calls -description on value, perfect for NSStrings!
- (void)setIntValue:(int)value forKey:(NSString *)key;

- (void)setBoolValue:(BOOL)value forKey:(NSString *)key;

- (void)setFloatValue:(float)value forKey:(NSString *)key;
2) 添加为面包屑的一种形式,以便更容易地再现用户在崩溃前所做的步骤:

CLS_LOG(@"User clicked on menu %@", attributesDict);
3) 加:


当所有其他方法都失败时,联系用户获取更多信息也有助于跟踪信息。

我们不得不选择在这里联系客户。由于应用程序是WebView,本地团队告诉我,我们不能使用选项1、2或3。
[CrashlyticsKit setUserIdentifier:@"123456789"];
[CrashlyticsKit setUserEmail:@"person@domain.com"];
[CrashlyticsKit setUserName:@"Awesome AppUser"];