获取使用TestFlight或者App Store发布的APP的崩溃日志

第一种方法:

第1步:检查是否支持报告

转至“ 支持的崩溃报告”,“ 支持的能源报告 ”或“ 支持的度量标准报告”,以检查目标类型,平台和Xcode版本是否支持报告。

第2步:使用TestFlight或通过App Store分发您的应用

要获取崩溃和能源报告,请使用TestFlight 分发应用程序或通过App Store分发应用程序。要获取指标报告,请通过App Store分发应用程序。

(可选)在将应用程序上载到App Store Connect时,包括符号(选择“上传应用程序的符号...” 分发选项)。保留您上传到App Store Connect的存档。如果不包含符号,则此存档包含表示崩溃和能量日志所需的符号信息。

第3步:在设备上,与开发人员共享崩溃数据和统计信息

TestFlight用户自动同意共享数据,但从App Store下载应用程序的用户需要同意与开发人员共享崩溃和使用数据。

第4步:在Xcode中,输入您的团队Apple ID

要下载报告,请添加Apple ID帐户。

在发布Apple应用程序后几天,以便收集日志并将其组织到报告中。为了提供准确的结果,Metrics组织者报告需要大量使用您的应用,并且每个指标都有不同的使用阈值。

详情请看官方文档https://help.apple.com/xcode/mac/current/#/dev861f46ea8

 

第二种方法:

在默认情况下,系统发生了未知异常,系统会捕获该异常并且退出app。发生异常后,系统会创建一个NSExcetion对象,并且在异常处抛出,等待有接受者,若没有传递给系统处理。那么如何来获取这个未知异常呢?该问题问的好!利用如下函数来解决这个问题:

FOUNDATION_EXPORT void NSSetUncaughtExceptionHandler(NSUncaughtExceptionHandler * _Nullable); 

该函数是一个全局的函数,该函数一般在app开始的时候调用,该函数的意义:设置未知异常的捕获函数,参数是未知异常处理函数的函数名,该未知异常处理函数的模式如下: 
 

typedef void NSUncaughtExceptionHandler(NSException *exception); 


未知异常处理函数的示例代码:

void uncaughtExceptionHandler(NSException *exception) {
   // 在app退出前的一些处理任务,系统会等待该函数的执行完毕 
   // NSLog(@“CRASH: %@“, exception);
   // NSLog(@“Stack Trace: %@“, [exception callStackSymbols]);
   // Internal error reporting 
}

调用方式:

NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); // 该函数可在任务未知调用。

完成上述的异常处理函数的定义和调用后,若再发生系统的未知异常的情况下,系统首先将异常传递个该函数,执行完该函数后app退出。因此,我们可以在这个函数内做一些业务处理,例如记录或者传递异常等

 

你可能感兴趣的:(IOS)