如何隐藏控制台所有CoreData及CoreData: CloudKit相关输出
隐藏CoreData与CoreData: CloudKit控制台日志的可行方案
不需要修改现有CoreData相关业务代码,可根据使用场景选择以下任意一种方案:
临时调试过滤(零配置,推荐开发阶段临时用)
直接在Xcode控制台底部的搜索过滤栏输入排除规则:-CoreData -"CoreData: CloudKit",规则前加-代表排除匹配对应关键词的日志,设置后当前调试会话内所有相关日志会被即时隐藏,不影响其他模块日志输出。全局无代码屏蔽
通过Xcode Scheme配置环境变量实现:- 打开Xcode顶部菜单
Product>Scheme>Edit Scheme - 选中
Run分类下的Arguments面板 - 在
Environment Variables区域点击+号新增条目,Name填OS_ACTIVITY_MODE,Value填disable
注意:该方案会屏蔽所有系统级框架的控制台输出,仅当你不需要看任何系统日志时使用。
- 打开Xcode顶部菜单
定向代码屏蔽(仅屏蔽CoreData/CloudKit相关日志,不影响其他系统日志)
在App启动入口(比如UIApplication的application(_:didFinishLaunchingWithOptions:)代理方法、SwiftUI App结构体的初始化方法)中添加以下代码,启动时执行一次即可全局生效:// 关闭CoreData标准错误日志输出 UserDefaults.standard.set(false, forKey: "com.apple.CoreData.Logging.stderr") // 关闭CoreData CloudKit相关日志输出 UserDefaults.standard.set(false, forKey: "com.apple.CoreData.CloudKitLogging.stderr") // 可选:关闭CoreData SQL语句调试日志 UserDefaults.standard.set(0, forKey: "com.apple.CoreData.SQLDebug")
相关日志示例参考:
内容的提问来源于stack exchange,提问作者Joe Scotto
相关产品推荐
相关产品推荐

