Próbujemy zaktualizować Google Play Zainstaluj bibliotekę polecających i
Wewnętrznie dodaje pewne zewnętrzne uprawnienia do zapisu .
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Czy naprawdę musimy trzymać się uprawnień?
zależność implementation 'com.android.installreferrer:installreferrer:1.1
Źródło https://developer.android.com/google/play/installreferrer/library.html
android
google-play
wadali
źródło
źródło
Odpowiedzi:
Natknąłem się również na ten problem.
Ale w moim przypadku wersja 1.1 dodaje również uprawnienie READ_PHONE_STATE
Dekompilowałem plik .aar dla installreferrer: 1.1 i sprawdziłem plik manifestu i pom, w tych plikach nie ma nic, co wskazywałoby, że należy dodać te uprawnienia.
Plik manifestu biblioteki dodaje tylko to uprawnienie (które zawsze ma w poprzednich wersjach):
Nie udało mi się znaleźć żadnych oficjalnych informacji na ten temat.
Ale w innych bibliotekach Google występowały w przeszłości problemy z dodawaniem dodatkowych, niepotrzebnych uprawnień, które następnie zostały wkrótce usunięte w wersji poprawki.
Na przykład:
Dlaczego dodano uprawnienia READ_PHONE_STATE?
Mam więc nadzieję, że to samo się tutaj wydarzy.
źródło
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
Informacje na temat domyślnego pozwolenia można znaleźć w tej dokumentacji: developer.android.com/studio/build/…Odsyłacz instalacji dodaje to uprawnienie, ponieważ
targetSdkVersion
jest to wartość niższa niż wersja, w której dodano ograniczenie. Jeśli spojrzysz na wygenerowany raport manifestu połączenia w folderze kompilacji aplikacji, możesz zobaczyć następujące informacje:Informacje na temat działania tego niejawnego uprawnienia systemu na Androidzie można znaleźć w tej dokumentacji: https://developer.android.com/studio/build/manifest-merge#inspect_the_merged_manifest_and_find_conflicts
źródło
Z tej odpowiedzi :
Jest tak, ponieważ dodali zależność do
Co dodaje te uprawnienia.
Można go znaleźć w pliku: manifest-scaler-blame-debug-report.txt, który znajduje się w „yourApp / build / intermediates / manifest_merge_blame_file / debug”
To prawdopodobnie błąd. Ponadto,
installreferrer 1.1.1
nie rozwiązuje go.Najłatwiejszym rozwiązaniem jest na razie
installreferrer
powrót do1.0
starszej wersji.Ale jeśli potrzebujesz tej wersji, możesz dodać:
Aby to wyłączyć. Ale wiedz, że jeśli użyjesz interfejsu API, który potrzebuje go w bibliotece, może to doprowadzić do awarii , więc nie polecam tego robić.
źródło
Cytując tę odpowiedź (i wypełniając):
W wersji 1.1 i 1.1.1 brakuje „minSdkVersion”. Spowoduje to automatyczne dodanie tych uprawnień (ponieważ domyślny zestaw SDK <4, jak powiedział @thiagolr). Zobacz podobny problem tutaj: Usługi Google Play 12.0.1 .
Rozwiązanie
Wersja 1.1.2 rozwiązuje ten problem.
Detale
Manifest.xml dla wersji 1.0 (z https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.0 )
Manifest.xml dla wersji 1.1 (z https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1 )
źródło
Teoretycznie można je całkowicie usunąć za pomocą połączenia manifestów:
Ale jeśli biblioteka nadal będzie działać zgodnie z oczekiwaniami, to inna historia -
jest raczej wyjątkiem, że biblioteka Google wymaga niepotrzebnych uprawnień.
Informacje o wersji i dokumentacja nie wspominają o uprawnieniach.
źródło
Te uprawnienia są dodawane, ponieważ
com.android.installreferrer
ma targetSdkVersion <4. Możesz to zobaczyć w pliku manifestu-połączenia-wydania-raportu.txt znajdującym się w Temp \ gradleOut \ build \ Output \ logs w twoim projekcie. To jest błąd i prawdopodobnie zostanie naprawiony w nowszej wersji.Aby to naprawić, musisz dowiedzieć się, która wtyczka dodaje
com.android.installreferrer
jako zależność.W moim projekcie winowajcą była wtyczka Facebooka . Korzysta z
com.facebook.android:facebook-core:5.15.x
pakietu odpowiedzialnego za dodanie plikucom.android.installreferrer:installreferrer:1.1
zależności.Rozwiązaniem było przywrócenie do
com.facebook.android:facebook-core:5.13.0
, które nie macom.android.installreferrer
zależności.Edytuj plik
FacebookSDK/Plugins/Editor/Dependencies.xml
i zmień te pakiety na:Następnie nie zapomnij ponownie rozwiązać zależności:
Assets > Play Services Resolver > Android Resolver > Force Resolve
źródło
Wydano 1.1.2, dodaje poprawnie minSdkVersion.
źródło