如何动态获取IOS模拟器设备的UID,然后安装到该设备中。我目前有这个BASH脚本,可以完成这个工作,但是,当我在不同的机器上运行这个代码时,每次都需要手动更改ID,这给自动化带来了困难。我怎么能只通过定义设备类型来获取UID,比如IPHONE.8获取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}'"
instruments -s devices | grep "iPhone 8" | awk -F'[][]' '{print $2}'
在这里,你列出了你所有的iOS设备-> 寻找 iPhone 8
在结果上 -> 用方括号分割字符串并打印第二个标记。你应该只得到UDID。
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
如果你的系统中有不止一个iPhone 8模拟器,你可以通过添加 -m 1
键的grep命令。
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}')"
希望能帮到你
你可以得到模拟器的列表和他们的ID 。
instruments -s devices