在电视关闭的情况下,反复调用tvOS应用程序DidBecomeActive。

问题描述 投票:0回答:1

在tvOS 13.4和RevenueCat上,当我的应用程序在4K电视设备上运行,然后关闭电视(让应用程序运行),我得到这个。

2020-05-10 12:21:59-0700 MyApp[709:1904667] [Purchases] - INFO: Subscriber attributes synced successfully
2020-05-10 12:22:01-0700 MyApp[709:1904667] [Purchases] - INFO: Subscriber attributes synced successfully
2020-05-10 12:22:01-0700 MyApp[709:1904667] [Purchases] - DEBUG: applicationDidBecomeActive
2020-05-10 12:22:05-0700 MyApp[709:1904667] [Purchases] - INFO: Subscriber attributes synced successfully
2020-05-10 12:22:07-0700 MyApp[709:1904667] [Purchases] - INFO: Subscriber attributes synced successfully
2020-05-10 12:22:07-0700 MyApp[709:1904667] [Purchases] - DEBUG: applicationDidBecomeActive
2020-05-10 12:22:11.0700 MyApp[709:1904667] [Purchases] - INFO: Subscriber attributes synced successfully
2020-05-10 12:22:13-0700 MyApp[709:1904667] [Purchases] - INFO: Subscriber attributes synced successfully
2020-05-10 12:22:13-0700 MyApp[709:1904667] [Purchases] - DEBUG: applicationDidBecomeActive
2020-05-10 12:22:14-0700 MyApp[709:1904667] [Purchases] - INFO: Subscriber attributes synced successfully
2020-05-10 12:22:19-0700 MyApp[709:1904667] [Purchases] - INFO: Subscriber attributes synced successfully
2020-05-10 12:22:19-0700 MyApp[709:1904667] [Purchases] - DEBUG: applicationDidBecomeActive

为什么它会这样做?很明显,它知道电视已经关闭了,因为当我打开电视时,它停止了这些重复的调用。

在这之前,堆栈跟踪中唯一的调用是一个私有函数。

#1 0x00000001e36c8398 in -[UIApplication _stopDeactivatingForReason:] ()

cocoa tvos revenuecat
1个回答
1
投票

我在RevenueCat工作,让我补充一些背景。

这是由一个错误引起的 purchases-ios的版本中,存在于 3.1.0 -&gt.,如果没有任何需要同步的订阅者属性(这将是你的情况,除非它们经常被设置为不同的值),即使方法no-ops,日志也会被发出。3.2.2如果没有任何需要同步的订阅者属性,即使该方法没有操作,日志也会被发出(这将是你的情况,除非它们经常被设置为不同的值)。

它将在下一个版本中被修复。3.2.3本周即将发布(还有其他修正)。

发生的事情是,RevenueCat试图同步订阅者属性(https:/docs.revenuecat.comdocssubscriber-attributes。),当应用程序是前景或背景时,就会被认为是前景-背景。在tvOS上,当一个应用程序在以下情况下被认为是前景背景化的 UIApplicationDidBecomeActiveNotificationUIApplicationWillResignActiveNotification 得到解雇。如果没有需要同步的属性,方法提前退出,但当前版本仍然会发出日志说它们已经同步成功。

我不太清楚为什么tvOS会在电视关闭的情况下发出这两个通知,但我会再深入研究一下,然后告诉你。

再次澄清一下,除非在前景或背景之间设置了新的订阅者属性,或者它们被设置为与当前不同的值,否则该方法不会做任何事情。

© www.soinside.com 2019 - 2024. All rights reserved.