1

Ich muss meine Simulatoren für automatisierte UITesting einrichten. Vor allem Entfernen von Autokorrektur, Rechtschreibprüfung, Vorhersage usw. von der Tastatur.Einrichten des Simulators für automatisierte UITesting

ich, dass wie das für ein Simulator tue:

plutil -replace KeyboardAutocapitalization -bool NO -- ~/Library/Developer/CoreSimulator/Devices/319FF855-F54C-4BB7-BDED-F0CC4B1FF8FC/data/Library/Preferences/com.apple.Preferences.plist 

Das Problem mit diesem ist, wenn die Tests laufen auf ein anderes Gerät, wird es den Simulator nicht eingerichtet, da die UUID hardcoded.

Ich bin auch in der Lage zu einem gestiefelten/ausgewählten Simulator wie folgt aus:

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}")" 

, wo ich in iPhone 7 ( in Ordnung zu bringen haben die UUID nur das iPhone 7 und nicht die 7+ zu bekommen. Das funktioniert auch nur, wenn ich vorher das iPhone 7 als Simulator in Xcode ausgewählt habe. Eine andere Möglichkeit, dies zu tun ist, die iPhone 7 ( durch booted zu ersetzen.

Damit dies jedoch funktioniert, muss das Skript den Simulator bereits ausführen. Und wenn es bereits ausgeführt wird, werden durch das Ändern der PLIST-Dateien die Einstellungen im Simulator nicht aktualisiert.

Wie würde ich in der Lage sein, einen Simulator zu starten und dann seine UUID zu nehmen, bevor ich es aufstelle?

Vielen Dank.

Antwort

4

plu hat ein simctl Juwel erstellt, das Simulatoren manipulieren kann. Es kann Geräte erstellen, löschen, starten und vieles mehr. Eine interessante Funktion ist das Deaktivieren von Tastatur-Helfern. Wenn Sie Fastlane verwenden, können Sie eine neue private Lane erstellen, die Tastaturhelfer für alle deaktiviert.

dieses Juwel Gebrauch zu installieren:

[sudo] gem install simctl 

Im Fastfile diese Spur hinzufügen:

private_lane :disable_keyboard_helpers do 
    require "simctl" 
    SimCtl.list_devices.each do |d| 
    d.settings.disable_keyboard_helpers 
    end 
end 

Jetzt in Ihrem Prüfstraße, Sie disable_keyboard_helpers wie dieses verwenden können:

lane :test do |options| 
    disable_keyboard_helpers 
    scan 
end 

Wenn Sie Fastlane nicht verwenden, können Sie weiterhinverwendendurch direktes Ausführen des Ruby-Befehls:

ruby -e "require 'simctl'; SimCtl.list_devices.each { |d| d.settings.disable_keyboard_helpers }" 
Verwandte Themen