2017-02-13 10 views
-4

Objective-Cのfirebaseのようなクラッシュレポーターを作成したいのですが、私のサーバーにシンボルファイルをアップロードする方法がわかりません。私に、クラッシュレポートを象徴するように助けてください。Objective-Cの独自のコードからクラッシュレポートのシンボルファイルをアップロードする方法

私はコードを書く方法を知らない。

+0

は[Crashlytics»はエラーをログに記録](https://docs.fabric.io/apple/crashlytics/logged-errors.html)あなたが達成しようとしている何のために有用であるかもしれません。 –

+0

私は** PLCrashReporter **を使用していますが、クラッシュログを取得できますが、**ファイル名**、**メソッド/ファンクション名**、**行番号**を取得したい場合は、クラッシュが発生しました。私はこれらの詳細を得る。 ** PLCrashReportTextFormatter **を使用した**シンボル化**クラッシュログもありますが、** crashReport **とは別にこれらの詳細が必要です** –

答えて

1

はdidFinishLaunchingWithOptions

NSSetUncaughtExceptionHandler(&uncaughtExceptionHandlingMethod); 

にこの行を追加し、このメソッドを追加します。これは例外からスタックトレースを取得し、txtファイルに書き込みます。

-(void) uncaughtExceptionHandler(NSException *exception){ 

NSLog(@"On uncaught Exception Handling method"); 
//NSString *content = [NSString stringWithFormat:@"%@",[exception callStackSymbols]]; 
//NSLog(@"Stack trace : %@",content); 

// To write the stack trace into txt file. 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"myowncrashreport.txt"]; 
NSString *content = [NSString stringWithFormat:@"%@",[exception callStackSymbols]]; 
[content writeToFile:logPath atomically:YES encoding:NSASCIIStringEncoding error:nil]; 
freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr); 
} 
+0

** PLCrashReporter **を使用しています。クラッシュログを取得できますが、 **ファイル名**、**メソッド/ファンクション名**、**行番号**クラッシュが発生しました。これらの詳細はどのように取得できますか? ** PLCrashReportTextFormatter **を使用した**象徴的な**クラッシュログもありましたが、これらの詳細を** crashReport **とは別にしておきます。 –

+0

Ashraf、NSLog(@ "Line:%d、Method:%s"、LINE、 __関数__);この行を試して、例外から行番号とメソッド名を取得してください。 Try catchブロックで動作します。 – Prabakaran

関連する問題