62

我正在 iOS 设备上运行自动化测试。我不想总是连接所有设备。因此,我想找到所有设备 ID,然后仅在该设备已连接时才开始构建、部署和运行测试的过程。

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

谢谢!

4

6 回答 6

106

编辑:

instruments命令现在已弃用,您应该运行

xcrun xctrace list devices

上一个答案:

如果你安装了Xcode,你也可以使用Instruments来获取所有已知的设备。和

instruments -s devices
于 2015-06-11T05:36:34.707 回答
25

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

system_profiler SPUSBDataType | sed -n -E -e '/(iPhone|iPad)/,/Serial/s/ *Serial Number: *(.+)/\1/p'
于 2014-03-01T02:36:36.613 回答
20

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

然后idevice_id -l将从终端工作

于 2015-11-27T09:34:52.593 回答
14

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

 #!/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
于 2013-06-21T17:57:12.843 回答
7

Also ios-deploy can be used:

ios-deploy -c | grep -oE 'Found ([0-9A-Za-z\-]+)' | sed 's/Found //g'
于 2019-01-31T13:58:03.900 回答
4

如果您有 XCode,请转到 Window > Devices & Simulators。在该页面上,任何连接的设备都将与您设备上的其他 ID 和统计信息一起显示。这也将通过 WIFI 连接到设备。

于 2020-05-28T22:27:32.217 回答