From 6cec2a6df3e3c14ea81fd471db6ebc4a2df0b4dc Mon Sep 17 00:00:00 2001 From: Finn Herzfeld Date: Tue, 31 Jul 2018 10:21:21 -0700 Subject: [PATCH] Improve how aapt output is parsed in the place that it's breaking --- fdroidserver/build.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 7dbc326ddf..1fba24ffc5 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -334,18 +334,19 @@ def get_apk_metadata_aapt(apkfile): for line in p.output.splitlines(): if line.startswith("package:"): - pat = re.compile(".*name='([a-zA-Z0-9._]*)'.*") - m = pat.match(line) - if m: - foundid = m.group(1) - pat = re.compile(".*versionCode='([0-9]*)'.*") - m = pat.match(line) - if m: - vercode = m.group(1) - pat = re.compile(".*versionName='([^']*)'.*") - m = pat.match(line) - if m: - version = m.group(1) + for part in line.split(" "): + if "=" not in part: + if part != "package:": + logging.warn("Unexpected part while parsing aapt output '%s'! Unknown part '%s'" % (line, part)) + else: + key, value = part.split("=") + value = value.strip("'") + if key == "name": + foundid = value + if key == "versionCode": + vercode = value + if key == "versionName": + version = value elif line.startswith("native-code:"): nativecode = line[12:] -- GitLab