Created
July 1, 2015 12:07
-
-
Save igorepst/f6e67ecb6549f2cec6ef to your computer and use it in GitHub Desktop.
Gradle: exclude something from AndroidManifest.xml by regexp, then use Proguard to throw it away
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- START: XXX Do not remove the comment's START-END pair. Used by Gradle --> | |
... | |
<!-- END: XXX --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.regex.Pattern | |
android { | |
applicationVariants.all { variant -> | |
variant.outputs.each { output -> | |
if (variant.getBuildType().isMinifyEnabled()) { | |
output.processManifest.doFirst { | |
copy { | |
from "${rootDir}/<project name>/src/main/AndroidManifest.xml" | |
into "${rootDir}/<project name>/src/main" | |
rename { String fileName -> | |
"AndroidManifest.xml.bak" | |
} | |
} | |
def manifestFile = file("${rootDir}/<project name>/src/main/AndroidManifest.xml") | |
def content = manifestFile.getText() | |
def pattern = Pattern.compile("<!-- START: XXX.*?<!-- END: XXX -->", Pattern.DOTALL); | |
content = pattern.matcher(content).replaceAll(""); | |
manifestFile.write(content) | |
} | |
output.processManifest.doLast { | |
copy { | |
from "${rootDir}/<project name>/src/main/AndroidManifest.xml.bak" | |
into "${rootDir}/<project name>/src/main" | |
rename { String fileName -> | |
"AndroidManifest.xml" | |
} | |
} | |
delete "${rootDir}/<project name>/src/main/AndroidManifest.xml.bak" | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Based on Modifying AndroidManifest.xml file per product using Gradle