Worked on Xcode 10. Now in the beta I can't build I keep getting this error:
a "WatchKit" is not available when building for iOS Simulator. Consider using
#if !os(iOS)to conditionally import this framework.
Ton*_*niK 11
对于WatchKit扩展程序中的一个swift文件,我也遇到了同样的问题。原来,它是iOS应用程序和WatchKit Extension的成员。我在文件的目标成员资格部分中取消选中iOS应用程序,以便它仅属于WatchKit Extension目标。现在该项目已成功构建。
Xcode 11从iOS SDK中删除了WatchKit。从发行说明:
WatchKit框架不再包含在iOS SDK中。如果您使用的是来自iOS的WatchKit API,则需要删除此用法。WatchKit框架在watchOS上仍然可用。如果您使用iOS上的WatchKit API推断配对的Apple Watch上的功能是否可用,请在将反馈提交给Feedback Assistant时包括有关用例的信息。(49707950)
这包括在plugin.xml中引用WatchKit的Cordova插件:
<framework src="WatchKit.framework" />
Run Code Online (Sandbox Code Playgroud)
上一行将添加WatchKit作为iOS应用程序目标的框架。您需要删除它,并仅将WatchKit添加到Watch的应用目标。
在Apple Watch与iPhone / iPad之间进行通信的某些功能以前是在WatchKit框架中实现的。但是在某个时候,它已经进入了WatchKitConnectivity框架。
如果在目标的“构建阶段”->“将二进制文件与库链接”部分中查找,您将看到状态为“可选”的“ WatchKit.framework”。iOS13 +变得更加“严格”,因此除非我完全删除“ WatchKit.framework”,然后添加“ WatchConnectivity.framework”,否则它将无法构建。
还要确保您的iPhone / iPad代码引用“导入WatchConnectivity”而不是“导入WatchKit”。
小智 5
我们需要使用“条件导入”来解决此问题。
将import WatchKit标头替换为以下代码:
#if !os(iOS)
import WatchKit
#endif
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题,并在iOS 13中成功构建。
| 归档时间: |
|
| 查看次数: |
2459 次 |
| 最近记录: |