如何在 iOS 中向服务器报告错误和崩溃

How to report error and crashes to a server in iOS

我正在开发一个 iOS 7 及更高版本的应用程序,我想知道一旦它在 App Store 中可用,我该如何报告应用程序的错误和崩溃,而无需整合任何第三方来做到这一点。

我需要报告服务器可能发生的错误,所以我考虑将我感兴趣的报告错误(例如,从服务获取数据失败)保存在一个文件中,然后发送在特定时刻将文件发送到服务器。我不知道这是不是一个好方法,如果是:

1) 我是否应该明确请求用户允许应用报告错误? (警报视图)

2) 可以随时发送带有错误日志的文件,还是应该由用户要求应用程序发送?

有更好的方法吗?另一方面,关于应用程序崩溃:是否也可以将它们保存在文件中?

提前致谢

像 Crashlytics 这样的第三方库可以做所有的好工作,很多人更喜欢它,但如果你坚持你可以让你自己的服务发送包含崩溃详细信息的文件。

以下函数会将崩溃详细信息记录到控制台;

void uncaughtExceptionHandler(NSException *exception) {    
    NSLog(@"CRASH: %@", exception);      
    NSLog(@"Stack Trace: %@", [exception callStackSymbols]);    
    // Internal error reporting
}

然后您可以访问控制台日志并将此数据写入文件。

可以找到更详尽和具体的解决方案 here