在模拟器中调试 Apple Watch 应用的 iOS 部分

Posted

技术标签:

【中文标题】在模拟器中调试 Apple Watch 应用的 iOS 部分【英文标题】:Debugging the iOS part of Apple Watch app in the Simulator 【发布时间】:2017-07-26 16:09:03 【问题描述】:

几年前,我使用 watchOS 1 SDK 编写并调试了一个 Apple Watch 应用。我现在正在使用 watchOS 3 SDK 开发一个新的手表应用程序。

Watch App 部分可以调试。我可以设置断点并逐步完成。但是,我使用 WatchConnectivity 框架从 ios 应用程序中获取信息。这不起作用,我无法调试它。

当我在 Xcode 中运行 WatchApp 方案时,会启动两个模拟器,一个用于 iOS 应用程序,一个用于 WatchApp。我看到 WatchApp 启动但不是 iOS 应用程序。如果 iOS 之前正在运行,它似乎已被杀死。

我在应用程序上设置了一个断点:didFinishLaunchingWithOptions: 在 iOS 应用程序中,方法但是这个断点永远不会被命中。应该是吧。

我不记得几年前遇到过这些问题。

是否应该运行 WatchApp 方案自动启动 iOS 应用并允许对其进行调试?我的 didFinishLaunchingWithOptions: 断点应该被命中吗?

另一件有点奇怪且可能暗示的事情是 iOS 模拟器中的 External Displays 列表从不显示手表应用程序显示。我觉得应该。

我尝试过清理项目,重新启动 Xcode,甚至重新启动我的计算机。不开心。

【问题讨论】:

完全按照您正在做的事情启动手表方案,然后在 iOS sim 中手动启动您的应用程序,在 Xcode 中,转到调试(不是来自模拟器的菜单)并附加到进程 【参考方案1】:

不,iOS 和 WatchApp 有不同的目标,因此从 Xcode 运行一个不会自动启动另一个。

您必须以通常的方式使用 Xcode 启动其中一个应用程序,然后从其各自的模拟器手动启动另一个应用程序,而不是在 Xcode 中使用Debug>Attach to Process 在调试器中查看这两个应用程序。

【讨论】:

以上是关于在模拟器中调试 Apple Watch 应用的 iOS 部分的主要内容,如果未能解决你的问题,请参考以下文章

Apple Watch 应用程序未加载

在模拟器中运行 Apple Watch Glance 应用程序的问题

应用程序在模拟器中运行,但不在 Apple Watch 上

无法在 iOS 模拟器中运行我的 Apple Watch 应用程序

如何在 Apple Watch 模拟器中测试本地通知?

如何从 Apple Watch 检索 os_log 条目?