La mise à jour de la bibliothèque d'installation de référents de la version 1.0 vers la version 1.1 a ajouté les autorisations suivantes:
WRITE_EXTERNAL_STORAGE
READ_EXTERNAL_STORAGE
READ_PHONE_STATE
Ces autorisations ne sont pas présentes dans la bibliothèque Install Referrer Library 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>
Source: https://mvnrepository.com/artifact/com.Android.installreferrer/installreferrer/1.1
Pourquoi ces autorisations ont-elles été ajoutées au manifeste fusionné?
Les versions 1.1 et 1.1.1 ne contiennent pas "minSdkVersion". Cela ajouterait automatiquement ces autorisations. Voir un problème similaire ici: Google Play Services 12.0.1 .
Solution
La version 1.1.2 résout ce problème.
Détails
Manifest.xml pour v1.0 (à partir de 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>
Manifest.xml pour v1.1 (à partir de 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>
En effet, ils ont ajouté une dépendance à
com.google.Android.gms:play-services-measurement:17.2.1
Ce qui ajoute ces autorisations.
Vous pouvez le trouver dans le fichier: manifest-merger-blame-debug-report.txt qui se trouve sous "yourApp/build/intermediates/manifest_merge_blame_file/debug
C'est probablement un bug. Je viens de rétrograder à 1.0. Mais si vous avez besoin de cette version, vous pouvez ajouter
<uses-permission Android:name="<permission_name>" tools:node="remove" />
Pour le désactiver.
Sachez que si vous utilisez une API qui en a besoin à l'intérieur de la bibliothèque, cela pourrait entraîner un plantage donc je ne le recommanderai pas.