Apple Watch:一个Watchkit应用程序可以与多个iOS应用程序通信吗?

我想写一个Watchkit应用程序,可以与多个iPhone应用程序进行通信。

例如,我们称这个Watchkit应用程序为“PingPong”。 它所做的就是设置一个观察者,并响应请求 – 类似于ICMP ping请求。 所以,当应用程序向手表发送“PING”时,PingPong Watchkit应用程序以“PONG”响应。

我如何使这个function可以访问多个应用程序? 换句话说,我想公开这个非常简单的界面,以便不同的应用程序可以使用它。

请注意,文档状态,“你必须有一个现有的iOS应用程序来创build一个WatchKit应用程序。WatchKit应用程序被实现为您的Xcode项目的一个单独的目标,并在您的iOS应用程序包内build立和打包… Xcodeconfiguration目标为您的WatchKit应用程序和WatchKit扩展添加所需的文件到你的iOS项目,这两个新目标的包ID是根据你的iOS应用程序的包ID自动configuration的,所有三个包的基本ID必须匹配;如果你更改iOS应用程序的包ID,则必须相应地更新其他包ID。 https://developer.apple.com/library/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/ConfiguringYourXcodeProject.html#//apple_ref/doc/uid/TP40014969-CH2-SW1

这意味着iOS扩展应用程序和watchkit应用程序之间存在一对一的关系。 意义? Watchkit应用程序基本上是沙盒,这是不可能的。 但是问问不了什么。 这就是为了什么,对吧? :P

Thx,Keith 🙂

事实上,watchOS应用程序链接到iOS的伴侣应用程序。

在这两个版本中,每个watchOS应用程序有两个目标:WatchKit应用程序 – 其中包含故事板,图标等 – 和WatchKit扩展,它包含代码。

在watchOS 1(旧WatchKit)+ iOS 8组合中,WatchKit App安装在Apple Watch上,而WatchKit Extension和iOS应用都安装在用户的iPhone上。

换句话说,在watchOS 2 + iOS 9的组合中,WatchKit App和WatchKit Extension都安装在用户的Apple Watch上,而iOS App是安装在iPhone上的唯一代码和视图。

运行iOS应用程序只需要一个目标,所以它可以在没有Apple Watch的情况下运行(自第一个iPhone OS以来)。

但是运行watchOS应用程序需要WatchKit应用程序和WatchKit扩展。 在watchOS 1(旧的WatchKit)中,因为iPhone和Apple Watch上的其他应用程序,所以正在运行的应用程序需要使用蓝牙连接它们,所以您必须在附近携带iPhone。 在watchOS 2中,两者都在Apple Watch上,所以正在运行的应用程序不需要连接到iPhone和附近的iPhone。 您可以将它们与watchOS 2 SDK中包含的WatchConnectivity框架(在Xcode 7中)连接起来。

所以在watchOS 2应用程序可以独立运行,但它们不是独立的。 在iPhone上安装时,它们安装在Apple Watch上,并且可以互相连接。 当您创build一个新的watchOS应用程序时,您必须在将其提交到iTunes Connect时将其包含在您的iPhone应用程序中。

注意:这使得watchOS应用程序更快更可靠。

因此,在这两个版本中,每个WatchKit应用程序都与一个扩展和一个iOS应用程序相关联,因此您无法将一个watchOS应用程序链接到多个iPhone应用程序,或者将一个iOS应用程序链接到多个WatchKit目标。 (除了为watchOS 1(旧WatchKit)和WatchOS 2(两个应用程序,但在两个不同版本的手表操作系统中)制作两个目标外。

总之, 您不能将多个watchOS应用程序或多个iOS应用程序链接在一起。 这是watchOS 1和2的事实,将来可能会改变。

你可以做到这一点。

但只有在两种iOS应用程序都由同一开发人员开发的情况下。

要走的路是将所有三个应用程序放在同一个应用程序组中。 这将允许所有三个应用程序访问一个公共存储,在那里他们可以存储他们的信息,以供其他应用程序访问。

此function用于Watch App 1中的iOS应用程序< – > Watch App通信以及与今天的扩展程序进行通信。

你可以在这里find一个使用App Groups的教程: http : //www.codingexplorer.com/share-data-in-your-swift-watchkit-apps-with-app-groups/