如何在Xcode 13与iOS 15中测量App的能耗使用情况
Xcode 13 + iOS 15 环境下App电池能耗数据收集方案
方案1:使用MetricKit框架本地采集能耗数据
这是Apple官方推荐的替代旧能耗模板的本地调试方案,无需等待用户匿名上报:
- 操作步骤:
- 在你的Xcode项目中导入
MetricKit框架,注册能耗日志回调函数 - 开启iOS 15设备的开发者模式,连接Xcode后运行调试版App
- 复现你怀疑存在耗电异常的使用场景,系统会自动生成能耗诊断报告,你可以在回调方法中直接打印日志或者存储到本地沙箱查看
- 也可以进入设备的「设置 > 隐私与安全性 > 分析与改进 > 分析数据」,找到名称包含你的App bundle id和
energy关键词的日志,通过AirDrop或者Xcode导出查看
- 在你的Xcode项目中导入
方案2:使用Instruments多模板组合替代旧Energy Log模板
Xcode 13只是移除了整合好的能耗模板,核心能耗统计能力仍然保留,可自行组合指标查看:
- 操作步骤:
- Xcode 13连接iOS 15设备,点击
Product > Profile启动Instruments - 同时添加
Activity Monitor和CPU Counters两个监控模板 - 过滤选中你的App进程,
Activity Monitor可查看实时功耗等级、CPU占用率、后台活动时长,CPU Counters可统计不同核心的功耗开销,两项数据结合即可得到完整的能耗情况 - 系统功耗等级分为0-5级,0为最低功耗,5为最高,若出现连续1分钟以上的4-5级功耗即可判定为异常耗电
- Xcode 13连接iOS 15设备,点击
方案3:手动触发设备本地能耗诊断
iOS 15只是调整了旧能耗日志的入口,并未删除该功能:
- 操作步骤:
- 确保iOS 15设备已经连接过Xcode开启开发者模式,进入「设置 > 开发者 > 能源诊断」(该入口仅在设备成功连接Xcode后才会显示)
- 点击「开始录制」后断开设备,正常使用App复现耗电场景10-30分钟
- 录制完成后重新连接Xcode,打开
Window > Devices and Simulators,选中你的设备后点击「查看设备日志」 - 过滤
energy关键词即可导出本次录制的完整能耗报告
补充说明
Xcode Organizer中无能耗数据和App安装量无关,仅和用户是否主动开启「共享iPhone分析」授权有关,授权占比不足时即使安装量再大也不会生成统计数据,无需等待该渠道的数据,以上三种本地调试方案拿到的数据更精准,可直接用于定位是App本身的iOS 15兼容问题还是系统层面的问题。
内容的提问来源于stack exchange,提问作者Derek Lee
相关产品推荐
相关产品推荐

