2.4.6 导出的iOS工程首场景在armv7手机上运行报错,arm64手机上正常

头一次遇到和平台相关的问题,模拟器,微信小游戏,iPhone 8p (iOS 14.6)上运行都正常,但是在老机器iPhone 5c (iOS 10.3.3)上第一个场景挂载的脚本都无法正常运行,但是可以看到场景已经出来。报错信息如下,找不到对应的类,工程中新建了一个helloworld 场景,挂一个最简单的hello world 脚本也是找不到挂载的脚本类:

JS: Cocos Creator v2.4.6

JS: [WARN]: Can not find class 'ba9f7msqjRAD7bhWmJjObNa’

JS: InitScene: 4.304000000000087ms

JS: AttachPersist: 0.73700000000008ms

JS: AutoRelease: 1.4020000000000437ms

JS: Destroy: 0.04399999999986903ms

JS: [WARN]: Script attached to ‘Canvas’ is missing or invalid.

JS: Activate: 154.71399999999994ms

就不再输出其他log了。
//====================================
对比正常的机器,出错的机器上有如下错误log打出:
ScriptEngine::evalString script assets/main/index.64cb1.js, failed!
ERROR: TypeError: global is not an Object. (evaluating ‘“URLSearchParams” in global’), location: assets/main/index.64cb1.js:1300:44
STACK:
assets/main/index.64cb1.js:1300:44
assets/main/index.64cb1.js:1295:77
assets/main/index.64cb1.js:1296:7
s@assets/main/index.64cb1.js:18:19
assets/main/index.64cb1.js:20:17
assets/main/index.64cb1.js:3149:12
s@assets/main/index.64cb1.js:18:19
assets/main/index.64cb1.js:20:17
assets/main/index.64cb1.js:4526:38
s@assets/main/index.64cb1.js:18:19
e@assets/main/index.64cb1.js:26:39
global code@assets/main/index.64cb1.js:28:2
require@[native code]
jsb-adapter/jsb-engine.js:3345:19
download@jsb-adapter/jsb-engine.js:3356:9
downloadScript@jsb-adapter/jsb-engine.js:3344:11
jsb-adapter/jsb-engine.js:3512:19
jsb-adapter/jsb-engine.js:3185:31
readFile@jsb-adapter/jsb-engine.js:3151:29
readJson@jsb-adapter/jsb-engine.js:3173:21
parseJson@jsb-adapter/jsb-engine.js:3470:11
download@jsb-adapter/jsb-engine.js:3356:9
downloadJson@jsb-adapter/jsb-engine.js:3482:11
downloadBundle@jsb-adapter/jsb-engine.js:3504:15
invoke@src/cocos2d-jsb.3f542.js:18895:19
process@src/cocos2d-jsb.3f542.js:18905:21
retry@src/cocos2d-jsb.3f542.js:20509:16
download@src/cocos2d-jsb.3f542.js:18929:16
fetch@src/cocos2d-jsb.3f542.js:19451:23
_flow@src/cocos2d-jsb.3f542.js:19901:13
async@src/cocos2d-jsb.3f542.js:19896:19
src/cocos2d-jsb.3f542.js:19434:35
forEach@src/cocos2d-jsb.3f542.js:20602:62
load@src/cocos2d-jsb.3f542.js:19416:14
_flow@src/cocos2d-jsb.3f542.js:19901:13
src/cocos2d-jsb.3f542.js:19910:25
preprocess@src/cocos2d-jsb.3f542.js:19969:11
_flow@src/cocos2d-jsb.3f542.js:19901:13
async@src/cocos2d-jsb.3f542.js:19896:19
loadAny@src/cocos2d-jsb.3f542.js:17519:23
loadRemote@src/cocos2d-jsb.3f542.js:17556:21
loadBundle@src/cocos2d-jsb.3f542.js:17579:24
cb@main.js:110:39
src/cocos2d-jsb.3f542.js:17563:37
src/cocos2d-jsb.3f542.js:19079:75
createBundle@src/cocos2d-jsb.3f542.js:19062:31
create@src/cocos2d-jsb.3f542.js:19073:15
src/cocos2d-jsb.3f542.js:17562:32
src/cocos2d-jsb.3f542.js:20680:15
src/cocos2d-jsb.3f542.js:43211:19
fireTimeout@jsb-adapter/jsb-builtin.js:2191:24
tick@jsb-adapter/jsb-builtin.js:2148:14

//=================================
查看assets/main/index.64cb1.js:1300:44的源码如下:

  var global = "undefined" !== typeof globalThis && globalThis || "undefined" !== typeof self && self || "undefined" !== typeof global && global;
  var support = {

    searchParams: "URLSearchParams" in global,  //这一行出错,看不懂,不知道什么意思?

    iterable: "Symbol" in global && "iterator" in Symbol,
    blob: "FileReader" in global && "Blob" in global && function() {
      try {
        new Blob();
        return true;
      } catch (e) {
        return false;
      }
    }(),
    formData: "FormData" in global,
    arrayBuffer: "ArrayBuffer" in global
  };

//======================
有大佬能指点一下该从哪里去查吗?谢谢了:pray:

2.4.6? 这样啊 ,你先降低 版本试试 2.4.5就,然后看看结果 2.4.6这个版本太操蛋了 先远离

但是另新建一个2.4.6 的 helloworld 工程又是好的,估计是我的代码太多了,从2.3.4升上来的,导致哪里不兼容了。

建议看看xcode项目打包设置里面有选择arm64吗?