LoginSignup
1
0

More than 3 years have passed since last update.

[Android] installreferrer:1.1.1の罠

Posted at

「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側のバグで、過去に意図しないパーミッションが自動付与されることが何回か起きてるらしい。

スクリーンショット 2020-02-21 9.03.21.png

今後、ライブラリを更新したらパーミッションを確認したほうがいいかも(面倒くさい…)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0