我正在 iOS 设备上运行自动化测试。我不想总是连接所有设备。因此,我想找到所有设备 ID,然后仅在该设备已连接时才开始构建、部署和运行测试的过程。
所以我的问题是,如何通过 shell 脚本找到所有连接设备的设备 uuid?
谢谢!
编辑:
instruments
命令现在已弃用,您应该运行
xcrun xctrace list devices
上一个答案:
如果你安装了Xcode,你也可以使用Instruments来获取所有已知的设备。和
instruments -s devices
@KKendall 的回答让我走上了正确的道路。这是一个带有单个 sed 表达式的版本:
system_profiler SPUSBDataType | sed -n -E -e '/(iPhone|iPad)/,/Serial/s/ *Serial Number: *(.+)/\1/p'
通过 brew 命令在 Mac OS X 上
安装ideviceinstaller :brew install ideviceinstaller
然后idevice_id -l
将从终端工作
我在这里发现了一个关于使用多个设备的类似问题,这是对我有帮助的答案形式:
#!/bin/sh
i=0
for line in $(system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p' | grep "Serial Number:" | awk -F ": " '{print $2}'); do
UDID=${line}
echo $UDID
udid_array[i]=${line}
i=$(($i+1))
done
cnt=${#udid_array[@]}
for ((i=0;i<cnt;i++)); do
echo ${udid_array[i]}
done
Also ios-deploy can be used:
ios-deploy -c | grep -oE 'Found ([0-9A-Za-z\-]+)' | sed 's/Found //g'
如果您有 XCode,请转到 Window > Devices & Simulators。在该页面上,任何连接的设备都将与您设备上的其他 ID 和统计信息一起显示。这也将通过 WIFI 连接到设备。