如何测量 Xcode 13 / iOS15 中的能源使用情况?

Der*_*Lee 15 battery instruments ios15 xcode13

我想确认我在 iOS 上开发的应用程序的电池使用情况,特别是在 Xcode 13 和 iOS 15 上。(注意:此应用程序之前在以前版本的 iOS 上没有显示电池使用问题。)

\n

以前,收集能源使用信息似乎有两种方法:

\n

#1. 在设备上的“设置”>“开发者”>“日志记录”下

\n
    \n
  • 根据标题为“直接在 iOS 设备上记录能源使用情况”部分中所述的Apple 文档。
  • \n
  • 但是,在 iOS15 上,即使在搜索时,我也无法在“开发人员”或“设置”下的任何位置找到任何用于登录的选项。
  • \n
\n

#2. 使用“能量日志”模板通过仪器进行分析

\n
    \n
  • 根据“使用能源诊断分析模板”部分中所述的Apple 相同文档。
  • \n
  • 虽然它在 Xcode 12 中仍然可用,但在 Xcode 13 中缺少此模板。当然,也无法使用 Xcode 12 分析 iOS15 设备。
  • \n
\n

深入研究Xcode 13 发行说明,我发现了以下内容:

\n
\n

仪器不再包含能量模板;请改用 Xcode Organizer 中的指标报告。(74161279)

\n
\n

当我在 Xcode(12 或 13)中访问管理器时,选择一个应用程序并单击该应用程序所有版本的“Energy”,它显示以下内容:

\n

没有报告能源日志

\n

Apple 的“分析运输应用程序的性能”文档说道:

\n
\n

“在某些情况下,该窗格显示\xe2\x80\x9c可用的使用数据不足,\xe2\x80\x9d,因为参与的用户设备可能没有报告足够的匿名数据。发生这种情况时,请尝试在几天后回来查看。”

\n
\n

经过一年多的生产并拥有足够的安装数量,我有一种感觉,等待几天可能没有多大作用。

\n

我想确定这是我的应用程序中的错误还是 iOS15 中的错误。如何在 iOS 15 上使用 Xcode 13 收集能源使用数据?

\n

Der*_*Lee 15

在联系 Apple 开发者技术支持 (DTS) 解决此问题后,他们为我提供了以下指导:

\n

关于通过 Xcode Energy Organizer 访问的能源日志(或报告)的“可用使用数据不足”:

\n

DTS 表示,他们不会公布活跃用户的阈值,如果每个应用程序版本上的活跃用户始终超过几千个,则预计会出现使用日志。如果您的应用程序满足此条件但仍然不显示能源日志,DTS 建议与他们一起打开错误报告

\n

请注意,“Energy Organizer”是在 Xcode 中通过窗口工具栏 \xe2\x86\x92 Organizer \xe2\x86\x92 Reports \xe2\x86\x92 Energy访问的。

\n

关于如何收集应用程序的能源日志数据:

\n

DTS 建议使用 MetricKit 来获取每日指标负载。有效负载每 24 小时传送到您的应用程序,然后就可以使用它们并将它们发送出设备。

\n

这个的实例化是:

\n
import MetricKit\n\n...\n\n// Somewhere in your application startup sequence:\nMXMetricManager.shared.add(someObjectYouWantToHaveThisResponsibility)\n\n...\n\nextension SomeObjectYouWantToHaveThisResponsibility: MXMetricManagerSubscriber {\n   func didReceive(_ payloads: [MXMetricPayload]) {\n       for payload in payloads {\n           // Parse the payload here\n       }\n   }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

有关指标的完整列表,请参阅 MXMetricPayload 类

\n

关于我上面包含的两个文档链接:

\n

Apple 要求我打开反馈票以进行更新。我于 2021 年 9 月 30 日打开了两张票(FB9665186、FB9665194),截至今天它们仍处于“开放”状态。

\n

就我的应用程序和我遇到的问题而言,事实证明电池耗尽只是一个症状而不是实际问题,因此在此处包含任何这些详细信息都没有帮助。

\n

Apple 文档(截至 2024 年 1 月)

\n\n

  • 从仪器中删除“能量分析”是没有意义的。如果我们只能依赖Metrics api,这意味着我们无法在拥有几千个用户之前进行能耗测量。这是荒谬的。 (2认同)