项目调试过程中因遇到了 UMCCommon 版本兼容性导致程序 crash 必现的 bug 问题,解决后发现控制台中每逢操作便会打印 [Process] kill() returned unexpected error 1 信息
单从控制台打印的内容毫无头绪是何问题导致的,网上冲浪后发现有反应因 Mac 操作系统为 Catalina 导致的日志打印问题,也有反应因 macOS catalina 对使用 WKWebview 不友好而导致的该问题,具体问题还很灵异不确定仍有待验证(也望已有验证的伙伴可以分享一下具体原因,好奇心爆棚哈哈)
注:WKWebView 该项目中早已在使用,若其引起应早已在此之前就发现该问题(应该不是该控件的问题)
解决办法
首先,打开 Product => Scheme => Edit Scheme (即:command + <)
其次,在 Run => Arguments => Environment Variables 中设置 OS_ACTIVITY_MODE 为 disable
最后,重新编译运行项目即可
OS_ACTIVITY_MODE
该属性其作用为清除掉使用 NSLog 而打印信息的效果;
当真机调试时若使用到 NSLog 打印信息则日志将会全部屏蔽过滤掉;
在该模式下若需要打印信息则需要使用如下宏定义的方法打印信
//开发环境:打印 log 日志
//发布环境:不打印 log 日志
#ifdef DEBUG
#define NSLog(...) NSLog(@"%s 第%d行 \n %@\n\n",__func__,__LINE__,[NSString stringWithFormat:__VA_ARGS__])
//#define NSLog(FORMAT, ...) fprintf(stderr,"\n %s: 第%d行 %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String],__LINE__, [[[NSString alloc] initWithData:[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] dataUsingEncoding:NSUTF8StringEncoding] encoding:NSNonLossyASCIIStringEncoding] UTF8String]);
#else
#define NSLog(...)
#endif
以上便是此次分享的全部内容,希望能对大家有所帮助!