我正在使用xcode中的swift自动UI测试,我需要硬件键盘在我的测试中总是被禁用。是否有办法确保在不需要人工干预的情况下禁用硬件键盘,即命令行脚本?这些UI测试将在构建服务器上运行,因此手动启动模拟器并关闭硬件键盘是不可取的。
我看过xcrun simctl选项来与模拟器进行交互,但是我还没有弄清楚如何做我想做的事情。此外,我还发现了一些这样的帖子,表明我试图做的事情是不可能的,但我不确定这些帖子是否在问我想问的是什么。
我可以通过shell脚本将硬件键盘设置为关闭iOS模拟器吗?
发布于 2016-06-02 04:23:26
在~/Library/Preferences
有一个带有模拟器首选项的plist
若要将其更改为关闭硬件键盘,请确保模拟器已关闭,然后运行以下命令:
defaults write com.apple.iphonesimulator ConnectHardwareKeyboard -bool no
您可以在脚本中使用xcrun simctl
选项关闭模拟器。
编辑
苹果公司在2018-2019年的某个时候改变了这一点,我在其他地方找到了这个答案,所以它对我来说是有效的:
/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
发布于 2020-04-27 13:11:20
对于较新版本的Xcode,包括XCODE 11。将其添加到UITest目标的预操作中,作为运行脚本:
xcrun simctl shutdown ${TARGET_DEVICE_IDENTIFIER}
plutil -replace DevicePreferences.${TARGET_DEVICE_IDENTIFIER}.ConnectHardwareKeyboard -bool NO ~/Library/Preferences/com.apple.iphonesimulator.plist
https://stackoverflow.com/questions/37553111
复制相似问题