为什么Xcode会为手表应用创建两个目标?

时间:2016-02-14 09:31:19

标签: xcode xcode7 watchkit apple-watch watch-os-2

我是WatchKit的新手,我想为现有的iOS应用开发Watch扩展程序。我之前在同一个项目中开发了一个Share扩展,所以我对扩展目标如何嵌入到应用程序中有所了解。

但是,当我使用默认设置添加了Watch应用目标时,它创建了两个目标WatchWatch Extension。我很难理解兼顾两者的目的。 Watch默认情况下似乎有非模型内容(例如资产,故事板),Watch Extension似乎有我的实际代码(例如界面控制器)。为什么他们默认不在一起?分裂它们的目的是什么,因为它们将在Watch上一起运行?

2 个答案:

答案 0 :(得分:2)

当Apple Watch第一次出现时,手机上的“分机”和包含UI的“App”在手表上运行。随着Watch OS 2的发布,两者都在手表上本地运行,但目标仍然是分开的。希望很快我们能够有一个目标

答案 1 :(得分:2)

虽然我不能说他们总是需要在构建依赖关系方面成为单独的目标,但他们需要在打包方面有所区别,因为应用程序并且总是 总是一起运行。

与iOS类似,.watchkitapp.watchkitextension捆绑包是.watchkitapp包的独特组件。虽然手表应用确实需要应用扩展程序,但应用扩展程序可以在后台运行而无需启动应用程序。手表甚至可能在前台展示完全不同的应用程序。

例如,如果应用扩展程序包含表面上显示的并发症,则该扩展程序会收到ClockKit唤醒的请求。其并发控制器被实例化(基于扩展的属性列表中的信息)以更新并发症服务器。这一切都将独立于手表应用程序发生。手表应用程序本身无法启动,除非用户碰巧点击了那个特定的表盘并发症。