如何通过命令行启动特定语言的iOS模拟器?

8
我需要通过命令行启动使用特定语言的iOS模拟器。我发现可以使用以下命令:
instruments -w <device>

并且现在它正常运行,我可以设置特定设备。但是如何使用特定语言运行模拟器?我已经尝试添加。
-AppleLanguages -AppleLocale

但是有一些警告:

Instruments Usage Error : Specified target process is invalid: -AppleLanguage

感谢您的选择!
4个回答

7
唯一启动指定语言的方法是更改的.GlobalPreferences.plist文件内容。使用xcrun工具将不起作用,因为它会将参数传递给启动的应用程序,而不是更改模拟器本身的语言。对.GlobalPreferences.plist进行操作非常困难,因为它是一个二进制plist文件,所以您无法像“正常”的xml那样修改它。更改其内容的最简单方法是编写简单的,基础SDK具有所有必要的工具来修改二进制plists

仅仅为了减轻某人的痛苦,自Xcode 8以来,plist位于〜/Library/Developer/CoreSimulator/Devices/${YOURID}/data/Library/Preferences...(与之前的Xcode版本不同的路径)。如果我错了,请纠正我,但我认为您现在可以编辑plist文件并保留所需的语言键并删除其他键,它将起作用。此外,我相信您只需使用经典的plist编辑器进行一次编辑即可... - Dominik Bucher
1
这是我在启动模拟器之前用来更改语言环境的脚本: https://gist.github.com/rumax/2470ec2fcc3ef84420542f049589407e 相关文章请参见: https://itnext.io/you-dont-need-gui-or-how-to-control-ios-simulator-from-command-line-bf5cfa60aed2 - mmccabe
@mmccabe,为什么模拟器版本12.4即使在“GlobalPreferences.plist”中设置默认键盘设置后仍然会更改它? - Bruno Bieri
我最终通过做两件事以获得唯一的 iOS 模拟器键盘布局。首先,如此答案所述,我更新了特定模拟器的 GlobalPreferences.plist。然后,我启动了模拟器,并在实际的 UI 测试之前自动化了 iOS 的设置应用程序,以删除由 iOS 模拟器自动添加的键盘。这样,我最终只得到了我想要的键盘布局。获取模拟器 ID 的方法:https://itnext.io/you-dont-need-gui-or-how-to-control-ios-simulator-from-command-line-bf5cfa60aed2 - Bruno Bieri

5

运行应用程序之前必须安装并定位(如果未安装,则会打开默认语言)

使用此命令以某种语言运行您的应用程序

xcrun simctl launch <deviceid> <appid> -AppleLanguages "(pt-BR)"

样例:

xcodebuild -sdk iphonesimulator8.4 -arch i386 install DSTROOT=SomeFolder
xcrun instruments -w "iPhone 6 (8.4 Simulator)"
xcrun simctl install booted SomeFolder/Applications/YourApp.app
xcrun simctl launch booted com.yourdomain.yourapp -AppleLanguages "(pt-BR)"

如果你需要了解如何本地化你的应用程序,这个教程是一个很好的开始。 - Haroldo Gondim

0

0
export UDID=202B1006-C2DE-4CC6–8791–6EA4C3782XXX
plutil -replace AppleLocale -string "en_GB" ~/Library/Developer/CoreSimulator/Devices/$UDID/data/Library/Preferences/.GlobalPreferences.plist
xcrun simctl shutdown $UDID
xcrun simctl boot $UDID

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接