生产中的NSLog语句会发生什么?

Eas*_*y K 11 iphone objective-c ipad ios

当我们提交带有NSLog陈述的申请时,

这些陈述会产生什么影响?那些仍然会执行吗?如果执行,这些日志会作为应用程序日志/系统日志存储在某处吗?我们能看到那些吗?它是否与iTunesConnect中的Apple崩溃报告相关联?

请澄清我的疑虑.

Hus*_*bir 8

简短回答: -

  1. 是的,它在生产应用程序中执行
  2. NSLog只是登录到控制台,我不认为它存储在某个地方.
  3. 我们只能在控制台中看到.
  4. 当应用程序崩溃时,NSLog不会在崩溃提交报告中打印.

  • @downvoter,请在给予downvote之前纠正我 (3认同)

Lit*_*T.V 6

NSLog电话可以保留在生产代码中.它将记录在系统日志中.乱丢系统日志的应用程序很烦人,并且是一种不专业的方式.因此,尝试在日志记录中使用宏,以便您可以删除生产中的日志代码执行

#define DEBUG_MODE

#ifdef DEBUG_MODE
    #define DebugLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
    #define DebugLog( s, ... ) 
#endif
Run Code Online (Sandbox Code Playgroud)

  • 实际上,您应该有几个日志级别.记录生产中的警告和错误仍然有意义. (3认同)

lxz*_*zhh 5

NSLog语句将继续生效.您可以通过以下方式找到它们Shift + CMD + 2:

Xcode > Windows > Organizer

如果您已连接设备.检查控制台,您可以看到它们,以及使用该应用程序的其他人.

在此输入图像描述