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

How to measure energy usage in Xcode 13 / iOS15?

我想确认我在 iOS 上开发的应用程序的电池使用情况,特别是在 Xcode 13 和 iOS 15 上。(注意:此应用程序之前在 iOS.)

的早期版本上没有显示电池使用问题

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

#1。在设置 > 开发人员 > 日志记录下的设备上

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

通过 the Xcode 13 release notes 挖掘,我发现了以下内容:

Instruments no longer includes the Energy template; use metrics reporting in the Xcode Organizer instead. (74161279)

当我在 Xcode(12 或 13)中访问 Organizer 时,select 一个应用程序并为所有版本的应用程序单击“能量”,它显示如下:

Apple's documentation for "Analyzing the Performance of Your Shipping App" 说:

"In some cases the pane shows “Insufficient usage data available,” because there may not be enough anonymized data reported by participating user devices. When this happens, try checking back in a few days."

投产一年多,安装数量充足,我觉得等几天可能没什么用。

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

就此问题联系 Apple 开发人员技术支持 (DTS) 后,他们为我提供了以下指导。

关于可通过 Xcode 组织者访问的能源日志的“可用使用数据不足”:

DTS 表示他们不会发布活跃用户的阈值,并且预计会出现使用日志如果您的每个应用版本都有超过几千名活跃用户。如果您的应用满足此条件但仍然不显示能量日志,DTS 推荐 opening a bug report with them

关于如何为您的应用收集能量日志数据:

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

这个的实例化非常基础,可以简单到:

import MetricKit

...

// Somewhere in your application startup sequence:
MXMetricManager.shared.add(someObjectYouWantToHaveThisResponsibility)

...

extension SomeObjectYouWantToHaveThisResponsibility: MXMetricManagerSubscriber {
   func didReceive(_ payloads: [MXMetricPayload]) {
       for payload in payloads {
           // Parse the payload here
       }
   }
}

如需完整的指标列表,see the MXMetricPayload class

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

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

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