마지막으로, 시뮬레이터의 .plist 파일을 편집하고 ConnectHardwareKeyboard
하고 선택한 시뮬레이터 속성을 false로 . 잘 들었습니다. 전역 속성을 편집하지 않고 "DevicePreferences"사전에서 특별히 선택된 시뮬레이터의 속성을 변경합니다.
먼저 다음 내용으로 disable-hardware-keyboard.sh 라는 셸 스크립트를 만듭니다 . "YourProject / xyzUITests / Scripts /"내에 배치 할 수 있습니다.
echo "Script: Set ConnectHardwareKeyboard to false for given Simulator UDID"
if [[ $1 != *-*-*-*-* ]]; then
echo "Pass device udid as first argument."
exit 1
else
DEVICE_ID=$1
fi
DEVICE_PREFERENCES_VALUE='<dict><key>ConnectHardwareKeyboard</key><false/></dict>'
killall Simulator # kill restart the simulator to make the plist changes picked up
defaults write com.apple.iphonesimulator DevicePreferences -dict-add $DEVICE_ID $DEVICE_PREFERENCES_VALUE
open -a Simulator # IMPORTANT
이제 다음 단계에 따라 선택한 시뮬레이터의 udid를 인수로 전달하여 호출하십시오.
- Xcode 체계를 편집하십시오 (또는 UI 체계가있는 경우 특정 체계를 테스트하십시오)
- 테스트> 사전 조치로 이동하십시오.
- "+"기호> "새 실행 스크립트 동작"을 눌러 새 스크립트를 추가하십시오.
- 중대한: "빌드 설정 제공"드롭 다운에서 UI 테스트 대상이 아닌 기본 앱 대상을 선택하십시오.
- 이제 아래 텍스트 영역에 다음 스크립트를 추가하십시오.
Test> Pre-actions 내부 스크립트 :
#!/bin/sh
# $PROJECT_DIR is path to your source project. This is provided when we select "Provide build settings from" to "AppTarget"
# $TARGET_DEVICE_IDENTIFIER is the UDID of the selected simulator
sh $PROJECT_DIR/xyzUITests/Scripts/disable-hardware-keyboard.sh $TARGET_DEVICE_IDENTIFIER
# In order to see output of above script, append following with it:
# | tee ~/Desktop/ui-test-scheme-prescript.txt
그것을 테스트 할 시간 :
- 시뮬레이터 시작
- 하드웨어 키보드 사용
- 키보드 상호 작용으로 UI 테스트를 실행하십시오. 시뮬레이터가 다시 시작되고 하드웨어 키보드가 비활성화되어 있는지 확인하십시오 . 그리고 테스트의 키보드 상호 작용이 잘 작동합니다. :)