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

问题描述 投票:0回答:4

我需要使用命令行启动使用特定语言的iOS模拟器。所以我发现我可以使用

instruments -w <device>

它工作得很好,我可以设置特定的设备。但是如何运行特定语言的模拟器呢?我尝试过添加

-AppleLanguages -AppleLocale

但有一些警告:

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

谢谢!

ios xcode instruments xcodebuild
4个回答
7
投票

要运行您的应用程序,必须安装并找到(如果没有,将打开默认语言)

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

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)"

7
投票

使用特定语言启动

iOS Simulator
的唯一方法是更改其
.GlobalPreferences.plist
文件的内容。使用
xcrun
工具将不起作用,因为它会将参数传递给启动的应用程序,并且不会更改模拟器本身的语言。对
.GlobalPreferences.plist
的操作非常困难,因为它是二进制
plist
文件,因此您无法将其修改为“正常”
xml
。更改其内容最简单的方法就是编写简单的
Xcode Command Line Tool application
,Foundation
SDK
拥有修改二进制文件
plists
所需的所有工具。


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

0
投票

无需重新启动即可更改 iOS 模拟器上的区域设置

如果您需要更改 iOS 模拟器上的区域设置而不重新启动它,您可以使用以下最少命令:

xcrun simctl spawn booted defaults write 'Apple Global Domain' AppleLocale -string es_ES
xcrun simctl spawn booted defaults write 'Apple Global Domain' AppleLanguages -array es
killall -HUP SpringBoard

此方法改编自此要点

Appium 重启的附加服务

Appium 更进一步,重新启动附加服务以确保完全本地化,如 Appium 的 iOS 模拟器设置中所示:

  • com.apple.SpringBoard:翻译SpringBoard和推送通知的系统提示。
  • com.apple.locationd:翻译系统提示的位置。
  • com.apple.tccd:翻译相机、麦克风、联系人、照片和应用程序跟踪透明度的系统提示。
  • com.apple.akd:翻译“使用您的 Apple ID 登录”系统提示。

要重新启动这些服务,您可以使用:

xcrun simctl spawn booted defaults write 'Apple Global Domain' AppleLocale -string es_ES
xcrun simctl spawn booted defaults write 'Apple Global Domain' AppleLanguages -array es 

xcrun simctl spawn booted launchctl stop com.apple.SpringBoard
xcrun simctl spawn booted launchctl stop com.apple.locationd
xcrun simctl spawn booted launchctl stop com.apple.tccd
xcrun simctl spawn booted launchctl stop com.apple.akd

更改区域设置的完整脚本

我创建了一个脚本以方便使用,例如

./change_ios_locale_without_reboot.sh en_GB

© www.soinside.com 2019 - 2024. All rights reserved.