iOS WatchOS-WatchKit App和WatchKit App extension之间有什么区别?

Ale*_*one 4 apple-watch watchkit apple-watch-complication watchconnectivity watchos-5

我正在尝试创建一个iOS WatchOS5并发症,并看到了许多教程和Apple文档。他们谈论:

  • WatchKit应用
  • WatchKit App扩展

iOS WatchKit App和WatchKit App Extension有什么区别?

如果我想在手机应用程序和手表应用程序之间共享数据,是否需要同时使用手表连接框架?

Dáv*_*tor 5

两者是相辅相成的,两者都是创建watchOS应用程序所必需的,如果没有另一个,则无法使用。

主要区别在于WatchKit App负责显示UI,因此您可以在其中存储情节提要和情节提要中使用的所有资产(图像等)。另一方面,您的WatchKit App Extension负责以编程方式完成的所有工作,因此这是您所有接口控制器和其他类都应驻留的位置。您还应该将通过代码访问的所有资产存储在App Extension目标中。

您需要将WatchConnectivity代码框架用作App Extension目标的一部分,但是,如上所述,所有watchOS应用程序也都需要有一个WatchKit App目标。

  • @MarekKondracki 如果您使用 SwiftUI,那就对了,如果您使用故事板,这些应该进入应用程序。 (2认同)
  • @cheesus 很可能是出于历史原因,自从 watchOS 1 以来,手表应用程序无法执行太多逻辑,几乎所有数据都必须从连接的 iOS 应用程序发送,准备在手表上显示。是的,这两个目标都是在手表上执行的。 (2认同)
  • @Martin 感谢您指出这一点,事实上 Xcode14 引入了一个新的 watchOS 应用程序模板,我已经更新了我的答案以反映这一变化 (2认同)