web-dev-qa-db-ja.com

インストールリファラーライブラリv1.1は権限を追加します

インストールリファラーライブラリを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

なぜそれらの権限がマージされたマニフェストに追加されたのですか?

9
sagis

バージョン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>
3
sagis

これは、依存関係が追加されたためです

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を使用すると、クラッシュにつながる可能性があるため、お勧めしません。

5
Shirane85