2012-05-25 10 views
11

クラッシュレポーターとしてTestFlightLiveを正常に使用していますが、いくつかの機能が欠けていると思います。これらの欠けている機能は別のクラッシュレポーター:Crashlyticsにありますが、今のところ私はクラッシュレポーターを完全に切り替えるつもりはありません。だから、これらの両方のクラッシュ記者を1つのアプリ(将来、アプリストアに入れることを意図している)で一緒に使うことが可能かどうかは疑問です。iOSで複数のクラッシュレポーターを使用

+0

これをチェックしてください。 :http://www.grahamdennis.me/blog/2012/10/21/how-to-disable-testflights-crash-handlers/ – HelmiB

答えて

17

私はTestFlightとCrashlyticsの両方を一緒に実行していますが、両方ともエラーが正常に報告されます。上記のJens Kohlのように、TestFlight SDKが初期化された後にそれを含める必要があります。ここに私のコードです:

#ifdef DEBUG 
    // setup testflight if in debug (ie dev) mode 
    [TestFlight takeOff:kTestFlightAPIKey]; 
#endif 

    [Crashlytics startWithAPIKey:kCrashlyticsAPIKey]; 
+1

注:これはこれら2つの組み合わせで動作します。複数のサードパーティクラッシュレポーターの組み合わせでは機能しません。いくつかのクラッシュレポートでは、キャッチされた例外やその他のクラッシュが別のインスタンスに転送されないため、他のレポートは何も役立たないことを報告しません。 – Kerni

+2

秒を待ちます。 TestFlightはDEBUG #ifdefにあるため、運用環境ではCrashlyticsしか使用していません。 – elsurudo

+0

これは、TestFlightがプロダクションで実行される前の状態です。 TestFlightを常に実行したいのであれば、それをifdefからアンラップするだけです。 –

3

1つのクラッシュレポートフレームワークしか使用できません。クラッシュをキャッチしているフレームワークは、すでにスレッドで新しいコードが実行されているため、他のフレームワークがキャッチしたり間違ったデータを取得したりすることがありません。

+1

Crashlyticsのサポートチームは、最後にクラッシュレポートツールキットと呼ばれる必要があり、 Crashlyticsと並んで別のクラッシュレポーターを使用するときは、これまで何の問題もありません。私はそれを試しても、それにもかかわらずありがとう。 –

+1

クラッシュレポーターは基本的にPLCrashReporterで、ほとんどのクラスの名前が変更されています。そして、PLCrashReporterは、すべてのデータが収集されると、アプリケーションをクラッシュさせます。だからそれが最後になる必要がある理由の1つです。しかし、それ以前に実行されたクラッシュレポーターの種類に応じて、Objective-Cコード自体は安全ではないだけでなく(http://landonf.bikemonkey.org/code/objc/Reliable_Crash_Reporting.20110912.html)、変更されますコールはクラッシュするスレッド上にスタックします。それはうまくいくかもしれませんが、それが一般的に動作するとは言えません。両方のレポートの結果は非常に異なる可能性があります。 – Kerni

関連する問題