如何通过命令行脚本找到所有连接设备的设备uuid?

Sir*_*III 40 iphone uuid ios

我在iOS设备上运行自动化测试.我希望不必总是连接所有设备.因此,我希望找到所有设备ID,然后只在该设备连接时才启动构建,部署和运行测试的过程.

所以我的问题是,如何通过shell脚本找到所有连接设备的设备uuid?

谢谢!

Qua*_*ong 58

如果安装了Xcode,您也可以使用Instruments获取所有已知设备.同

instruments -s devices
Run Code Online (Sandbox Code Playgroud)

  • +1表示允许解析的答案.这将以单行格式打印出设备列表.或者,也可以使用ios-deploy -c(不可否认,它不是Apple专用解决方案) (2认同)

Jay*_*ske 19

@KKendall的答案让我走上了正确的道路.这是一个带有单个sed表达式的版本:

system_profiler SPUSBDataType | sed -n -E -e '/(iPhone|iPad)/,/Serial/s/ *Serial Number: *(.+)/\1/p'
Run Code Online (Sandbox Code Playgroud)


Sir*_*III 13

我发现了一个关于使用多个设备的类似问题这里是我的答案形式帮助了我:

 #!/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
Run Code Online (Sandbox Code Playgroud)


Shi*_*ppa 13

通过brew命令在Mac OS X上安装ideviceinstaller: brew install ideviceinstaller

然后idevice_id -l将从终端工作


小智 6

也可以使用ios-deploy

ios-deploy -c | grep -oE 'Found ([0-9A-Za-z\-]+)' | sed 's/Found //g'
Run Code Online (Sandbox Code Playgroud)