Skip to content

Instantly share code, notes, and snippets.

View jasonwyatt's full-sized avatar
:shipit:
Typing, probably

Jason Feinstein jasonwyatt

:shipit:
Typing, probably
  • Robinhood
  • Seattle, WA
  • 04:42 (UTC -07:00)
  • X @jasonwyatt
View GitHub Profile
@jasonwyatt
jasonwyatt / VersionInfo.groovy
Created August 2, 2017 17:34
Get versionName and versionCode from APK file.
class VersionInfo {
public static Pattern VERSION_NAME_PATTERN = Pattern.compile("versionName='([0-9]+(\\.[0-9]+)+)'", Pattern.MULTILINE)
public static Pattern VERSION_CODE_PATTERN = Pattern.compile("versionCode='([0-9]+)'", Pattern.MULTILINE)
public File apkFile;
public String versionName;
public int versionCode;
public VersionInfo(File apkFile, String versionName, int versionCode) {
this.apkFile = apkFile;
this.versionName = versionName
import java.util.regex.Pattern
class VersionInfo {
private static Pattern VERSION_NAME_PATTERN = Pattern.compile("versionName='([0-9]+(\\.[0-9]+)+)'", Pattern.MULTILINE)
private static Pattern VERSION_CODE_PATTERN = Pattern.compile("versionCode='([0-9]+)'", Pattern.MULTILINE)
public File apkFile;
public String versionName;
public int versionCode;
public VersionInfo(File apkFile, String aaptOutput) {
def getAaptPath = { ->
def sdkDir = android.sdkDirectory
def buildToolsDir = new File(sdkDir, "build-tools")
def versions = buildToolsDir.list()
def latestBuildToolsDir = new File(buildToolsDir, versions[-1])
return "${new File(latestBuildToolsDir, "aapt").absoluteFile}"
}
def getVersionInfo = { File apkFile ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine getAaptPath(), "dump", "badging", apkFile.absoluteFile
standardOutput = stdout
}
return new VersionInfo(apkFile, stdout.toString())
}
import java.util.regex.Pattern
class VersionInfo {
private static Pattern VERSION_NAME_PATTERN = Pattern.compile("versionName='([0-9]+(\\.[0-9]+)+)'", Pattern.MULTILINE)
private static Pattern VERSION_CODE_PATTERN = Pattern.compile("versionCode='([0-9]+)'", Pattern.MULTILINE)
public File apkFile;
public String versionName;
public int versionCode;
public VersionInfo(File apkFile, String aaptOutput) {