viernes, 27 de septiembre de 2024

Permisos y librerías externas

Google cada vez se pone mas quisquilloso a la hora de permitir que las aplicaciones soliciten permisos y la verdad es que resulta muy tedioso adaptarse a las normas de Google, sobre todo si utilizas librerías externas. En este artículo voy a describir cómo saber todos los permisos que requiere tu aplicación y como eliminar aquellos que realmente no estás utilizando.


En una reciente actualización de una de mis aplicaciones, google detecto que utilizaba algunos permisos de acceso a vídeos e imágenes y me indicó que para publicar la app necesitaba justificar el uso de dichos permisos.

Realmente la app no necesita esos permisos y no estaban declarados en mi fichero AndroidManifest pero alguna de las librerías externas que utiliza la app sí que los tenían declarado, y es que cuando una librería solicita permisos en su propio AndroidManifest.xml, esos permisos se fusionan con el AndroidManifest.xml de tu aplicación. 

¿Cómo saber qué permisos utiliza realmente mi aplicación?

Para averiguar qué permisos están utilizando las librerías de tu aplicación en Android Studio, puedes seguir estos pasos (aunque hay otros métodos para averiguarlo). Después de compilar el APK, puedes descompilarlo y revisar el archivo AndroidManifest.xml para ver los permisos. Puedes hacerlo con herramientas como APK Analyzer, que viene integrado en Android Studio. Los pasos a seguir para usar APK Analyzer son los siguientes:

  • En Android Studio, ve a Build > Analyze APK.
  • Selecciona tu APK compilado. Android Studio te mostrará una vista del APK. 
  • Abre el archivo AndroidManifest.xml para revisar los permisos solicitados.

Con este método podemos averiguar qué permisos solicita nuestra app.

El siguiente paso sería eliminar de nuestra app, si realmente no los estamos usando, y comprobar que todo funciona correctamente.

Eliminar permisos de librerías externas

La opción más sencilla que he encontrado es la siguiente:

  • Abre el archivo AndroidManifest.xml de tu proyecto.
  • Busca los permisos que la librería ha añadido al manifiesto fusionado con el método descrito anteriormente (si no lo has hecho ya).
  • Usa la propiedad tools:node="remove" para eliminar esos permisos del manifiesto de tu aplicación. 

Aquí un ejemplo para eliminar algunos permisos:

Esto eliminará los permisos solicitado por la librería, lo que evitará que tu aplicación lo solicite al usuario.

Nota: Para que esto funcione, asegúrate de tener la siguiente línea en la cabecera del fichero AndroidManifest.xml:


Ahora, vuelve a compilar la app, comprueba que ya no requiere los permisos que te han dado problemas y ejecuta la app en tu dispositivo para confirmar que la app funciona correctamente.

Resumen

A mi este método me ha funcionado aunque es cierto que, dependiendo de la libraría externa utilizada, puede que no funcione. Si me ocurre esto pues tendré que buscar otra forma de "esquivar" el uso de permisos que me complican la vida a la hora de subir una app a Google Play.



No hay comentarios:

Publicar un comentario