os_log 调试在分发框架时对外部开发人员可见

问题描述 投票:0回答:1

设置:

  • 构建作业在发布配置中生成框架
  • 框架被打包成XCFramework
  • XCFramework 分发给外部开发人员,后者将其与他们的应用程序集成。

问题:在 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
,因此它们不应在发布版本中产生任何输出。

至少,第二次调用不应以纯文本形式显示网络响应数据。

观察到的输出:网络响应和数据以纯文本形式打印给外部开发人员。

ios swift logging xcframework oslog
1个回答
0
投票

解决方案是不使用 OSLog 并将其与 SwiftyBeaver 等解决方案一起使用https://github.com/SwiftyBeaver/SwiftyBeaver

© www.soinside.com 2019 - 2024. All rights reserved.