Estamos tentando atualizar a Biblioteca de referências de instalação do Google Play e
Internamente, está adicionando algumas permissões de leitura e gravação externas .
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Nós realmente precisamos ficar com as permissões?
dependência implementation 'com.android.installreferrer:installreferrer:1.1
Fonte https://developer.android.com/google/play/installreferrer/library.html
android
google-play
wadali
fonte
fonte
Respostas:
Eu também me deparei com esta questão.
Mas no meu caso, a versão 1.1 também está adicionando a permissão READ_PHONE_STATE
Descompilei o arquivo .aar para o installreferrer: 1.1 e verifiquei o manifest e o arquivo pom, não há nada nesses arquivos para indicar que essas permissões devem ser adicionadas.
O arquivo de manifesto da biblioteca adiciona apenas essa permissão (que sempre existe nas versões anteriores):
Não consegui encontrar nenhuma informação oficial sobre isso.
Mas outras bibliotecas do Google tiveram problemas no passado com a adição de permissões adicionais desnecessárias, que foram removidas em uma versão de hotfix logo depois.
Por exemplo, este:
Por que a permissão READ_PHONE_STATE foi adicionada?
Então, espero que o mesmo aconteça aqui.
fonte
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
Informações sobre a permissão implícita podem ser encontradas nesta documentação: developer.android.com/studio/build/…O referenciador de instalação adiciona essa permissão devido ao fato de
targetSdkVersion
ser um valor menor que a versão na qual a restrição foi adicionada. Se você der uma olhada no relatório manifesto-fusão- gerado na pasta de compilação do seu aplicativo, poderá ver estas informações:Informações sobre como esta permissão implícita do sistema funciona no Android podem ser encontradas nesta documentação: https://developer.android.com/studio/build/manifest-merge#inspect_the_merged_manifest_and_find_conflicts
fonte
A partir desta resposta :
Isso ocorre porque eles adicionaram uma dependência ao
O que adiciona essas permissões.
Você pode encontrá-lo no arquivo: manifest-merger-blame-debug-report.txt que está em "yourApp / build / intermediates / manifest_merge_blame_file / debug"
Provavelmente é um bug. Além disso,
installreferrer 1.1.1
não resolve.A solução mais fácil é fazer o downgrade de
installreferrer
volta1.0
para agora.Mas se você precisar desta versão, poderá adicionar:
Para desativá-lo. Mas saiba que, se você usar qualquer API que precise dela dentro da biblioteca, isso poderá levar a uma falha , por isso não recomendo.
fonte
Citando esta resposta (e completando):
As versões 1.1 e 1.1.1 estão ausentes "minSdkVersion". Isso adicionaria automaticamente essas permissões (porque o SDK padrão <4, como dito por @thiagolr). Veja problema semelhante aqui: Google Play Services 12.0.1 .
Solução
A versão 1.1.2 resolve esse problema.
Detalhes
Manifest.xml para v1.0 (de https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.0 )
Manifest.xml para v1.1 (de https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1 )
fonte
Poderíamos teoricamente removê-los completamente com a fusão-manifesto:
Mas se a biblioteca ainda funcionar como esperado, é outra história -
é uma exceção, que uma biblioteca do Google exija permissões desnecessárias.
As notas de versão e a documentação não mencionam permissões.
fonte
Essas permissões foram adicionadas porque
com.android.installreferrer
possui um targetSdkVersion <4. Você pode vê-lo no arquivo manifest-merger-release-report.txt localizado na pasta Temp \ gradleOut \ build \ outputs \ logs dentro do seu projeto. Este é um erro e provavelmente será corrigido em uma versão mais recente.Para corrigir isso, você precisa descobrir qual plugin está adicionando
com.android.installreferrer
como dependência.No meu projeto, o culpado foi o plugin do Facebook . Ele usa o
com.facebook.android:facebook-core:5.15.x
pacote que é responsável por adicionar acom.android.installreferrer:installreferrer:1.1
dependência.A solução foi reverter para
com.facebook.android:facebook-core:5.13.0
, que não temcom.android.installreferrer
dependência.Edite o arquivo
FacebookSDK/Plugins/Editor/Dependencies.xml
e altere estes pacotes para:Em seguida, não se esqueça de resolver as dependências novamente:
Assets > Play Services Resolver > Android Resolver > Force Resolve
fonte
1.1.2 é lançado, ele adiciona minSdkVersion corretamente.
fonte