1

在带有 RevenueCat 的 tvOS 13.4 上,当我在 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:] ()

4

1 回答 1

1

我在 RevenueCat 工作,让我添加一些上下文:

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

它将在3.2.3本周发布的下一个版本中得到修复(连同其他修复)。

发生的情况是,每当应用程序处于前台或后台时,RevenueCat 都会尝试同步订阅者属性 ( https://docs.revenuecat.com/docs/subscriber-attributes )。UIApplicationDidBecomeActiveNotification当或被UIApplicationWillResignActiveNotification解雇时,应用程序在 tvOS 上被视为前景/背景。如果没有需要同步的属性,该方法提前退出,但当前版本仍然会发出日志说它们已经同步成功。

我不太清楚为什么 tvOS 在电视关闭时会触发这两个通知,但我会再深入一点,让你知道。

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

于 2020-05-11T15:23:16.650 回答