当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]);
}
我哪里出错了?或者有更好的方法吗?
答案 0 :(得分:3)
我可以看到两个问题:
testFlightHandleExceptions
将在崩溃之后被称为,并记录它的日志。相反,每次登录时(崩溃前)都需要在TFLog
内调用LogManager
。这就是它的用法。
在信号处理程序中使用objc
不确定。就此而言,大多数c
甚至都不被允许。
希望有所帮助:)
杰森