如何调试iOS应用扩展程序?

pgu*_*man 5 ios swift ios-app-extension ios-app-group ios-extensions

我正在尝试调试iOS应用扩展,我所能做的就是设置断点,但是能够打印到控制台会很好。

Xcode 9有可能吗?

或者至少在某处读取它,也许是一个文件?

我去了“设备和模拟器”中查看设备的日志,但是找不到我从iOS应用程序扩展中打印的内容。

Hon*_*ney 5

知道:

  • 在任何给定时间,您只能调试 1 个目标
  • 目标必须附加到 Xcode 的调试器
  • App Extension 是与其包含的应用程序(目标)不同的目标

解决方案:

转到 Xcode >> Debug >> Attach to process >> 然后选择您的 appExtension 目标

笔记:

如果您尝试调试由操作系统触发的扩展,那么您需要做一些事情以便操作系统触发它。只有这样,您才能将其附加到调试器。示例:如果您尝试调试“通知服务扩展”,那么只有在将iPhone 连接到 Mac 并发送推送通知以打开服务扩展后,您才会在目标列表中看到它。

FWIW 我也遇到了奇怪的问题,运行应用程序会在启动时崩溃。修复方法是从调试器中分离 appex 并启动普通应用程序,然后再次附加 appex。


相信,如果您也使用os.log它,无论如何也只会登录到控制台,但我对此并不是 100% 肯定。


pgu*_*man 4

我找到了一种方法,它并不完美,但至少我可以看到我现在打印的内容。我使用了 os_log("这就是我将看到的") 函数(你必须导入 os)

1-我在扩展方案中设置了一个环境变量 OS_ACTIVITY_MODE = 默认(不是禁用)

2-我在我的设备中运行构建我的应用程序

3-我将扩展附加到进程(我的应用程序)

4-您可以在控制台应用程序(打开/Applications/Utilities/Console.app)中查看日志,或打开Windows -> 设备和模拟器以查看设备控制台。

控制台应用程序选项是最好的。