在Xcode 10上工作。现在在beta版中,我无法构建此错误:
为iOS Simulator构建时,“ WatchKit”不可用。 考虑使用
#if !os(iOS)
有条件地导入此框架。
答案 0 :(得分:8)
Apple Watch与iPhone / iPad之间进行通信的某些功能以前是在WatchKit框架内实现的。但是到了某个时候,它已经进入了WatchKitConnectivity框架。
如果您在目标的“构建阶段”->“将二进制文件与库链接”部分中查找,您将看到状态为“可选”的“ WatchKit.framework”。 iOS13 +变得更加“严格”,因此除非我完全删除“ WatchKit.framework”,然后添加“ WatchConnectivity.framework”,否则它将无法构建。
还要确保您的iPhone / iPad代码使用“导入WatchConnectivity”而不是“导入WatchKit”。
答案 1 :(得分:7)
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插件:
data.frame(t(replicate(5, k)))
#OR
data.frame(matrix(rep(k, each = 5), 5))
#OR
data.frame(t(sapply(1:5, function(x) k)))
# X1 X2 X3 X4
#1 1 2 3 4
#2 1 2 3 4
#3 1 2 3 4
#4 1 2 3 4
#5 1 2 3 4
以上行将把WatchKit添加为iOS应用程序目标的框架。您需要删除它,并仅将WatchKit添加到Watch的应用目标。
答案 2 :(得分:2)
我在WatchKit扩展程序中的一个swift文件也遇到了同样的问题。原来,它是iOS应用程序和WatchKit Extension的成员。我在文件的目标成员资格部分中取消选中iOS应用程序,以便它仅属于WatchKit Extension目标。现在该项目已成功构建。
答案 3 :(得分:0)
我们需要使用“条件导入”来解决此问题。
用以下代码替换import WatchKit
标头:
#if !os(iOS)
import WatchKit
#endif
这解决了我的问题,并且可以在iOS 13中成功构建。