修改安卓包读取图标失败问题

pull/12/head
youngS 4 years ago
parent 0f3b7c5049
commit 7ff34ef43d
  1. 51
      fir_ser/cli.py

@ -88,7 +88,7 @@ class FLY_CLI_SER(object):
def upload_app(self, app_path):
appobj = AppInfo(app_path)
appinfo = appobj.get_app_data()
icon_path = appobj.make_app_png()
icon_path = appobj.make_app_png(icon_path=appinfo.get("icon_path", None))
bundle_id = appinfo.get("bundle_id")
upcretsdata = self.get_upload_token(bundle_id, appinfo.get("type"))
if upcretsdata['storage'] == 1:
@ -121,7 +121,7 @@ class FLY_CLI_SER(object):
"version": appinfo['version'],
"buildversion": appinfo['versioncode'],
"miniosversion": appinfo['miniosversion'],
"release_type": appinfo['release_type'],
"release_type": appinfo.get('release_type', ''),
"release_type_id": 2,
"udid": appinfo.get('udid', []),
"type": appinfo['type'],
@ -134,30 +134,36 @@ class AppInfo(object):
self.app_path = app_path
self.result = {}
def make_app_png(self):
def make_app_png(self, icon_path):
zf = zipfile.ZipFile(self.app_path)
name_list = zf.namelist()
if self.app_path.endswith("apk"):
pattern = re.compile(r'res/drawable[^/]*/app_icon.png')
elif self.app_path.endswith("ipa"):
pattern = re.compile(r'Payload/[^/]*.app/AppIcon[^/]*[^(ipad)].png')
iconfile = ""
if icon_path:
size = len(zf.read(icon_path))
iconfile = icon_path
else:
raise Exception("File type error")
name_list = zf.namelist()
if self.app_path.endswith("apk"):
pattern = re.compile(r'res/drawable[^/]*/app_icon.png')
elif self.app_path.endswith("ipa"):
pattern = re.compile(r'Payload/[^/]*.app/AppIcon[^/]*[^(ipad)].png')
else:
raise Exception("File type error")
size = 0
iconfile = ""
for path in name_list:
m = pattern.match(path)
if m is not None:
filepath = m.group()
fsize = len(zf.read(filepath))
if size == 0:
iconfile = filepath
if size < fsize:
size = fsize
iconfile = filepath
size = 0
for path in name_list:
m = pattern.match(path)
if m is not None:
filepath = m.group()
fsize = len(zf.read(filepath))
if size == 0:
iconfile = filepath
if size < fsize:
size = fsize
iconfile = filepath
if size == 0:
raise Exception("File size error")
if iconfile == "":
raise Exception("read File icon error")
filename = ''.join(random.sample(
['z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'q', 'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f',
@ -201,7 +207,8 @@ class AppInfo(object):
"versioncode": versioncode,
"version": version,
"type": "Android",
"miniosversion": apkobj.get_min_sdk_version()
"miniosversion": apkobj.get_min_sdk_version(),
"icon_path": apkobj.get_app_icon()
}
return self.result

Loading…
Cancel
Save