在Xcode的调试版本中,无论我使用的是模拟器还是实际设备,控制台上都会出现NSLog、printf、fprintf assert和NSAssert语句

如果我现在在设备上运行一个发布版本(比如我发送了一个试飞版本,并在iPhone上放大它;这将是一个发布版本),会记录哪些版本(如果有的话)?

我如何检索日志(log)呢?

NSLog在发布版本时真的会输出什么吗?决定因素是什么?是写入stdout还是stderr?是否仅将stderr写入设备日志(log)?这是否意味着我必须使用fprintf?是否将任何内容写入设备日志(log)?真的有这样的事吗?如果是的话,怎么取呢?

有人能澄清一下情况吗?

推荐答案

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];
NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);

只需将这段挡路代码添加到APP委托文件中,它就会在iPhone上的APP文档目录中创建一个日志(log)文件,记录所有控制台日志(log)事件.您需要从iTunes导入此文件才能查看所有控制台事件.

注意:在.plist文件中,确保存在Application supports iTunes file sharing,并将其设置为YES,以便您可以通过iTunes访问.

要获取日志(log)文件:

Ios相关问答推荐

如何调整包含extView的UICollectionViewListCell的大小?

如何在PINCH上添加UITextfield以zoom 图像

通过拖动更改视图位置的SwiftUI会引发UI错误

以编程方式更改VC&39;S导航栏按钮的属性,以响应另一个VC中的按钮按下

在滚动视图中固定页眉,但在页眉上方嵌入元素

分配给指针会通过 class_addMethod 导致 EXC_BAD_ACCESS

BezierPath 中绘制图像形状轮廓的算法(Canny 边缘检测器)

使用 Objective-C 创建 iOS 框架

如何在SwiftUI中实现淡入淡出加粘标题屏幕效果

圆角矩形路径上的蛇形动画

在 Swift 中,对象如何被准确地从内存中移除?

ITMS-90725 无用的错误信息,因为它自相矛盾,苹果上传

如何使用 pushViewController 从 UIHostingController 的 SwiftUI 视图中推送 ViewController?

SwiftUI - TextField - 在焦点上清除 Double 类型的值,在取消 Select 时恢复

Flutter firebase_auth 中的无效应用程序凭据/令牌不匹配

Flutter iOS 构建失败并在 ios/Runner/AppDelegate.swift 中出现多个错误

从父母到子元素的 Swift Pass 事件

通过 tuist/XcodeProj 以编程方式将文件添加到本机目标

UIButton在iOS7中没有显示突出显示

检测应用程序何时进入我的视图背景的最佳方法是什么?