自从我将测试设备(iPhone 12 mini)更新到最新的iOS 15.4版本后,手表的伴侣应用程序(watchOS 8.5)的复杂性没有收到iOS应用程序发送的任何更新。
要重现此问题,您需要:
- 一个带有watchOS伴侣应用程序且至少有一个活动并发症的iOS应用程序。(我可以为您提供我的TestFlight应用程序访问权限。)
- iOS应用程序需要有一个活动的WCSession对象,以通过“transferCurrentComplicationUserInfo:”发送更新并发症的消息。
- 如果您检查isComplicationEnabeld属性,则始终会返回false,因此不会更新并发症。
此问题仅在更新到iOS 15.4之后才会发生。之前的版本工作正常。
以下是我的代码,用于传输并更新并发症内容...
if ([self.connectivityHandler.validSession isComplicationEnabled] &&
self.connectivityHandler.validSession.remainingComplicationUserInfoTransfers > 0) {
[self.connectivityHandler transferCurrentComplicationUserInfo:[self applicationContext]];
}
connectivityHandler
是一个单例对象,负责数据传输并持有 WCSession
对象 (validSession
)。
它实现了 transferCurrentComplicationUserInfo
方法,用于传输并更新 complication 的内容。
自从 iOS 15.4 版本以后,上面的 if 子句总是 false,这是由于 isComplicationEnabled
检查。在此之前,它能够正常工作。
我已经尝试过:
- 重启设备:iPhone 和手表
- 重置手表
有人遇到相同的问题并可能有解决方案吗?
感谢您的支持!