Cuối cùng, tôi đã viết một tập lệnh chỉnh sửa tệp .plist của Trình mô phỏng và đặt ConnectHardwareKeyboard
tính thành false cho trình giả lập được chọn. Bạn đã nghe đúng, nó thay đổi thuộc tính cho trình giả lập được chọn cụ thể trong từ điển "DevicePreferences" thay vì chỉnh sửa thuộc tính toàn cầu.
Đầu tiên, tạo một tập lệnh shell có tên là void-hardware-keyboard.sh với các nội dung sau. Bạn có thể đặt nó trong "YourProject / xyzUITests / Sc 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
Bây giờ hãy làm theo các bước sau để gọi nó bằng cách chuyển udid của trình giả lập được chọn làm đối số:
- Chỉnh sửa lược đồ Xcode của bạn (hoặc giao diện người dùng kiểm tra lược đồ cụ thể nếu bạn có)
- Chuyển đến: Kiểm tra> Hành động trước
- Thêm tập lệnh mới bằng cách nhấn vào biểu tượng "+"> "Hành động tập lệnh chạy mới".
- Quan trọng: Bên trong thả xuống "Cung cấp cài đặt bản dựng từ" chọn mục tiêu ứng dụng chính của bạn, không phải mục tiêu kiểm tra giao diện người dùng.
- Bây giờ thêm đoạn script sau vào vùng văn bản bên dưới.
Tập lệnh bên trong Kiểm tra> Hành động trước:
#!/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
Thời gian để kiểm tra nó:
- Khởi chạy giả lập
- Kích hoạt bàn phím phần cứng cho nó
- Chạy bất kỳ kiểm tra giao diện người dùng với tương tác bàn phím. Quan sát trình mô phỏng khởi động lại và bàn phím phần cứng bị tắt. Và tương tác bàn phím của bài kiểm tra đang hoạt động tốt. :)