首页 > 解决方案 > 是否可以在不使用崩溃报告工具、AppStore 等的情况下在 iOS 设备本身中获取崩溃日志

问题描述

我正在创建动态框架并提供给客户。我也没有将我的 .dsym 文件提供给任何人。并且客户端应用程序有崩溃报告收费,当发生崩溃时将查看堆栈跟踪并找到根本原因..这似乎工作正常。

但我想知道是否有可能我可以编写一些逻辑并从设备获取崩溃日志并将其存储在某个工具中..

崩溃日志究竟存储在设备(目录)中的什么位置?崩溃报告工具如何以及从何处崩溃?如果我在 SDK 中使用 Hockey 源代码,是否可以获得崩溃日志?

标签: ioscrashcrashlytics

解决方案


是的你可以。您可以在 AppDelegate.m 文件中添加此方法

-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:  
(NSDictionary*)launchOptions {   

    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); 
}

然后在同一个 AppDelegate 文件中创建一个方法,

void uncaughtExceptionHandler(NSException *exception) { 

    NSLog(@"CRASH: %@", exception);      
    NSLog(@"Stack Trace: %@", [exception callStackSymbols]);    
}

现在您有了来自uncaughtExceptionHandler方法的崩溃日志。您可以将其保存在您的目录中,以便下次用户打开您的应用程序时将它们发送到您的服务器。

希望能帮助到你。


推荐阅读