设置:
问题:在 iOS 模拟器中运行应用程序时,外部开发人员可以以纯文本形式查看源自我的框架的日志。
示例代码
private static let log = OSLog(subsystem: Constants.loggingSubsystem, category: String(describing: FrameworkName.self))
...
...
os_log("Network response: %@", log: Self.log, type: .debug, String(describing: response))
os_log("Network response data: %{private}@",
log: Self.log,
type: .debug,
String(data: data, encoding: .utf8)!)
预期输出:什么也没有,因为这两个调用都设置为
debug
,因此它们不应在发布版本中产生任何输出。
至少,第二次调用不应以纯文本形式显示网络响应数据。
观察到的输出:网络响应和数据以纯文本形式打印给外部开发人员。
解决方案是不使用 OSLog 并将其与 SwiftyBeaver 等解决方案一起使用https://github.com/SwiftyBeaver/SwiftyBeaver