gpt4 book ai didi

objective-c - xcode-显示崩溃原因的警报

转载 作者:行者123 更新时间:2023-12-03 09:43:47 26 4
gpt4 key购买 nike

有没有一种方法来构建一个显示崩溃原因的警报框?具体来说,是哪一行代码导致崩溃?

我的老板要求这样做,但我还没有找到使之成为可能的方法。我正在浏览设备上的“分析”选项卡并找到崩溃,但是他希望在设备上填充一些东西(它是一个内部应用程序),以提供崩溃的原因。

这可能吗?

最佳答案

如果要在应用程序崩溃时显示警报,则不能执行此操作,但是可以在崩溃后再次打开应用程序时阅读崩溃日志。

您可以使用以下逻辑创建方法,当崩溃后再次打开应用程序时,它基本上会回读上次崩溃的跟踪。

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"]];
}
strLoggerLevelNSString,用于保存所需的记录器类型,范围最多为7

关于objective-c - xcode-显示崩溃原因的警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47019618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com