我在xcode中使用swift自动进行UI测试,我需要始终禁用硬件键盘进行测试。有没有办法确保在没有人为干预的情况下禁用硬件键盘,即命令行脚本?这些UI测试将在构建服务器上运行,因此不希望手动启动模拟器并关闭硬件键盘。
我看过xcrun simctl选项与模拟器进行交互,但我无法弄清楚如何做我想做的事情。此外,我发现了一些SO帖子,表明我正在尝试做的事情是不可能的,但我不确定帖子是否正在询问我的要求。
我可以通过shell脚本为iOS模拟器设置硬件键盘吗?
答案 0 :(得分:4)
有一个带有模拟器首选项的plist位于~/Library/Preferences
要更改它以关闭硬件键盘,请确保模拟器已关闭,然后运行此命令:
defaults write com.apple.iphonesimulator ConnectHardwareKeyboard -bool no
您可以在脚本中使用xcrun simctl
选项来关闭模拟器。
答案 1 :(得分:3)
对于包括XCODE 11在内的Xcode的较新版本。这很好用。将其作为运行脚本添加到UITest目标的预操作中:
xcrun simctl shutdown ${TARGET_DEVICE_IDENTIFIER}
plutil -replace DevicePreferences.${TARGET_DEVICE_IDENTIFIER}.ConnectHardwareKeyboard -bool NO ~/Library/Preferences/com.apple.iphonesimulator.plist