如何在Xcode 13 / iOS15中测量能源使用?

14

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

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

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

  • 苹果文档所述,在标题为“在iOS设备上直接记录能源使用情况”的部分中。
  • 但是,在iOS15上,即使搜索,也找不到任何在Developer或设置的任何地方记录日志的选项。

#2. 使用“Instruments”进行分析,使用“Energy Log”模板

  • 苹果相同的文档所述,在“使用能源诊断分析模板”部分中。
  • 虽然它仍然可用于Xcode 12,但是在Xcode 13中缺少此模板。当然,使用Xcode 12无法对iOS15设备进行分析。

在查看Xcode 13发布说明时,我找到了以下内容:

Instruments不再包括Energy模板;请改用Xcode Organizer中的指标报告。(74161279)

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

No Energy Logs Reported

Apple关于“分析已上线应用性能”的文档表示:

“在某些情况下,该面板显示“可用的使用数据不足”,因为参与用户设备报告的匿名化数据可能不足。当发生这种情况时,请尝试几天后重新检查。”

经过一年多的生产和拥有足够的安装数量,我觉得等待几天可能不会有太大的作用。

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

2个回答

13

在遇到这个问题后与苹果开发技术支持(DTS)联系后,他们给了我以下指导。

关于通过Xcode组织器可访问的能量日志出现“可用使用数据不足”的问题:

DTS表示他们不公开活跃用户的阈值,如果您的应用在每个版本上有数千个活跃用户,并且仍未显示能源日志,则预计会出现使用日志。如果您的应用符合此标准但仍未显示能源日志,DTS建议向他们报告错误

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

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
       }
   }
}

要获取完整的度量列表,请参阅MXMetricPayload类

关于我上面提到的两个文档链接:

苹果要求我提交反馈票来更新它们。我于2021年9月30日打开了这两个反馈票(FB9665186、FB9665194),截至今天,它们仍然处于“打开”状态。

针对我的应用程序和我遇到的问题,事实证明电池耗尽只是症状,而不是实际问题,因此在此不包含任何这些详细信息是无用的。


但是在我的Xcode组织者中,它总是显示“度量数据不足-找不到最新应用程序版本的度量数据,其使用足够”。这是否意味着使用次数有限制? - Bagusflyer
@Bagusflyer 如上面的答案所提到的,我直接从苹果DTS那里得到的答复是他们“不公布活跃用户的阈值”,并且“如果您的每个应用程序版本都有几千个活跃用户,预计会存在使用日志”。如果您的每个应用程序版本没有超过几千个用户,那么我不希望您在这里看到任何数据。您最好的选择可能是实施MetricKit并自行收集相关数据,或者您可以跟进苹果DTS以寻求帮助。 - Derek Lee
我看MXMetricPayload似乎没有提供能耗指标,是吗? - Kamen Dobrev
2
从仪器中移除“能量分析”是没有意义的。如果我们只能依赖指标 API,那就意味着在拥有几千个用户之前,我们无法进行能量消耗的测量。这太荒谬了。 - Bagusflyer

0
值得注意的是,Xcode在调试导航器中有一个“能量影响”部分。enter image description here 一旦开始,还有一些“隐藏”的工具可用,比如说“时间分析器”。点击右上角的+按钮以查看可用选项。enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接