smn*_*mnk 1 automated-tests simulator ios run-script xcode-ui-testing
我需要设置我的Simulators for Automated UITesting.特别是从键盘上删除Autocorrection,Spellchecking,Prediction等.
我正在为一个模拟器这样做:
plutil -replace KeyboardAutocapitalization -bool NO -- ~/Library/Developer/CoreSimulator/Devices/319FF855-F54C-4BB7-BDED-F0CC4B1FF8FC/data/Library/Preferences/com.apple.Preferences.plist
Run Code Online (Sandbox Code Playgroud)
问题是,当测试在另一台设备上运行时,它将不会设置模拟器,因为UUID是硬编码的.
我也能够像这样启动/选择模拟器:
currentUUID="$(xcrun simctl list devices | grep "iPhone 7 (" | egrep -o -i "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}")"
Run Code Online (Sandbox Code Playgroud)
我必须放在哪里iPhone 7 (才能获得UUIDiPhone 7而不是7+.这也只有在我之前在Xcode中选择iPhone 7作为模拟器时才有效.另一种方法是更换iPhone 7 (with booted.
但为了使其工作,脚本需要模拟器已经运行.当它已经运行时,更改plist文件实际上不会更新模拟器上的设置.
我怎样才能启动模拟器,然后在设置之前抓住它的UUID?
谢谢.
plu创建了一个simctl能够操纵模拟器的宝石.它可以创建,删除,启动设备并执行更多操作.一个有趣的功能是禁用键盘助手.如果您使用Fastlane,您可以创建新的私人通道,这将禁用所有人的键盘助手.
要安装此gem,请使用:
[sudo] gem install simctl
Run Code Online (Sandbox Code Playgroud)
在Fastfile添加此通道:
private_lane :disable_keyboard_helpers do
require "simctl"
SimCtl.list_devices.each do |d|
d.settings.disable_keyboard_helpers
end
end
Run Code Online (Sandbox Code Playgroud)
现在在您的测试通道中,您可以disable_keyboard_helpers像这样使用:
lane :test do |options|
disable_keyboard_helpers
scan
end
Run Code Online (Sandbox Code Playgroud)
如果您没有使用Fastlane,您仍然可以simctl通过直接执行Ruby命令来使用:
ruby -e "require 'simctl'; SimCtl.list_devices.each { |d| d.settings.disable_keyboard_helpers }"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |