如何在Share Extension中实现控制台打印输出?
Share Extension是独立于主App的进程,即便已附加到进程,控制台无输出通常是进程选择或日志过滤的问题,以下是具体解决步骤:
确认控制台选中正确进程
运行主App后,触发Share Extension(比如在模拟器中选择分享到你的应用),在Xcode顶部的调试进程下拉菜单中,找到你的Share Extension进程(名称一般是「主App名+ShareExtension」),选中该进程而非主App进程。检查日志过滤规则
Xcode控制台的漏斗图标(过滤按钮)不要设置过严的条件,比如不要仅显示「Error」或「Warning」级别;对于Logger日志,可以直接搜索你的subsystem(com.example.app)或category(main)来精准定位。调整日志级别(针对Logger)
默认log.log()属于info级别,若Xcode默认过滤了info日志,可显式指定级别:log.info("viewDidAppear") log.debug("didSelectPost") // 调试场景用debug级别也可以给Share Extension的Run Scheme添加启动参数
-oslog debug,强制显示低级别日志。重置调试环境
完全关闭模拟器(不是后台挂起),重启Xcode后重新运行主App,再触发Share Extension并附加进程,清除可能的缓存问题。
你的代码本身没有问题,重点是确保调试时控制台关联的是Share Extension进程,而非主App进程。
内容的提问来源于stack exchange,提问作者PurplePolyhedron
相关产品推荐
相关产品推荐

