【问题标题】:Complications No Longer Updating in watchOS 7watchOS 7 中不再更新的并发症
【发布时间】:2021-01-08 15:54:07
【问题描述】:
我在 watchOS 6/5/4 中完美运行的复杂功能在 watchOS 7 中不起作用。这是针对独立 watchOS 应用程序的。
似乎 getCurrentTimelineEntry 方法没有被调用,尽管我调用 reloadTimeline 来解决所有并发症。如果在 sim 上运行 getCurrentTimelineEntry 确实会不时被调用,但并发症仍然没有更新。
那么在 watchOS 7 中发生了什么变化或者这是一个已知的错误?
【问题讨论】:
标签:
ios
swift
watchkit
apple-watch
watch
【解决方案1】:
问题是我的 CLKComplicationDataSource 派生类 (ComplicationController) 从未在设备上被 API 调用,尽管它在模拟器上很少被调用!
因此,API 中肯定存在需要为 watchOS 7 配置/重新编译项目才能工作的错误。
我的配置需要进行以下新更改:
- 在 WatchKit Extension 的 Assets.xcassets 中为所有并发症设置并发症图像。这在 watchOS 6 或更早版本中是可选的。
- 实现新的 getComplicationDescriptors 并以编程方式声明所有支持的并发症。 watchOS 7 不再支持在 WatchKit Extension 的 Info.plist 中声明支持的复杂功能的旧方式,即使对于使用 watchOS 6 编译的应用程序也是如此