在 XCUITest/Simulator 中更改键盘

Change Keyboard in XCUITest/Simulator

我想以编程方式为我的 XCUITests 更改键盘语言以尝试各种不同的键盘。我试过:

XCUIApplication().launchArguments += ["-AppleLanguages", "(fr)"]
XCUIApplication().launchArguments += ["-AppleLocale", "fr_FR"]

但这只会改变语言和语言环境,但它仍然保留模拟器默认键盘。我知道我可能可以通过转到设置应用程序(在 UITest 内部)并更改键盘来完成此操作,但我想将其作为输入参数或类似参数来完成。

我也不希望在模拟器上同时安装所有键盘语言,只选择我选择的一种语言。

我怎样才能做到这一点?

由于您是在 Simulator 中执行的,因此您可以访问整个 macOS 磁盘 space,包括 Simulator 支持文件。

每个模拟器都有自己的设置,位于

$HOME/Developer/CoreSimulator/Devices/SIMULATOR_ID/data/Library/Preferences/.GlobalPreferences.plist

在此文件中,您可以通过编程方式更改 AppleKeyboards

.plist 文件的新路径,用于根据 Roman Zakharov 的回答更改键盘属性:

/Users/YOUR_USER/Library/Developer/CoreSimulator/Devices/YOUR_SIMULATOR_ID/data/Library/Preferences/com.apple.keyboard.preferences.plist

模拟器 ID 可以从 Xcode 找到:Window -> 设备和模拟器 -> 模拟器。标识符值是 UDID。