Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何找到设备uuid';通过命令行脚本连接的所有设备的?_Iphone_Ios_Uuid - Fatal编程技术网

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

Iphone 如何找到设备uuid';通过命令行脚本连接的所有设备的?,iphone,ios,uuid,Iphone,Ios,Uuid,我正在iOS设备上运行自动测试。我不想总是连接所有设备。因此,我希望找到所有设备id,然后仅在该设备已连接的情况下启动构建、部署和运行测试的过程 所以我的问题是,如何通过shell脚本找到所有连接设备的设备uuid 谢谢 我发现了一个类似的问题,以下是我的答案: #!/bin/sh i=0 for line in $(system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p' |

我正在iOS设备上运行自动测试。我不想总是连接所有设备。因此,我希望找到所有设备id,然后仅在该设备已连接的情况下启动构建、部署和运行测试的过程

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


谢谢

我发现了一个类似的问题,以下是我的答案:

 #!/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
#/垃圾箱/垃圾箱
i=0
对于$(system|u profiler SPUSBDataType | sed-n-e'/iPad/,/Serial/p'-e'/iPhone/,/Serial/p'| grep“序列号:“| awk-F”:“{print$2}”);做
UDID=${line}
echo$UDID
udid_数组[i]=${line}
i=$($i+1))
完成
cnt=${#udid_数组[@]}

for((i=0;i来自@KKendall的答案使我走上了正确的道路。下面是一个带有单个sed表达式的版本:

system_profiler SPUSBDataType | sed -n -E -e '/(iPhone|iPad)/,/Serial/s/ *Serial Number: *(.+)/\1/p'
编辑:

instruments
命令现在不推荐使用,您应该改为运行

xcrun xctrace list devices
先前的答复:

如果您安装了Xcode,您还可以使用仪器来获取所有已知设备

instruments -s devices
通过brew命令在Mac OS X上安装:
brew安装ideviceinstaller

然后,
idevice\u id-l
将从终端工作

也可以使用:

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

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

+1获取允许解析的答案。这将以单行格式打印设备列表。或者,您也可以使用ios部署-c(无可否认,这不是苹果唯一的解决方案)这个命令仍然有效吗?根据Xcode docs
instruments-s
只列出了可用的模板,这是我执行上述命令时得到的结果,但这不是一个设备列表。输出列表应该包括你的设备列表。@Quanlong我们可以将这个设备列表保存到一个变量中吗?我需要将它保存在一个变量中变量并从此列表中搜索设备。我正在使用shell脚本。如何获取模拟器的UDID以及设备?如何获取模拟器的UDID以及设备?此命令还显示未连接的设备,并且“instruments-s devices”显示为(null)[1112314227ead6e1132b9c20efd74412329e77b6]现在看来这个答案并不实际,因为新的苹果设备的id带有“-”号,比如00008027-0001713202E8002E,但system_profiler显示的id没有“-”:序列号:0000802700001713202E8002E这可以工作,但在某些情况下会包括换行符。添加“| tr-d \'\r\n \”可以修复这个问题。