记
开发日志
← 返回日志

iTunes 装了,为什么还是读不到 iPhone

IPA 工具箱

现象

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)

下一版三件事一起办:

  1. libimobiledevice 内置打包:工具随软件走,插上线就能读;设置里的自定义目录只作覆盖,不再是前置条件;
  2. 加诊断页(用户点名,并向播放器的诊断包取经):环境自检——内置工具在不在位、出不出版本号,苹果设备服务在没在跑;设备探测——能不能列到设备、配对状态如何;失败给人话原因(未解锁 / 未信任 / 驱动缺失 / 服务未运行),还能一键导出诊断包,下次报问题不用靠猜;
  3. 顺手修侧栏:顶部标题文字上半截被裁——容器高度容不下字号,1.1.1 真机才暴露,一并放宽。

1.1.1 的安装包是 37,727,586 B;1.1.2 开发中。

一句总结

「检测不到设备」这类报错,先分清是设备没来,还是自己没带工具。这次是后者——而且解法不该是教用户补文件,而是把工具装进包里。