以前给新 iPhone 加测试设备,我的流程是打开 iTunes,连上设备,在设备摘要页点序列号那一栏让它切换显示 UDID,再右键复制,把一长串字母数字粘到开发者后台。换一次设备就折腾一遍,直到用了能自动读取的工具,才觉得这步本来可以不用这么费事。这篇把 iOS 设备 UDID 的几种获取方式都过一遍,顺带说清拿到之后怎么用。
UDID 是什么
先说 UDID 是什么。UDID(Unique Device Identifier)是每台 iOS 设备的唯一标识,一长串 40 位的十六进制字符。它和序列号不是一回事,序列号在设置里就能看到,UDID 苹果不给普通用户直接显示。开发者场景下它的作用很具体:要把某台设备加进测试设备列表,或者让某台设备能安装你的开发版 IPA,都得先拿到这台设备的 UDID。描述文件里没有包含目标设备的 UDID,编译出来的包装不上手机,报错提示就是设备未授权或未注册一类。
iTunes 和 Finder 方式
最传统的方式是 iTunes。iPhone 连上电脑,在 iTunes 里点中设备,进入摘要页,默认显示的是序列号,点一下序列号那行文字会切换成 UDID,右键可以复制,一长串就是。macOS Catalina 之后 Finder 取代了 iTunes 管理设备的位置,操作逻辑一样:侧边栏选中设备,点序列号区域切换显示 UDID。两条路的共同点是都依赖苹果自家工具,Windows 机器没装 iTunes 还得先装一遍,装了之后设备连不上又多是驱动问题。
网页方式
网页方式适合手机在手边、想省掉电脑端操作的情况。手机用 Safari 打开提供 UDID 查询的网页,页面提示安装一个描述文件,安装完成后网页直接读出这台设备的 UDID 显示出来,复制走人。它的机制是网页通过描述文件携带的设备信息读取 UDID,拿到的值和 iTunes 一致,可以用来添加测试设备。
用 Appuploader 自动读取
如果电脑上装了 Appuploader,拿 UDID 会更省事:设备用数据线连上电脑,工具自动读取当前连接设备的 UDID,不用点来点去,也不用记序列号切换的位置。它的设备管理模块直接维护账号下的测试设备清单,读取到的设备可以加进清单并同步到开发者账号,不用在 Apple 官网和工具之间来回切换。跨平台团队在 Windows 上做 iOS 开发时,Appuploader 直接读 USB 设备,省掉 iTunes 那套依赖,这步尤其省心。
拿到之后怎么用
拿到 UDID 之后要做的事:登录开发者后台,在 Devices 里把设备注册进去(需要付费开发者账号),然后重新生成描述文件——Development 类型的描述文件创建时要勾选测试设备,新设备不勾进去,之前编译的包照样装不上。在 Appuploader 里重新生成描述文件时记得勾上这台设备,再更新打包工具的签名配置,重新编译,走安装测试。
装不上时怎么查
装不上时按这个顺序查:证书是不是开发证书、描述文件里有没有包含目标设备 UDID、设备有没有开启开发者模式并信任电脑。扫码安装的前提是描述文件已包含该设备 UDID 且账号支持,USB 安装则要求装好 iTunes、设备解锁并点信任。
UDID 获取的几种方式,区别只在于要不要装苹果自家工具、要不要手动复制。按手头的环境选一种,把"获取 UDID、加测试设备、重生成描述文件"的流程固定下来,后面每来一台新设备就是重复一遍。