我已经有一段时间摆弄Xcode 7了,我知道它仅支持Swift 2,并且没有办法在Xcode 7中支持Swift 1.0或1.2。这很好。
现在进入WatchOS,我可以在Xcode 7中有两个针对WatchOS1的目标和一个针对WatchOS2的目标,这样我就可以同时支持两个目标吗?
我在监视目标和iOS应用程序目标的构建设置中都研究了部署目标设置,但是我在列表中只能看到WatchOS2,因此
我可以在Xcode 7中分别为WatchOS1和WatchOS2支持两个目标吗?如果是这样,我应该在某个地方安装WatchOS1 SDK吗??要么
这完全不可能,如果不能,为什么?
如果两个目标均受支持,那么由于两个操作系统都具有重要意义,如何防止两个目标的源重复
在架构方面的差异。
同样,由于引入了WatchConnectivity框架,iOS对应应用也将进行一些更改,如何维护
两个目标?
我很困惑,需要快速做出决定,我们将为您提供任何帮助。
最佳答案
您可以在Xcode 7中支持watchOS 1应用程序。
您还可以在Xcode 7中支持watchOS 2应用程序。
如果要同时支持watchOS 1和watchOS 2,则每个操作系统都需要有各自的目标(由于架构上的差异)
对于watchOS 1应用程序,添加一个新目标并从左侧选择Apple Watch部分,然后从列表中单击watchOS 1的WatchKit应用程序。
对于watchOS 2应用程序,添加一个新目标并选择watchOS> Application部分,然后单击列表中的WatchKit 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'
这是因为Xcode 7会在构建时将arm64添加到
UIRequiredDeviceCapabilities
info.plist键中,甚至在不应该添加到watchOS 1扩展时也是如此。您可以通过将“调试”模式的“仅将Active Active Architecture”设置为
NO
来暂时解决此问题。希望能有所帮助
关于ios - Xcode 7支持 watch OS1和OS2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33411350/