从应用程序扩展打印到控制台

Posted

技术标签:

【中文标题】从应用程序扩展打印到控制台【英文标题】:Print to console from application extension 【发布时间】:2014-06-29 21:30:29 【问题描述】:

我一直在使用 ios 8 中新的自定义键盘应用程序扩展 API,并使用 Swift 作为我选择的语言。然而,我注意到的一件事是println 似乎从来没有将任何输出打印到控制台,大概是因为这些语句是在应用程序扩展而不是包含应用程序中执行的。有没有人找到从应用程序扩展中将语句打印到控制台的方法?

【问题讨论】:

不确定是否来自扩展,但您始终可以尝试良好的老式 NSLog 或在 Xcode 中创建日志记录断点。 How to debug iOS 8 extensions with NSLog? 的可能重复项 我在这里也遇到了麻烦,即使使用 NSLog。我可以使用模拟器上的调试器单步执行我的扩展,但控制台上不会显示任何 NSLog 消息。我也尝试过运行扩展,然后将调试器连接到扩展进程,但控制台上仍然没有。 【参考方案1】:

您最可靠的选择是使用NSLog 进行调试,但println 在这种情况下实际上可能有效。您只需要将 Xcode 调试器附加到扩展本身。

根据我的经验,这是一个相当有问题的过程。 This answer 有更多关于这个主题的信息。简而言之,您需要将“运行”下拉菜单中的目标更改为您的扩展程序,然后单击“运行”后,您应该会得到一个可以运行它的内容列表in

【讨论】:

【参考方案2】:

从 iOS 10 开始,默认情况下扩展程序不会登录到控制台。为您的扩展启用控制台日志记录:

在 Xcode 目标弹出窗口中选择您的扩展目标 选择产品菜单 > 方案 > 编辑方案(或 Cmd 在环境变量下的运行阶段,添加name:OS_ACTIVITY_MODE value:disable

【讨论】:

对我不起作用,我仍然看不到打印或 NSLog。您能否告诉我可能需要打开哪些其他选项?

以上是关于从应用程序扩展打印到控制台的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Windows 上的 c++ 控制台应用程序打印 UTF-8

有没有办法在 Android 应用程序中打印到控制台?

从控制台 C++ 获取打印的语句

从 Flutter 记录大字符串

xCode 6 - 从模拟器中运行的应用程序查看控制台

你可以在插件中运行 XPC 服务吗? (例如,打印对话框扩展插件)