Xcode 7支持手表OS1和OS2

Xcode 7 supporting watch OS1 and OS2

我一直在摆弄 Xcode 7 一段时间,我知道它只支持 Swift 2 而没有办法支持 Swift 1.0 或 1.2 Xcode7.这样就好了

现在来到 WatchOS,我可以在 Xcode 7 中分别设置两个目标,一个用于 WatchOS1,一个用于 WatchOS2,这样我可以同时支持吗??

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

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

  2. 如果可以支持两个目标,我该如何防止两个目标的源重复,因为两个 OS 都具有重要意义 架构方面的差异。

  3. 另外自从引入WatchConnectivity框架后,iOS对应的app也会有一些变化,如何维护 对于两个目标?

我很困惑,我需要快速做出决定,感谢您的帮助。

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

中支持 watchOS 2 个应用

如果你想同时支持 watchOS 1 和 watchOS 2 那么你需要为每个 OS 设置单独的目标(由于架构的差异)

对于手表OS 1 个应用程序,添加一个新目标和 select 左侧的 Apple Watch 部分,然后单击 用于手表的 WatchKit 应用程序OS 1 来自列表。

对于手表OS 2 应用,添加一个新目标和select 手表OS > 应用 部分,然后单击列表中的 WatchKit App 选项。

关于制作手表的一些注意事项OS Xcode 7(测试版 1)中的 1 个应用程序...

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

由于 Xcode 7 beta 1 中的一个已知问题,手表 OS 1 应用程序将无法在真实手表上安装,如果您配对的 phone 是以下错误64 位:

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

这是因为 Xcode 7 在构建时将 arm64 添加到 UIRequiredDeviceCapabilities info.plist 键甚至是你的手表 OS 1 扩展名.

您可以通过将 Build Active Architecture Only 设置为 NO 来暂时解决此问题,以获得 DEBUG 模式。

希望对您有所帮助

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

我想说的是,如果您还没有制作 WatchKit 应用程序(如在 watchOS 1 中),那么制作 watchOS 2 应用程序并尝试创建和维护 watchOS 1 应用程序是非常低效的...为了理智起见,直接跳转到 watchOS 2!