众所周知,iOS设备上App的调试是非常困难的,需要用到Xcode中的Instruments工具,对于普通用户来说还是太复杂了。幸运的是,感谢开源社区的大神们对Instruments协议进行了实现,现在我们在Mac / Windows平台上都可以用简单的步骤实现iOS / iPadOS设备性能监测。
操作步骤
准备工作
需要准备的设备:
- 一台iPhone或者iPad
- 一根Lightning数据线
- 一台Mac或者Windows电脑
下载并解压项目文件
https://github.com/yanbo92/iOS-perf/archive/refs/heads/master.zip
将其下载后解压,后续命令均在此目录下进行。
安装MySQL Server和Grafana
MySQL Server用于储存记录的数据供Grafana读取,推荐使用5.7版本(其他版本应该也可行,未测试);Grafana用于数据的可视化,下面给出通过Docker安装的方式,也可以自行搜索对应系统的手动安装方式。
Docker安装方式
进入目录,确认docker-compose
文件存在后,执行docker-compose up -d
启动服务即可。
安装依赖
确认电脑安装了Python3,在目录下执行pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/
安装相关依赖。
连接并启动脚本
首先确认电脑上有设备相关驱动(Windows需下载iTunes),然后将设备通过Lightning线连接电脑并信任,进入目录后执行如下脚本。
- 通过
tidevice list
命令获取设备的UDID并记下(或者使用iTunes/iMazing等工具也可查询)
python3 run.py --udid=00000000-00FFFFFFFFFFFFFF \
--bundleid=com.tencent.xin \
--grafana_host=localhost \
--grafana_port=30000 \
--grafana_user=admin \
--grafana_password=admin \
--mysql_host=localhost \
--mysql_port=33306 \
--mysql_username=root \
--mysql_password=admin \
--mysql_db=iOSPerformance
注意:在Windows下,换行符为^
而不是\
。
其中00000000-00FFFFFFFFFFFFFF
需要替换为之前记下的UDID,bundleid
是需要记录性能的软件,具体可以在这个网站查询到(com.tencent.xin是微信),grafana_host
是你安装Grafana的机器,grafana_port
是Grafana的端口,如果通过docker-compose一键安装的端口是30000,其他情况默认是3000,grafana_user
和grafana_password
如果没有修改过默认都是admin无需修改,mysql_
的数据按照具体情况填写即可,docker-compose一键安装则无需修改。
如果成功执行,浏览器会自动打开Grafana的页面,输入用户名和密码登录后即可看到图表。
注意事项
-
如果遇到MySQL无法连接的问题,可能是没有开放root用户的远程权限,可以进入MySQL命令行执行以下命令授予权限,但是要注意安全问题。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'; mysql> UPDATE mysql.user SET host='%' WHERE user='root';
-
在Grafana 8.x版本运行时,出现了无法自动添加数据源的情况,表现为图表为空,没有数据。解决方法:选择左侧
Configuration > Data sources
手动添加MySQL数据库。