2015-07-01 24 views
7

W naszej build.gradle zaktualizowaliśmy bibliotekę reklamy play-usługi z 6.5.87 do 7.5.0PlayServices reklamy 7.5.0 biblioteki potrzebują pozwolenia WRITE_EXTERNAL_STORAGE

compile com.google.android.gms:play-services-ads:7.5.0 

Po uaktualnieniu widzimy nowe zezwolenie w naszym scalone AndroidManifest.xml (umieszczone w/build/półproduktów/manifesty/full/release /)

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

odniesieniu do logarytmu ManifestMerger to uprawnienie jest dodawana przez play-services ogłoszenia

ADDED from com.google.android.gms:play-services-ads:7.5.0:30:9 
    android:theme 
ADDED from com.google.android.gms:play-services-ads:7.5.0:31:13 
    android:name 
ADDED from com.google.android.gms:play-services-ads:7.5.0:30:19 
    uses-permission#android.permission.WRITE_EXTERNAL_STORAGE 

W oficjalnej dokumentacji nie widzimy żadnej wskazówki, że to uprawnienie jest potrzebne. Jedynie następujące uprawnienia są udokumentowane:

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

(https://developers.google.com/mobile-ads-sdk/docs/dfp/android/quick-start#modifying_the_android_manifest)

Czy jest jakaś oficjalna informacja, dlaczego to nowe uprawnienie dodano? Czy to błąd?

Obecnie mamy problem z wytłumaczeniem naszych użytkowników, dlaczego potrzebujemy tego nowego pozwolenia.

EDYCJA: Zły alarm! Mylnie zinterpretowałem plik manifest-merger-result.txt. Nowe zezwolenie nie zostało dodane przez zależność od play-services-ads, ale dodaliśmy także zależność od play-services-location. Usługa odtwarzania-lokalizacja ma odniesienie do usług odtwarzania-map, która potrzebuje tego uprawnienia do buforowania płytek.

Prawidłowa interpretacja oczywistej fuzji-Result.txt będący wynikiem jest:

uses-permission#android.permission.WRITE_EXTERNAL_STORAGE 
ADDED from com.google.android.gms:play-services-maps:7.5.0:22:5 

play-usługi-maps automatycznie dodać ten "brakujący" zezwolenie, jeśli lib został dodany. Byłoby miło wiedzieć, czy dobrze jest usunąć te uprawnienia mapowe, jeśli nie korzystamy z Map-API. Ponieważ używamy tylko interfejsu API lokalizacji.

+0

W jaki sposób otrzymałeś te dzienniki "ADDED"? wszystkie moje aplikacje korzystają z modułu 'play-services-ads' i nie mam dodanego uprawnienia" android.permission.RED_REMEX_INTERNAL_STORAGE ". –

+0

Po prostu obejrzałem w manifeście-merger-release-report.txt w/app/build/outputs/logs – Christopher

+2

Jared: https://commonsware.com/blog/2015/06/25/hey-where-did-these -permissions-come-from.html –

Odpowiedz

1

Zostało to naprawione jako część Google Play services 8.3 - interfejs API Map Google (którego lokalizacja jest podstawą) nie wymaga już pozwolenia na przechowywanie i nie jest już dodawany przez połączenie manifestu.