「INSTALL_REFERRERインテントブロードキャストが廃止される」という公式アナウンスがあった。
広告系ライブラリを使っているとAndroidManifestにINSTALL_REFERRER
がだいたい入ってるのため、対応しなきゃならない。
対応方法
まずAndroidManifest.xmlからINSTALL_REFERRER
を消す
- <receiver>
- <intent-filter>
- <action android:name="com.android.vending.INSTALL_REFERRER" />
- </intent-filter>
- </receiver>
次にapp/build.gradleにcom.android.installreferrer:installreferrer
を追加するのだが、、、
ここで自分は最新バージョンの1.1.1
を追加した。
implementation 'com.android.installreferrer:installreferrer:1.1.1'
このバージョンが失敗だった。
ここでトラップ発動
Android Studioの Analyze APK でAndroidManifestを見てみると、余計なパーミッションが追加されている。
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.READ_PHONE_STATE" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" />
3つも!?
- WRITE_EXTERNAL_STORAGE
- READ_PHONE_STATE
- READ_EXTERNAL_STORAGE
特にREAD_PHONE_STATEが追加されたままリリースすると、ユーザーは驚くこと間違いなし
解決方法
installreferrer:1.0
を使うようにしよう。
- implementation 'com.android.installreferrer:installreferrer:1.1.1'
+ implementation 'com.android.installreferrer:installreferrer:1.0'
これで自動付与されるパーミッションは消えるはずだ
なぜ起きたのか?
おそらくGoogle側のバグで、過去に意図しないパーミッションが自動付与されることが何回か起きてるらしい。
今後、ライブラリを更新したらパーミッションを確認したほうがいいかも(面倒くさい…)