No se pueden usar marcadores de posición de manifiesto para eliminar un permiso

Estoy intentando utilizar un marcador de posición de manifiesto para eliminar un nodo de uses-permission en el AndroidManifest.xml para las versiones de lanzamiento sin suerte.

Construir un gradiente

 buildTypes { release { manifestPlaceholders.excludeDebugPermissions = "remove" } debug { manifestPlaceholders.excludeDebugPermissions = "merge" } } 

AndroidManifest.xml

 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" tools:node="${excludeDebugPermissions}" /> 

Produce un error como este:

Error: Error de ejecución para la tarea ': app: processDebugManifest'. No enum constante com.android.manifmerger.NodeOperationType. $ {EXCLUDE_DEBUG_PERMISSIONS}

Pero usar el marcador de posición en cualquier otro lugar funciona correctamente (el manifiesto combinado es correcto y no hay error), por ejemplo

 <uses-permission android:name="${excludeDebugPermissions}" tools:node="remove" /> 

Supongo que el atributo de las tools:node no soporta marcadores de posición de manifiesto y probablemente lo voy a hackear sustituyendo el nombre de permiso en lugar del marcador de nodo ( merge / remove ), pero preferiría evitarlo si fuera posible.

¿Algún consejo?

En respuesta a tu comentario sobre reaccionar nativo, encontré esto: https://github.com/facebook/react-native/issues/5886

La solución era tener esto en su tipo de construcción que es ligeramente diferente a lo que tiene actual:

 buildTypes { debug { manifestPlaceholders = [excludeSystemAlertWindowPermission: "false"] } release { manifestPlaceholders = [excludeSystemAlertWindowPermission: "true"] } } 

Así que esto estaría en su manifiesto:

 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" tools:remove="${excludeSystemAlertWindowPermission}"/> 
  • Los recursos referenciados desde el manifiesto no pueden variar según la configuración
  • Descargar APK desde el servidor e instalarlo en el dispositivo
  • Leer ApplicationManifest de Aplicación de Android (apk) usando .NET
  • Extensión de archivos múltiples / filtros de intención de tipo mimetype con una actividad
  • Cómo iniciar la aplicación en el botón de encendido presione
  • El directorio de datos no tiene permiso de lectura / escritura en Android
  • Android múltiple <application> en un androidmanifest
  • El flujo maestro / detallado tiene un nivel mínimo de api igual al uso
  • ¿Cómo cambiar el nombre de una aplicación de Android?
  • Icono de aplicación que falta en Android
  • ¿Cómo determina Android si desea mover el diseño hacia arriba al mostrar el teclado virtual?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.