2017-10-30 12 views
0

クラッシュの理由を示すアラートボックスを作成する方法はありますか?具体的には、クラッシュの原因となっているコードは何行ですか?xcode - クラッシュの理由を示すアラート

私の上司がこれを求めていますが、これを可能にする方法はありませんでした。私はデバイスのanalyticsタブを見てクラッシュを見つけますが、クラッシュの理由を説明するデバイス(内部アプリ)に何かが存在することを望みます。

これは可能ですか?

+1

件まで範囲を希望するロガータイプを保持NSStringですクラッシュ! –

+0

IOSアプリはTestflight機能を内蔵しています。 Xcode->ウィンドウ - >オーガナイザ - >クラッシュで既にクラッシュレポートを取得することができます。また、アプリでFabricのCrashlyticsを追加したり、Webでクラッシュレポートを表示したりすることもできます。 –

+0

Ok ...私の上司が求めていることは不可能だと分かっています...「Appがクラッシュして情報を送信する」というアラートを開くことができました。それは本質的に私がすでに得ているものです。 私の上司に話すときに私に弾薬を与えてくれてありがとう! –

答えて

0

アプリがクラッシュしたときに警告を表示したい場合は、アプリをクラッシュさせることはできませんが、クラッシュ後にアプリを再度開いたときにクラッシュログを読むことができます。

次のロジックを使用してメソッドを作成できます。クラッシュ後にアプリケーションを再起動すると、基本的に最後のクラッシュのトレースが読み込まれます。

aslmsg q, m; 
    int i; 
    const char *key, *val; 
    float how_old = fTime ; 
    q = asl_new(ASL_TYPE_QUERY); 
    asl_set_query(q, ASL_KEY_LEVEL, strLoggerLevel ,ASL_QUERY_OP_LESS_EQUAL); 
    asl_set_query(q, ASL_KEY_FACILITY, [@"YourBundleIdOfAPP" UTF8String] ,ASL_QUERY_OP_EQUAL); 

    asl_set_query(q, ASL_KEY_TIME, [[NSString stringWithFormat:@"%.f", [[NSDate date] timeIntervalSince1970] - how_old] UTF8String], ASL_QUERY_OP_GREATER_EQUAL); 
    int goInside=0; 
    aslresponse r = asl_search(NULL, q); 
    while (NULL != (m = aslresponse_next(r))) 
    { 
     NSString *cValueToWrite; 
     NSMutableDictionary *tmpDict = [NSMutableDictionary dictionary]; 

     for (i = 0; (NULL != (key = asl_key(m, i))); i++) 
     { 
      //get the only required fields 
      if(i==12 || i==10 || i==11 || i==8 || i==9 ||i==3) 
      { 

       NSString *keyString = [NSString stringWithUTF8String:(char *)key]; 
       val = asl_get(m, key); 

       NSString *string = [NSString stringWithUTF8String:val]; 
       [tmpDict setObject:string forKey:keyString]; 
      } 
     } 

cValueToWrite=[[NSString alloc]initWithFormat:@"\n--------------[Debug]----------------\nDateTime: %@\nApplication: %@\nInfo: %@",[tmpDict valueForKey:@"CFLog Local Time"],[tmpDict valueForKey:@"Sender"],[tmpDict valueForKey:@"Message"]]; 
} 

strLoggerLevelあなたが前または後にポップアップを表示することができます方法はありません、アプリケーションがクラッシュしたとき、それはホーム画面に終了7

関連する問題