Xcode 7支持手表OS1和OS2

时间:2015-06-22 07:55:49

标签: ios xcode7 watch-os-2 watch-os

我一直在摆弄Xcode 7,我知道它只支持Swift 2,并且无法在Xcode 7中支持Swift 1.0或1.2。这很好。

现在进入WatchOS,我可以在Xcode 7中分别为WatchOS1和WatchOS2分别设置两个目标,以便我可以同时支持吗?

我正在查看监视目标和iOS应用目标的构建设置中的部署目标设置,但我只能在列表中看到WatchOS2,所以

  1. 我可以支持两个目标,一个用于WatchOS1& WatchOS2分别在Xcode 7中?如果是这样,我应该在某个地方安装WatchOS1 SDK?要么 这完全不可能,如果不是为什么?。

  2. 如果可以支持两个目标,我如何防止两个目标的源重复,因为两个操作系统都有重要意义 在架构方面存在差异。

  3. 此外,自推出WatchConnectivity框架以来,iOS对应应用程序也会有一些变化,如何维护 对于这两个目标?

  4. 我很困惑,我需要迅速做出决定,感谢任何帮助。

2 个答案:

答案 0 :(得分:26)

您可以在Xcode 7中支持watchOS 1应用。 您还可以在Xcode 7中支持watchOS 2应用程序。

如果您想同时支持watchOS 1和watchOS 2,那么您需要为每个操作系统设置单独的目标(由于架构上的差异)

对于watchOS 1应用,添加新目标并从左侧选择 Apple Watch 部分,然后从列表中单击 WatchOS 1的WatchKit应用

watchOS 1 App

对于watchOS 2应用,添加新目标并选择 watchOS > 应用部分,然后点击列表中的 WatchKit App 选项。

watchOS 2 App

在Xcode 7(测试版1)中制作watchOS 1应用程序需要注意几点......

因为我在运行iOS 8.3的iPhone 6和运行watchOS 1.0.1的手表上进行了测试,所以我需要将部署目标更改为iOS 8.3,但请注意,您希望在项目级别执行此操作而不是仅执行目标级别(这样扩展也会设置为8.3而不仅仅是主应用程序),否则它不会让您部署到真实设备上。

由于Xcode 7 beta 1中的一个已知问题,如果您的配对手机是64位,那么watchOS 1应用将无法在真实手表上安装,并出现以下错误:

Jun 20 17:25:08 Liams-iPhone companionappd[271] <Notice>: (Error) WatchKit: validateWatchKitApplicationInfoDictionary, invalid Info.plist key 'UIRequiredDeviceCapabilities'

这是因为Xcode 7在构建时将{64}添加到UIRequiredDeviceCapabilities info.plist键,即使是在它不应该的情况下也是你的watchOS 1扩展名。

您可以通过为DEBUG模式将仅构建活动架构设置为NO来暂时解决此问题。

Xcode 7 Known Issue

希望有所帮助

答案 1 :(得分:4)

您可以同时拥有适用于iOS 9 iPhone的watchOS 2应用程序和适用于iOS 8设备的watchKit Extension。

我想说如果你还没有制作WatchKit应用程序(如watchOS 1中那样),那么制作watchOS 2应用程序并尝试创建和维护watchOS 1应用程序是非常没有效果的......只是跳转在船上观察OS 2以达到理智目的!