chenquincy / app-info-parser

A javascript parser for parsing .ipa or .apk files. IPA/APK文件 js 解析器
MIT License
502 stars 119 forks source link

解析其他文件格式(比如txt)转换为apk文件,代码报错,但没反映在catch中 #6

Closed ESnail closed 5 years ago

ESnail commented 5 years ago

最近项目需要做 apk 上传,前端解析相关信息显示 (包名,图标,版本)。为了尽可能的保证功能正常,按照以往的惯例上传了一个由 txt 文件改后缀为 apk 的文件,结果 js 代码报错了。报错信息如下:

image

建议把这个错误信息放到 catch 中。

此外,在获取 app 名称时,result.application.label 的值有的是数组,有的是字符串,不统一,期望能统一。

希望上面的问题能得到修复。

chenquincy commented 5 years ago

@ESnail 谢谢反馈,我会抽时间修复这个问题,发版后会在issue通知你

chenquincy commented 5 years ago

@Esnail 错误捕捉问题0.2.0版本已完善,关于result.application.label的类型适配是个breaking change, 自行适配结果类型即可。

ESnail commented 5 years ago

好的,非常感谢,^_^

zhang0ZGC commented 5 years ago

@chenquincy 您好,这个问题我在新版(0.2.3)中依然遇见了,没有办法被捕捉到。。

image

chenquincy commented 5 years ago

@zhang0ZGC 试了一下没有问题,你的问题应该是其他原因,请提供具体的测试文件。

zhang0ZGC commented 5 years ago

@imquincychen 我就是在你提供的网址里面测试就有的http://app-info-parser.quincychen.cn

我就是新建了一个空的.txt文件,然后把后缀名改成了.apk

在处理文件选择的方法里面

  function fileSelect() {
      const files = document.getElementById('file-input').files
      const parser = new AppInfoParser(files[0])
      parser.parse().then(result => {
        const div = document.createElement('div')
        div.innerHTML = `balabala `
        document.getElementById('result-list').appendChild(div)
      }).catch(err => {
        window.alert('解析出错:' + err)
      })
    }

选择那个文件后,除了在控制台报错File format is not recognized.,并没有触发catch,

chenquincy commented 5 years ago

@zhang0ZGC 重新看了一下,浏览器端确实存在这个问题,昨天看的是Node端,问题原因已经找到,错误是由依赖包isomotphic-unzip直接console.error出来的,依赖包在解压包时没有传入error callback,我已经给依赖包提交了一个 PR,另外fork了一份,稍后会先发布一个可用版本

chenquincy commented 5 years ago

@zhang0ZGC 问题已在 0.2.5-beta 版本解决,你可以手动修改一下版本号

zhang0ZGC commented 5 years ago

@zhang0ZGC 问题已在 0.2.5-beta 版本解决,你可以手动修改一下版本号

万分感谢:smile: