Xcode 7支持手表OS1和OS2

Sat*_*ran 20 ios watchos xcode7 watchos-2

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

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

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

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

  2. 如果可以支持两个目标,那么我如何防止两个目标的源重复,因为两个操作系统在体系结构方面存在显着差异.

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

我很困惑,我需要迅速做出决定,任何帮助表示赞赏.

lia*_*ols 26

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

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

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

watchOS 1 App

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

watchOS 2 App

关于在Xcode 7(beta 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'
Run Code Online (Sandbox Code Playgroud)

这是因为Xcode 7正在UIRequiredDeviceCapabilities构建时将info64添加到info.plist键,即使它不应该是watchOS 1扩展.

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

Xcode 7已知问题

希望有所帮助