インストールリファラーライブラリをv1.0からv1.1に更新すると、次の権限が追加されました。
WRITE_EXTERNAL_STORAGE
READ_EXTERNAL_STORAGE
READ_PHONE_STATE
これらの権限は、インストールリファラーライブラリmanifest.xmlには存在しません。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.Android.installreferrer" >
<uses-permission Android:name="com.google.Android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />
<application />
</manifest>
ソース: https://mvnrepository.com/artifact/com.Android.installreferrer/installreferrer/1.1
なぜそれらの権限がマージされたマニフェストに追加されたのですか?
バージョン1.1および1.1.1には「minSdkVersion」がありません。これにより、これらの権限が自動的に追加されます。ここで同様の問題を参照してください: Google Play Services 12.0.1 。
ソリューション
バージョン1.1.2ではこの問題が解決されています。
詳細
Manifest.xml for v1.0(from https://mvnrepository.com/artifact/com.Android.installreferrer/installreferrer/1. から)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android" package="com.Android.installreferrer" >
<uses-sdk
Android:minSdkVersion="8"
Android:targetSdkVersion="22" />
<uses-permission Android:name="com.google.Android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />
<application />
</manifest>
V1.1のManifest.xml( https://mvnrepository.com/artifact/com.Android.installreferrer/installreferrer/1.1 から)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android" package="com.Android.installreferrer">
<uses-permission Android:name="com.google.Android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />
<application />
</manifest>
これは、依存関係が追加されたためです
com.google.Android.gms:play-services-measurement:17.2.1
これらの権限が追加されます。
「yourApp/build/intermediates/manifest_merge_blame_file/debug」にあるmanifest-merger-blame-debug-report.txtファイルにあります。
それはおそらくバグです。現在、1.0にダウングレードしています。しかし、このバージョンが必要な場合は追加できます
<uses-permission Android:name="<permission_name>" tools:node="remove" />
それを無効にします。
ライブラリ内で必要なAPIを使用すると、クラッシュにつながる可能性があるため、お勧めしません。