chiark / gitweb /
update: handle APKs with a blank versionName
[fdroidserver.git] / fdroidserver / update.py
index d7f21e4b458e974e86ad0ae5929d5f04a64ddc7c..2a31e8f121bbfec529d0880bf61fb152f80756f6 100644 (file)
@@ -1208,13 +1208,18 @@ def scan_apk_androguard(apk, apkfile):
 
     apk['packageName'] = apkobject.get_package()
     apk['versionCode'] = int(apkobject.get_androidversion_code())
-    apk['versionName'] = apkobject.get_androidversion_name()
-    if apk['versionName'][0] == "@":
-        version_id = int(apk['versionName'].replace("@", "0x"), 16)
-        version_id = arsc.get_id(apk['packageName'], version_id)[1]
-        apk['versionName'] = arsc.get_string(apk['packageName'], version_id)[1]
     apk['name'] = apkobject.get_app_name()
 
+    versionName = apkobject.get_androidversion_name()
+    if versionName:
+        apk['versionName'] = versionName
+        try:  # can be a literal value or a resId
+            res_id = int(versionName.replace("@", "0x"), 16)
+            res_id = arsc.get_id(apk['packageName'], res_id)[1]
+            apk['versionName'] = arsc.get_string(apk['packageName'], res_id)[1]
+        except ValueError:
+            pass
+
     if apkobject.get_max_sdk_version() is not None:
         apk['maxSdkVersion'] = apkobject.get_max_sdk_version()
     if apkobject.get_min_sdk_version() is not None: