Skip to content

Instantly share code, notes, and snippets.

@igorepst
Created July 1, 2015 12:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save igorepst/f6e67ecb6549f2cec6ef to your computer and use it in GitHub Desktop.
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
<!-- START: XXX Do not remove the comment's START-END pair. Used by Gradle -->
...
<!-- END: XXX -->
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"
}
}
}
}
@igorepst
Copy link
Author

igorepst commented Jul 1, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment