【问题标题】:TestFlight TFLog not uploading when there is a crash发生崩溃时无法上传TestFlight TFLog
【发布时间】:2013-03-27 23:44:05
【问题描述】:

当 TestFlight 崩溃时,我希望上传一个日志及其崩溃报告。

按照他们网站上的说明,我想出了这个解决方案,但它似乎没有将我传递给 TFLog 的日志发送。但是它报告崩溃就好了。

-(void)applicationDidFinishLaunching:(UIApplication *)application {

    /*Setup crash handlers for TestFlight so we can send logs. */
    NSSetUncaughtExceptionHandler(&testFlightHandleExceptions);
    // create the signal action structure
    struct sigaction newSignalAction;
    // initialize the signal action structure
    memset(&newSignalAction, 0, sizeof(newSignalAction));
    // set SignalHandler as the handler in the signal action structure
    newSignalAction.sa_handler = &testFlightSignalHandler;
    // set SignalHandler as the handlers for SIGABRT, SIGILL and SIGBUS
    sigaction(SIGABRT, &newSignalAction, NULL);
    sigaction(SIGILL, &newSignalAction, NULL);
    sigaction(SIGBUS, &newSignalAction, NULL);
    [TestFlight takeOff:TESTFLIGHT_API_KEY];
}

void testFlightHandleExceptions(NSException *exception) {
    [LogManager e: @"Sending crash to TestFlight" Tag:@"AppDelegate"];
    TFLog(@"%@",[LogManager getLog]);
}

我哪里做错了?或者有没有更好的方法来做到这一点?

【问题讨论】:

    标签: iphone ios crash testflight


    【解决方案1】:

    我可以看到两个问题:

    1. testFlightHandleExceptions 将在崩溃后被调用,并记录它的日志。相反,您需要在每次记录某些内容时(在崩溃之前)在 LogManager 内调用 TFLog。这就是它的用途。

    2. 在信号处理程序中使用objc 是不可以的。就此而言,大多数c 甚至都不允许使用。

    希望有帮助:)

    杰森

    【讨论】:

    • 啊混蛋。我不想一直使用 TFLog,因为我想控制控制台上打印的内容。还有其他方法可以上传崩溃日志吗? Hockey 有一个“crashReportDescription”委托,TestFlight 有类似的东西吗?
    • 您可以关闭TFLog打印到控制台。这会有帮助吗?
    • 是的,这就是我所做的,谢谢 :) 也许 TestFlight 将来可以改进。
    • 很好奇。你想改变什么?您不想在记录时调用 TFLog,而是希望在崩溃时将整个日志提供给 TestFlight?
    • 我会更新自述文件 :) 我们这样做的主要原因之一是我们在崩溃时上传崩溃,那时做太多事情已经太晚了。 HockeyApp 等到下次应用打开时才获取日志并上传崩溃。
    猜你喜欢
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多