android/app/src/main/AndroidManifest.xml に <uses-permission android:name="{パーミッション名}" tools:node="remove" /> を追加する事で、意図しない不要なパーミションを削除できる
背景
意図しない READ_PHONE_STATE が付与された APK(Android application PacKage) を Google Play Console にアップロードした際に「プライバシーポリシーの設定が必要となります」エラーが発生した
原因
- 利用してる React Native のライブラリ( react-native-device-info ) によってビルドした APK に
READ_PHONE_STATEのパーミッションが付与されていた為react-native-device-infoの getPhoneNumber() がandroid.permission.READ_PHONE_STATEを使用する- 今回のアプリでは
getPhoneNumber()は未使用 (電話番号の取得は不要)
- 利用してる React Native のライブラリ( react-native-device-info ) によってビルドした APK に
解決方法
android/app/src/main/AndroidManifest.xmlに下記の設定を追加<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
作業メモ: before/after
Gradele でビルド ($ ./gradlew assembleRelease)
before
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />を追加前android/app/build/intermediates/manifests/full/release/AndroidManifest.xmlに<uses-permission android:name="android.permission.READ_PHONE_STATE" />が付与されていた
after
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />を追加後android/app/build/intermediates/manifests/full/release/AndroidManifest.xmlに<uses-permission android:name="android.permission.READ_PHONE_STATE" />が付与されなくなった