7

未処理の例外を追跡するために、testflight.com sdk と flurry.com sdk の両方を使用しています。問題は、testflight.com sdk を追加した後、flurry によって例外が検出されないことです。

未処理の例外が発生したときにトリガーされるメソッドは次のようになります。

void uncaughtExceptionHandler(NSException *exception) 
{
    [FlurryAnalytics logError:@"ERROR_NAME" message:@"ERROR_MESSAGE" exception:exception];
}

- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{    
    #if !TARGET_IPHONE_SIMULATOR
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);

    struct sigaction newSignalAction;
    memset(&newSignalAction, 0, sizeof(newSignalAction));
    newSignalAction.sa_handler = &signalHandler;
    sigaction(SIGABRT, &newSignalAction, NULL);
    sigaction(SIGILL, &newSignalAction, NULL);
    sigaction(SIGBUS, &newSignalAction, NULL);

    [FlurryAnalytics startSession:kFlurryKey];
    [TestFlight takeOff:kTestflightKey];    

    [[UIApplication sharedApplication]
     registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                     UIRemoteNotificationTypeSound |
                                     UIRemoteNotificationTypeAlert)];    
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;    
    #endif
    .
    .
    .

testflight.comがどのようにそれを行うのかわかりませんが、登録されたメソッドを実行させずに、例外をインターセプトしてデータを登録しているようです?

これらの両方が共存する方法はありますか?

4

3 に答える 3

4

これが既知の問題であることを Testflightapp.com チームから確認しました。彼らは、彼らが言った次のバージョンで修正することを望んでいます.

于 2012-02-29T12:14:42.317 に答える
0

これを直接テストすることはできませんが、TestFlight のドキュメントには次のように書かれているようです:

キャッチされない例外またはシグナル ハンドラを使用する場合は、takeOff を呼び出す前にハンドラをインストールしてください。SDK は、実行中にハンドラーを呼び出します。

彼らは、これを機能させるのに役立つサンプルコードも提供しています。

于 2012-02-21T14:26:48.840 に答える