IOS / Xcode:在2018年抑制NSLog语句发布

时间:2018-04-29 11:16:00

标签: ios xcode nslog

由于NSLog语句会降低应用程序的速度,因此建议在发布之前将其删除。回溯到2010年的一些older answers on SO建议将一些代码放在pch文件中,例如:

#ifndef DEBUG
   #define NSLog(...);
#endif

但是,Xcode不再自动创建pch文件。我收集它可以手动创建一个pch文件,但这似乎有点像kludge。手动创建一个pch文件并将上面的代码添加到它仍然是在发布之前注释掉NSLog语句的推荐方法,还是有更现代的方法?

2 个答案:

答案 0 :(得分:2)

我发现的所有旧答案(包括添加PCH文件)都不适用于Swift。这终于对我有用:

  1. 通过在构建设置的“其他Swift标记” 中添加“-D DEBUG” 来定义DEBUG标志。
  2. 添加以下全局代码(我只是将其放在名为Globals.swift的文件中):
#if !DEBUG
public func NSLog(_ format: String, _ args: CVarArg...) {
}    

public func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {
}
#endif

答案 1 :(得分:1)

仍然可以创建预编译的标头,但是不鼓励这样做,至少在默认情况下是这样。为此,请编辑目标的构建设置,并定义前缀头的路径。

Prefix Header

使用记录库

也许您可以使用日志库,例如CocoaLumberJack,或here是一个非常简单的日志库,但它仍能正常运行。