Kann keine Manifest-Platzhalter verwenden, um eine Berechtigung zu entfernen

8

Ich versuche, einen Manifest-Platzhalter zu verwenden, um einen uses-permission -Knoten in der AndroidManifest.xml für Release-Builds ohne Glück zu entfernen.

build.gradle

%Vor%

AndroidManifest.xml

%Vor%

Es erzeugt einen Fehler wie folgt:

  

Fehler: Ausführung fehlgeschlagen für Task ': app: processDebugManifest'.   Keine Enum-Konstante com.android.manifmerger.NodeOperationType. $ {EXCLUDE_DEBUG_PERMISSIONS}

Die Verwendung des Platzhalters an einem anderen Ort funktioniert jedoch ordnungsgemäß (das zusammengeführte Manifest ist OK und es liegt kein Fehler vor), z. B.

%Vor%

Also nehme ich an, dass das tools:node -Attribut keine manifesten Platzhalter unterstützt und ich werde es wahrscheinlich hacken, indem ich den Berechtigungsnamen anstelle des Knotenmarkers ( merge / remove ) ersetze, aber ich würde es bevorzugen um es zu vermeiden, wenn möglich.

Irgendwelche Ratschläge?

    
Andrzej Zabost 18.07.2017, 14:42
quelle

2 Antworten

1

Der einfachste und sauberste Weg, den ich gefunden habe, um dieses Problem zu lösen, war eine release-only AndroidManifest Datei ( app/src/release/AndroidManifest.xml ) mit folgendem Inhalt, um die SYSTEM_ALERT_WINDOW Erlaubnis zu entfernen:

%Vor%     
pho79 30.08.2017 17:41
quelle
0

Als Antwort auf Ihren Kommentar zu "reactive native" habe ich Folgendes gefunden: Ссылка

Die Lösung war, dies in Ihren Build-Typen zu haben, was etwas anders ist als das, was Sie aktuell haben:

%Vor%

Das wäre also in Ihrem Manifest:

%Vor%     
RobVoisey 19.07.2017 09:17
quelle