我们目前正在将 Performance 插件集成到我们的 iOS 应用程序中。在此过程中,我们检查了 Firebase 日志并发现了一些对我们来说似乎不对的地方:
正如文档中所建议的那样,我们正在设置标志Performance.sharedInstance().isInstrumentationEnabled
并Performance.sharedInstance().isDataCollectionEnabled
在didFinishLaunchingWithOptions
.
为了模拟用户选择加入/退出收集性能数据,我们首先将这些值设置为 false,安装应用程序,将它们设置为 true,重新运行应用程序,将它们设置为 false 并再次重新运行。
预期的行为是 sdk 仅在第二次运行期间收集数据,但在第三次运行期间也这样做了。经过进一步调查,我们发现一旦您设置Performance.sharedInstance().isDataCollectionEnabled
为 true,即使您在以后的版本中将其设置为 false,该功能也会保持启用状态。只有在重新安装应用程序后,跟踪才会被禁用。您可以在下面看到上次运行的过滤后的 XCode 日志输出,表明它仍在收集数据,即使它不应该收集数据。
2019-05-08 13:46:17.532273+0200 stage[49670:820732] 5.20.0 - [Firebase/Performance][I-PRF100009] Recording trace: _as
2019-05-08 13:47:02.218257+0200 stage[49670:821041] 5.20.0 - [Firebase/Performance][I-PRF100010] Clearcut is about to send logs. 1 upload blocks will be ran.
2019-05-08 13:47:49.893332+0200 stage[49670:822055] 5.20.0 - [Firebase/Performance][I-PRF100009] Recording trace: _st_PageViewController
2019-05-08 13:47:55.067167+0200 stage[49670:822053] 5.20.0 - [Firebase/Performance][I-PRF100009] Recording trace: _st_PageViewController
2019-05-08 13:48:02.663044+0200 stage[49670:822276] 5.20.0 - [Firebase/Performance][I-PRF100009] Recording trace: _st_PageViewController
因此,似乎用户在选择一次后无法再选择退出,但这不是 sdk 的预期行为,所以我们必须遗漏一些东西。有谁知道如何确保重新禁用数据收集可以强制生效?
谢谢,克里斯蒂安