Expo Locationのパーミッションダイアログのテキストが日本語にならない
設定した日本語のテキストが出ない
Expo Location を使ったアプリでパーミッションのダイアログにデフォルトのテキストが出ていて、それに気づかないまま審査に出したらリジェクトされました。
Guideline 4.0 - Design
We noticed an issue in your app that contributes to a lower-quality user experience than App Store users expect:
- Your app's permissions requests are not written in the same language as your app's Japanese localization. To help users understand why your app is requesting access to a specific feature, your app's permission requests should be in the same language as your app's current localization.
Since App Store users expect apps to be simple, refined, and easy to use, we want to call your attention to this design issue so you can make the appropriate changes.
「パーミッションリクエストが日本語になってないよ」
- Location
- A library that provides access to reading geolocation information, polling current location or subscribing location update events from the device.
こちらを参考にして app.json
に日本語のテキストを入れていたのですが。
json
{
"expo": {
"plugins": [
[
"expo-location",
{
"locationAlwaysAndWhenInUsePermission": "【位置情報の取得を許可してください的なメッセージ】"
}
]
]
}
}
bare React Native projects
調べてみると Expo Bare workflow の場合は Info.plist
に記述が必要とのこと。
react-native-google-mobile-ads
とかアクセス解析のために @react-native-firebase/app
を使っていたので Expo Bare workflow になっていました。
- expo/packages/expo-location at main · expo/expo
- An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web. - expo/expo
ios.infoPlist
に追加します。
あとはよくわからないけどパーミッション系のプロパティが3つあるようなので念のため追加しておきました。
(たぶん不要)
json
{
"expo": {
"ios": {
"infoPlist": {
"locationAlwaysAndWhenInUsePermission": "【位置情報の取得を許可してください的なメッセージ】",
"locationWhenInUsePermission": "【位置情報の取得を許可してください的なメッセージ】",
"locationAlwaysPermission": "【位置情報の取得を許可してください的なメッセージ】"
}
},
"plugins": [
[
"expo-location",
{
"locationAlwaysAndWhenInUsePermission": "【位置情報の取得を許可してください的なメッセージ】",
"locationWhenInUsePermission": "【位置情報の取得を許可してください的なメッセージ】",
"locationAlwaysPermission": "【位置情報の取得を許可してください的なメッセージ】"
}
]
]
}
}
無事に審査に通ってリリースできました。