iTunes 装了,为什么还是读不到 iPhone
现象
IPA 工具箱 1.1.1 在用户电脑上实测:本地库、下载页都正常,唯独「USB 已装应用」页打不开,页面上写着——未找到 libimobiledevice(idevice_id)。
用户的疑问很合理:iTunes 我已经装了,资源管理器里 iPhone 也明明在,驱动和信任都没问题,凭什么还说找不到设备?
定责:iTunes 不带这套工具
拆开看就清楚了。Windows 上和 iPhone 通信有两层:
- 驱动层:iTunes(或 Apple Devices 应用)提供驱动与苹果的设备服务——这层用户装好了,所以资源管理器能看到 iPhone;
- 工具层:工具箱读取已装应用清单,靠的是外调 libimobiledevice 这套开源命令行工具里的
idevice_id、ideviceinstaller等小程序——iTunes 从不附带它们。
而工具箱当时的设计是:请用户自行下载这套工具、放进设置里指定的目录。等于把一道安装工序甩给了用户,用户没做,USB 页就「检测不到」。这不是用户的错,是打包时少装了一件东西。
决定:工具内置,再加诊断(1.1.2)
下一版三件事一起办:
- libimobiledevice 内置打包:工具随软件走,插上线就能读;设置里的自定义目录只作覆盖,不再是前置条件;
- 加诊断页(用户点名,并向播放器的诊断包取经):环境自检——内置工具在不在位、出不出版本号,苹果设备服务在没在跑;设备探测——能不能列到设备、配对状态如何;失败给人话原因(未解锁 / 未信任 / 驱动缺失 / 服务未运行),还能一键导出诊断包,下次报问题不用靠猜;
- 顺手修侧栏:顶部标题文字上半截被裁——容器高度容不下字号,1.1.1 真机才暴露,一并放宽。
1.1.1 的安装包是 37,727,586 B;1.1.2 开发中。
一句总结
「检测不到设备」这类报错,先分清是设备没来,还是自己没带工具。这次是后者——而且解法不该是教用户补文件,而是把工具装进包里。