Class: Snapshot::Fixes::HardwareKeyboardFix

Inherits:
Object
  • Object
show all
Defined in:
snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb

Overview

Having “Connect Hardware Keyboard” enabled causes issues with entering text in secure textfields Fixes github.com/fastlane/fastlane/issues/2494

Class Method Summary collapse

Class Method Details

.patchObject


9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb', line 9

def self.patch
  UI.verbose("Patching simulator to work with secure text fields")

  Helper.backticks("defaults write com.apple.iphonesimulator ConnectHardwareKeyboard 0", print: FastlaneCore::Globals.verbose?)

  # For > Xcode 9
  # https://stackoverflow.com/questions/38010494/is-it-possible-to-toggle-software-keyboard-via-the-code-in-ui-test/47820883#47820883
  Helper.backticks("/usr/libexec/PlistBuddy "\
                   "-c \"Print :DevicePreferences\" ~/Library/Preferences/com.apple.iphonesimulator.plist | "\
                   "perl -lne 'print $1 if /^    (\\S*) =/' | while read -r a; do /usr/libexec/PlistBuddy "\
                   "-c \"Set :DevicePreferences:$a:ConnectHardwareKeyboard false\" "\
                   "~/Library/Preferences/com.apple.iphonesimulator.plist "\
                   "|| /usr/libexec/PlistBuddy "\
                   "-c \"Add :DevicePreferences:$a:ConnectHardwareKeyboard bool false\" "\
                   "~/Library/Preferences/com.apple.iphonesimulator.plist; done", print: FastlaneCore::Globals.verbose?)
end