如何动态获取IOS模拟器设备的UID,然后安装到该设备中。

问题描述 投票:0回答:1

如何动态获取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}'"
ios xcode bash appium ios-simulator
1个回答
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}')"

希望能帮到你


1
投票

你可以得到模拟器的列表和他们的ID 。

instruments -s devices
© www.soinside.com 2019 - 2024. All rights reserved.