收藏
回答

「微信8.0.9」iOS WXWebAssembly.instantiate 结果与预期不一致

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小游戏 Bug iOS iOS 14.x |iOS 15.x 任意以上系统iOS手机 8.0.9

WXWebAssembly.instantiate(wasmFilePath, importObjects);

在微信开发者工具上,结果和预期一致。

在微信(Android 8.0.9)上,结果和预期一致。

在微信(iOS 8.0.9)上,结果和预期不一致,而在微信(iOS 8.0.7)中则与预期一致 。 !=_=


最后一次编辑于  2021-07-22
回答关注问题邀请回答
收藏

1 个回答

  • chrong
    chrong
    2021-07-22

    确实是这个版本的 bug。分析了下原因是同个函数被 export 了多个名字。这个版本对 export 的数量做了限制,只限了3个,上面代码片段里的多个函数被 export 了大于 3 次。下个版本需要改回来。

    临时解决的方法是修改胶水代码,把出错的函数名改成另一个被 export 的函数名。

    查看哪些函数被 export了可以代码里打印一下:

    a.asm = r.exports;
    console.log(a.asm)
    


    然后把找不到的函数修改一下,比如:

    return (oC = a._emscripten_enum_b2ContactFeatureType_e_vertex = a.asm.Sz).apply(null, arguments)
    + return (oC = a._emscripten_enum_b2ContactFeatureType_e_vertex = a.asm.yz).apply(null, arguments)
    


    需要替换的函数可能会比较多,造成不便,非常抱歉,我们会尽快在下个版本修复。

    2021-07-22
    有用 1
    回复
登录 后发表内容