くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Android/iOSのエミュレータ/シミュレータで言語設定をコマンドで変更する

スマホアプリで多言語対応をするとに、
コマンドで言語設定を変更したいなと思い、
いろいろ調べたときの備忘録(*´ω`*)

Android

公式ドキュメントに記載があったけど、
以下ではうまく以下なかった...

$ adb shell
# emulator内で
$ setprop persist.sys.locale fr-CA;stop;sleep 5;start

いろいろ調べてみると、appiumの設定ツールを使うとうまくいくらしい。

Releasesにあるsettings_apk-debug.apkをダウンロードして、 インストールしておく必要がある。

インストールが完了したら、以下のコマンドでOK

# 1度のみ: 言語設定できるように権限を付与
$ adb shell pm grant io.appium.settings android.permission.CHANGE_CONFIGURATION

# en_US に変更
adb shell am broadcast -a io.appium.settings.locale -n io.appium.settings/.receivers.LocaleSettingReceiver --es lang en --es country US 

iOS

iOSの場合は、simctlを使えばOK

# en_US に変更
$ xcrun simctl spawn booted defaults write -globalDomain AppleLanguages -array "en-US"
$ xcrun simctl spawn ${DEVICE} defaults write -globalDomain AppleLocale -string "en_US"

# 変更を反映
$ killall -HUP SpringBoard

参考にしたサイトさま