是否应在iTunes的最终应用中删除所有NSLog()调用?
在我的iOS应用程序中,我有很多用于调试的NSLog()。 我应该在上传到iTunes之前有条件地将它们编码吗?
适用于以下应用:iPhone,iPod,iPad
感谢。
答案 0 :(得分:7)
我将在标题中回答OP的问题,了解日志在设备上的存储位置。 NSLog()使用ASL(Apple System Logger)。以编程方式,您只能读取最后256个条目(例如,Xcode在管理器中显示的内容)。
但是,如果要访问完整文件,它们将存储在:
中/private/var/log/DiagnosticMessages
当您查看该目录(注意:设备必须是Jailbroken)时,您将找到一长串* .asl文件。
我找到了一个解析这些文件的工具,但我还没有尝试过,所以YMMV:
答案 1 :(得分:6)
您不必删除所有这些内容;事实上,如果您的应用程序在用户的手机上崩溃并且您希望他们向您发送崩溃日志,它们会非常有用。当用户同步他/她的手机时,崩溃日志位于文件夹
中~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME>
如果你有NSLog()
,你可能会像调试时那样获得有用的信息。正如其他人指出的那样,不要过度,但它们最终可能会有用。
答案 2 :(得分:3)
是的,我们应该在上传到iTunes之前删除所有NSLog()调用。这样做主要是为了获得更好的性能。
即使你不删除它们,也没问题。它将被批准。但是,如果你有很多NSLog()s,那将是def。影响表现。
答案 3 :(得分:3)
尝试将此用于NSLog:
#define DEBUG
#ifdef DEBUG
NSLog(@"Your tests outputs");
#endif
答案 4 :(得分:1)
不是全部。您应该保留错误日志。这样可以轻松找到是否有任何错误或崩溃。 也可以使用管理器查看NSLog消息。
答案 5 :(得分:-2)
如果他们针对DEBUG模式添加了NSLog,则不需要删除它们。因此,即使您的应用程序崩溃并且它包含用户个人数据,它也会被ios删除。所以不要担心用户数据和NSLog。参考https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AnalyzingCrashReports/AnalyzingCrashReports.html 如果您愿意,仍然可以在您的应用程序中使用此PJiOSAppConsole。它只会将日志保留在您的应用程序中。您可以在运行时通过在#ifdef中添加片段来使用它,然后在您想要生效时删除。易于集成和使用。