TODO: SkipNavigation

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.

「パーミッションリクエストが日本語になってないよ」

ogi.png

Location
A library that provides access to reading geolocation information, polling current location or subscribing location update events from the device.
docs.expo.dev

こちらを参考にして 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
github.com

ios.infoPlist に追加します。
あとはよくわからないけどパーミッション系のプロパティが3つあるようなので念のため追加しておきました。
(たぶん不要)

json
{
  "expo": {
    "ios": {
      "infoPlist": {
        "locationAlwaysAndWhenInUsePermission": "【位置情報の取得を許可してください的なメッセージ】",
        "locationWhenInUsePermission":  "【位置情報の取得を許可してください的なメッセージ】",
        "locationAlwaysPermission": "【位置情報の取得を許可してください的なメッセージ】"
      }
    },
    "plugins": [
      [
        "expo-location",
        {
          "locationAlwaysAndWhenInUsePermission": "【位置情報の取得を許可してください的なメッセージ】",
          "locationWhenInUsePermission":  "【位置情報の取得を許可してください的なメッセージ】",
          "locationAlwaysPermission": "【位置情報の取得を許可してください的なメッセージ】"
        }
      ]
    ]
  }
}

無事に審査に通ってリリースできました。

お役立ち男

フロントエンド専門。フリーランスで10年以上活動しています。