Nous essayons de mettre à jour la bibliothèque de référence d'installation de Google Play et
En interne, il ajoute des autorisations de lecture / écriture externes .
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Avons-nous vraiment besoin de respecter les autorisations?
dépendance implementation 'com.android.installreferrer:installreferrer:1.1
Source https://developer.android.com/google/play/installreferrer/library.html
android
google-play
wadali
la source
la source
Réponses:
J'ai également rencontré ce problème.
Mais dans mon cas, la version 1.1 ajoute également l'autorisation READ_PHONE_STATE
J'ai décompilé le fichier .aar pour installreferrer: 1.1 et vérifié le fichier manifeste et pom, il n'y a rien dans ces fichiers pour indiquer que ces autorisations doivent être ajoutées.
Le fichier manifeste de bibliothèque ajoute uniquement cette autorisation (qui est toujours présente dans les versions précédentes):
Je n'ai pas pu trouver d'informations officielles à ce sujet.
Mais d'autres bibliothèques Google ont eu des problèmes dans le passé avec l'ajout d'autorisations supplémentaires inutiles, qui ont ensuite été supprimées dans une version de correctif peu de temps après.
Par exemple, ceci:
Pourquoi l'autorisation READ_PHONE_STATE a-t-elle été ajoutée?
J'espère donc que la même chose va se produire ici.
la source
uses-permission#android.permission.READ_PHONE_STATE IMPLIED from android/app/src/main/AndroidManifest.xml:1:1-130:12 reason: com.android.installreferrer has a targetSdkVersion < 4
informations sur l'autorisation implicite peuvent être trouvées dans cette documentation: developer.android.com/studio/build/…Le référent d'installation ajoute cette autorisation car il
targetSdkVersion
s'agit d'une valeur inférieure à la version dans laquelle la restriction a été ajoutée. Si vous consultez le rapport de fusion-manifeste généré dans le dossier de génération de votre application, vous pouvez voir ces informations:Des informations sur le fonctionnement de cette autorisation système implicite sur Android sont disponibles dans cette documentation: https://developer.android.com/studio/build/manifest-merge#inspect_the_merged_manifest_and_find_conflicts
la source
De cette réponse :
En effet, ils ont ajouté une dépendance à
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. Aussi,
installreferrer 1.1.1
ne le résout pas.Solution la plus simple est de rétrograder
installreferrer
revenir à1.0
pour l' instant.Mais si vous avez besoin de cette version, vous pouvez ajouter:
Pour le désactiver. Mais sachez que si vous utilisez une API qui en a besoin dans la bibliothèque, cela pourrait entraîner un plantage , donc je ne le recommanderai pas.
la source
Citant cette réponse (et complétant):
Les versions 1.1 et 1.1.1 ne contiennent pas «minSdkVersion». Cela ajouterait automatiquement ces autorisations (car le SDK par défaut <4 comme dit par @thiagolr). Consultez le même problème 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 (depuis https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.0 )
Manifest.xml pour v1.1 (depuis https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1 )
la source
On pourrait théoriquement les supprimer complètement avec la fusion manifeste:
Mais si la bibliothèque fonctionne toujours comme prévu, c'est une autre histoire -
c'est plutôt une exception, qu'une bibliothèque Google nécessite des autorisations inutiles.
Les notes de publication et la documentation ne mentionnent pas les autorisations.
la source
Ces autorisations sont ajoutées car
com.android.installreferrer
a un targetSdkVersion <4. Vous pouvez le voir sur le fichier manifest-merger-release-report.txt situé dans le dossier Temp \ gradleOut \ build \ outputs \ logs à l' intérieur de votre projet. Il s'agit d'un bug et il sera probablement corrigé sur une version plus récente.Pour résoudre ce problème, vous devez savoir quel plugin ajoute en
com.android.installreferrer
tant que dépendance.Dans mon projet, le coupable était le plugin Facebook . Il utilise le
com.facebook.android:facebook-core:5.15.x
package qui est responsable de l'ajout de lacom.android.installreferrer:installreferrer:1.1
dépendance.La solution était de revenir à
com.facebook.android:facebook-core:5.13.0
, qui n'a pas decom.android.installreferrer
dépendance.Modifiez le fichier
FacebookSDK/Plugins/Editor/Dependencies.xml
et changez ces packages en:Ensuite, n'oubliez pas de résoudre à nouveau les dépendances:
Assets > Play Services Resolver > Android Resolver > Force Resolve
la source
1.1.2 est publié, il ajoute correctement minSdkVersion.
la source