我正在iOS设备上运行自动化测试。 我不想始终连接所有设备。 因此,我想查找所有设备的设备ID,然后仅在连接了该设备时开始构建、部署和运行测试。
所以我的问题是,如何通过shell脚本找到所有已连接设备的设备uuid?
谢谢!
编辑:
instruments
命令现在已被弃用, 您应该运行以下命令代替:
xcrun xctrace list devices
之前的回答:
如果您已经安装了Xcode,您可以使用Instruments获取所有已知设备。使用
instruments -s devices
instruments -s
只是列出可用的模板,这也是我执行上述命令时得到的结果,但那不是设备列表。 - Robert@KKendall的回答为我指明了正确的方向。这是一个只包含单个sed表达式的版本:
system_profiler SPUSBDataType | sed -n -E -e '/(iPhone|iPad)/,/Serial/s/ *Serial Number: *(.+)/\1/p'
我找到了一个类似的问题关于使用多个设备,这是对我有帮助的答案:
#!/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
还可以使用ios-deploy:
ios-deploy -c | grep -oE 'Found ([0-9A-Za-z\-]+)' | sed 's/Found //g'
xcrun xctrace list devices
出现故障,返回错误的设备。现在我使用ios-deploy -c -t 1 -W -C -j
。 - kraftydevilxcrun xctrace list devices
出现故障,返回错误的设备。现在我使用ios-deploy -c -t 1 -W -C -j
。 - undefined