如何动态获取IOS模拟器设备的UID,然后将其安装在该设备中。我目前有这个BASH脚本来完成这项工作,但是,当我在另一台机器上运行该代码时,每次都需要手动更改ID,这使得自动化变得困难。如何通过定义设备类型(如IPHONE.8 8)获得UID,获取ID并使用该ID
#!/bin/bash
export PATH=/usr/local/bin:$PATH
# define variables
DESTINATION="platform=iOS Simulator,name=iPhone 8,OS=13.4.1"
IPHONE_VERSION_ONE="iPhone-7"
APPDIR="$HOME/Library/Developer/Xcode/DerivedData/"
APP_NAME="In-House-iphonesimulator/test.app"
PHONE_ID_ONE="AB877AA-2178-4C29-BF4F-556456C"
xcrun simctl install $PHONE_ID_ONE $APP_LOCATION || { echo 'Unable to install App to Iphone7' ; exit 1; }另外,我把下面的答案放在变量中,但是,如何在变量中存储引号呢?
PHONE_ID="instruments -s devices | grep -m 1 "iPhone 8" | awk -F'[][]' '{print $2}'"发布于 2020-05-12 05:29:16
instruments -s devices | grep "iPhone 8" | awk -F'[][]' '{print $2}'
在这里,这个命令所做的是:
devices
iPhone 8字符串的方括号,并打印了第二个令牌。因此,您应该只获得UDID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
如果系统中有多个iPhone 8模拟器,可以通过在grep命令中添加-m 1键来限制输出:
instruments -s devices | grep -m 1 "iPhone 8" | awk -F'[][]' '{print $2}'只需使用PHONE_ID_ONE将此命令的结果分配给您的$()变量即可。
PHONE_ID="$(instruments -s devices | grep -m 1 'iPhone 8' | awk -F'[][]' '{print $2}')"希望这能有所帮助
发布于 2022-03-31 09:40:45
例如,使用xctrace
xctrace list devices | grep -m 1 "iPhone 12" | awk '{print substr($0,length($0)-36,36)}'发布于 2022-04-19 17:43:54
我已经使用下面的命令来获取发射模拟器的设备id。
xcrun simctl list devices | grep "(Booted)" | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})"如果启动多个设备,则可以通过给定的设备名称获取指定设备的id。
xcrun simctl list devices | grep "(Booted)" | grep "iPhone 12" |grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})"https://stackoverflow.com/questions/61740226
复制相似问题