在Xcode 10上工作。现在在beta版中我不能构建我一直得到这个错误:为iOS模拟器构建时,“WatchKit”不可用。请考虑使用#if !os(iOS)有条件地导入此框架。
#if !os(iOS)
的数据
rnmwe5a21#
我在WatchKit扩展中的一个swift文件也遇到了同样的问题。原来它是iOS应用和WatchKit扩展的成员。我在文件的目标成员部分取消了iOS应用,以便它只属于WatchKit扩展目标。现在项目成功构建。
q9rjltbz2#
Apple Watch与iPhone/iPad之间的一些通信功能曾经在WatchKit框架中实现。但在某些时候,它被转移到WatchKitConnectivity框架中。如果您查看目标的“构建阶段”->“将二进制文件与库链接”部分,您将看到“WatchKit.framework”状态为“可选”。iOS 13+已经变得更加“严格”,因此除非我完全删除“WatchKit.framework”,否则它不会构建,而是添加“WatchConnectivity.framework”。另外,请确保您的iPhone/iPad代码引用使用“import WatchConnectivity”而不是“import WatchKit”。
az31mfrm3#
我们需要使用“条件导入”来解决这个问题。将import WatchKit头替换为以下代码:
import WatchKit
#if !os(iOS) import WatchKit #endif
字符串这解决了我的问题,并在iOS 13中成功构建。
piok6c0g4#
Xcode 11从iOS SDK中删除了WatchKit。从release notes:WatchKit框架不再包含在iOS SDK中。如果您正在使用iOS中的WatchKit API,则需要删除此用途。WatchKit框架在watchOS上仍然可用。如果您正在使用iOS中的WatchKit API来推断配对Apple Watch上功能的可用性,请在向Feedback Assistant提交反馈时包含有关您的用例的信息。(49707950)这包括引用plugin.xml中WatchKit的Cordova插件:
<framework src="WatchKit.framework" />
字符串上面的一行将添加WatchKit作为iOS应用目标的框架。您需要删除它并仅将WatchKit添加到应用的Watch目标。
jgwigjjp5#
我在WatchKitExtension中的InterfaceController.h中有<WatchKit/WatchKit.h>,因为它必须是。我在InterfaceController.m文件的目标成员资格中取消了iOS“Test”目标,错误消失了。特别感谢ToniK指导我那里。
5条答案
按热度按时间rnmwe5a21#
我在WatchKit扩展中的一个swift文件也遇到了同样的问题。原来它是iOS应用和WatchKit扩展的成员。我在文件的目标成员部分取消了iOS应用,以便它只属于WatchKit扩展目标。现在项目成功构建。
q9rjltbz2#
Apple Watch与iPhone/iPad之间的一些通信功能曾经在WatchKit框架中实现。但在某些时候,它被转移到WatchKitConnectivity框架中。
如果您查看目标的“构建阶段”->“将二进制文件与库链接”部分,您将看到“WatchKit.framework”状态为“可选”。iOS 13+已经变得更加“严格”,因此除非我完全删除“WatchKit.framework”,否则它不会构建,而是添加“WatchConnectivity.framework”。
另外,请确保您的iPhone/iPad代码引用使用“import WatchConnectivity”而不是“import WatchKit”。
az31mfrm3#
我们需要使用“条件导入”来解决这个问题。
将
import WatchKit
头替换为以下代码:字符串
这解决了我的问题,并在iOS 13中成功构建。
piok6c0g4#
Xcode 11从iOS SDK中删除了WatchKit。从release notes:
WatchKit框架不再包含在iOS SDK中。如果您正在使用iOS中的WatchKit API,则需要删除此用途。WatchKit框架在watchOS上仍然可用。如果您正在使用iOS中的WatchKit API来推断配对Apple Watch上功能的可用性,请在向Feedback Assistant提交反馈时包含有关您的用例的信息。(49707950)
这包括引用plugin.xml中WatchKit的Cordova插件:
字符串
上面的一行将添加WatchKit作为iOS应用目标的框架。您需要删除它并仅将WatchKit添加到应用的Watch目标。
jgwigjjp5#
我在WatchKitExtension中的InterfaceController.h中有<WatchKit/WatchKit.h>,因为它必须是。我在InterfaceController.m文件的目标成员资格中取消了iOS“Test”目标,错误消失了。特别感谢ToniK指导我那里。