2017-04-10 13 views
1

シミュレータを自動化UITestingに設定する必要があります。 特に、キーボードからオートコレクション、スペルチェック、予測などを削除します。自動UITestingのシミュレータを設定する

私はそのようなシミュレータのためのことをやっている

:UUIDがあるので、テストはに別のデバイスを実行すると、それはセットアップシミュレータをしません、

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

ことに問題がありますハードコードされています。

私はまた、このように起動した/選択されたシミュレータにできる午前:私はiPhone 7及びません7+のUUIDを得るためにiPhone 7 (に配置する必要があり

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

。これは以前のXcodeでSimulatorとしてiPhone 7を実際に選択した場合にのみ機能します。 もう1つの方法は、iPhone 7 (bootedに置き換えることです。

しかし、これを動作させるには、スクリプトを実行するためにSimulatorが必要です。すでに実行されている場合、plistファイルを変更しても、シミュレータの設定は実際には更新されません。

シミュレータを起動してから、セットアップする前にUUIDを取得するにはどうすればよいですか?

ありがとうございます。

答えて

4

pluは、​​のシミュレータを操作できる宝石を作成しました。これは、デバイスを作成、削除、起動することができます。 1つの興味深い機能は、キーボードヘルパーを無効にすることです。 Fastlaneを使用している場合は、すべてのユーザーのキーボードヘルパーを無効にする新しいプライベートレーンを作成できます。このレーンを追加Fastfile

[sudo] gem install simctl 

:この宝石の使用をインストールするには

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

今、あなたのテストのレーンでは、このいずれかのようdisable_keyboard_helpersを使用することができます。

lane :test do |options| 
    disable_keyboard_helpers 
    scan 
end 

ファストレーンを使用していない場合でも、Rubyコマンドを直接実行することにより、:

ruby -e "require 'simctl'; SimCtl.list_devices.each { |d| d.settings.disable_keyboard_helpers }" 
関連する問題