" wasm解码failResult"当应用程序与电子伪造包装

时间:2017-11-11 18:42:27

标签: electron electron-forge

我正在尝试用电子伪造打包电子应用程序(使用wasm)。

此刻(当我打包装时!)它只是一个hello-world,但它编译了一个简单的生锈库,然后我将.js和.wasm文件复制到./src /并打包为电子应用程序。

使用&#34;电子锻造开始运行&#34;效果很好,但是当我用&#34; electon-forge make&#34; (对于这种情况下Mac OS上的DMG),然后安装并运行它,似乎是在尝试加载错误的.wasm文件(或者它被修改了......),因为我收到了这些错误:< / p>

enter image description here

只捆绑了一个.wasm文件,我检查了.js它是否有对正确文件的引用。

如果我进入/ Applications中的.app包并导航到打包的源文件都是正确的,并且与我的源文件夹相同。

检查.wasm文件的幻数也似乎没问题。

hexdump ui-72b0082cbbe1a2b5.wasm |head -n 1 0000000 00 61 73 6d 01 00 00 00 01 86 01 13 60 02 7f 7f

所以,我不知道它试图以.wasm加载的文件以及幻数不正确的原因。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

不确定您是否仍然遇到此问题,但这使我感到困扰了一段时间,因此我认为我将把答案留给下一个人。简短的答案,您需要在json配置文件中添加一些内容。示例:

默认配置:

...
"config": {
   "forge": {
      "packagerConfig": { },
...

固定的配置:

...
"config": {
   "forge": {
      "packagerConfig": { "asar.unpack" : "yourFileHere.js" },
...

据我所知,问题出在电子包装机上,它是如何将所有内容压缩到asar文件中的。似乎尝试提供压缩文件,因此MIME类型错误。但是,即使当我更改Web程序集加载代码以使用WebAssembly.instantiate而不是WebAssembly.instantiateStreaming(这避免了MIME检查)时,我仍然遇到那些神奇的数字问题……这就是压缩是问题的线索。

您也可以创建目录,有关其他打包程序选项的信息,请点击此处 https://github.com/electron/electron-packager/blob/master/docs/api.md#asar