Wir versuchen, die Google Play Install Referrer Library und zu aktualisieren
Intern werden einige externe Lese- und Schreibberechtigungen hinzugefügt .
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Müssen wir uns wirklich an die Berechtigungen halten?
Abhängigkeit implementation 'com.android.installreferrer:installreferrer:1.1
Quelle https://developer.android.com/google/play/installreferrer/library.html
android
google-play
Wadali
quelle
quelle
Antworten:
Ich bin auch auf dieses Problem gestoßen.
In meinem Fall fügt die Version 1.1 jedoch auch die Berechtigung READ_PHONE_STATE hinzu
Ich habe die .aar-Datei für installreferrer: 1.1 dekompiliert und die Manifest- und POM-Datei überprüft. Diese Dateien enthalten keine Hinweise darauf, dass diese Berechtigungen hinzugefügt werden sollten.
Die Bibliotheksmanifestdatei fügt nur diese Berechtigung hinzu (die in früheren Versionen immer vorhanden ist):
Ich konnte keine offiziellen Informationen dazu finden.
Andere Google-Bibliotheken hatten jedoch in der Vergangenheit Probleme mit dem Hinzufügen zusätzlicher, nicht benötigter Berechtigungen, die kurz darauf in einer Hotfix-Version entfernt wurden.
Beispiel:
Warum wurde die Berechtigung READ_PHONE_STATE hinzugefügt?
Ich hoffe also, dass hier dasselbe passiert.
quelle
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
Informationen zur impliziten Berechtigung finden Sie in dieser Dokumentation: developer.android.com/studio/build/…Install referrer fügt diese Berechtigung hinzu, da der
targetSdkVersion
Wert niedriger ist als die Version, in der die Einschränkung hinzugefügt wurde. Wenn Sie sich den generierten Manifest-Merger-Bericht im Build-Ordner Ihrer App ansehen, sehen Sie folgende Informationen:Informationen zur Funktionsweise dieser impliziten Systemberechtigung unter Android finden Sie in der folgenden Dokumentation: https://developer.android.com/studio/build/manifest-merge#inspect_the_merged_manifest_and_find_conflicts
quelle
Aus dieser Antwort :
Dies liegt daran, dass sie eine Abhängigkeit hinzugefügt haben
Welches fügt diese Berechtigungen hinzu.
Sie finden es in der Datei: manifest-merger-tadel-debug-report.txt unter "yourApp / build / intermediates / manifest_merge_blame_file / debug".
Es ist wahrscheinlich ein Fehler. Ebenfalls,
installreferrer 1.1.1
ist es nicht lösen.Die einfachste Lösung ist ein Downgrade
installreferrer
zurück zu1.0
jetzt.Wenn Sie diese Version benötigen, können Sie Folgendes hinzufügen:
Um es zu deaktivieren. Wenn Sie jedoch eine API verwenden, die diese in der Bibliothek benötigt, kann dies zu einem Absturz führen . Ich werde dies daher nicht empfehlen.
quelle
Zitat aus dieser Antwort (und vervollständigen):
In Version 1.1 und 1.1.1 fehlt "minSdkVersion". Dies würde diese Berechtigungen automatisch hinzufügen (da das Standard-SDK <4 ist, wie von @thiagolr angegeben). Ein ähnliches Problem finden Sie hier: Google Play Services 12.0.1 .
Lösung
Version 1.1.2 löst dieses Problem.
Einzelheiten
Manifest.xml für v1.0 (von https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.0 )
Manifest.xml für v1.1 (von https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1 )
quelle
Man könnte sie theoretisch mit der Manifest-Fusion ganz entfernen:
Aber ob die Bibliothek dann noch wie erwartet funktioniert, ist eine andere Geschichte -
Es ist eher eine Ausnahme, dass eine Google-Bibliothek unnötige Berechtigungen erfordert.
In den Versionshinweisen und in der Dokumentation werden keine Berechtigungen erwähnt.
quelle
Diese Berechtigungen werden hinzugefügt, da
com.android.installreferrer
sie eine targetSdkVersion <4 haben. Sie können sie in der Datei manifest-merger-release-report.txt im Ordner Temp \ gradleOut \ build \ output \ logs in Ihrem Projekt anzeigen . Dies ist ein Fehler und wird wahrscheinlich auf einer neueren Version behoben.Um dies zu beheben, müssen Sie herausfinden, welches Plugin
com.android.installreferrer
als Abhängigkeit hinzugefügt wird .In meinem Projekt war der Schuldige das Facebook- Plugin. Es verwendet das
com.facebook.android:facebook-core:5.15.x
Paket, das für das Hinzufügen dercom.android.installreferrer:installreferrer:1.1
Abhängigkeit verantwortlich ist.Die Lösung bestand darin, ein Rollback durchzuführen
com.facebook.android:facebook-core:5.13.0
, für das keinecom.android.installreferrer
Abhängigkeit besteht.Bearbeiten Sie die Datei
FacebookSDK/Plugins/Editor/Dependencies.xml
und ändern Sie diese Pakete in:Vergessen Sie nicht, die Abhängigkeiten erneut aufzulösen:
Assets > Play Services Resolver > Android Resolver > Force Resolve
quelle
1.1.2 ist freigegeben, es fügt minSdkVersion korrekt hinzu.
quelle