2.4.0 IOS启动文件名没更新,导致启动失败

报错日志如下:
ScriptEngine::onGetStringFromFile src/settings.f837d.js not found, possible missing file. ScriptEngine::runScript script src/settings.f837d.js, buffer is empty! [ERROR] Failed to invoke require, location: /Applications/CocosCreator/Creator/2.4.0/CocosCreator.app/Contents/Resources/cocos2d-x/cocos/scripting/js-bindings/manual/jsb_global.cpp:300 ScriptEngine::evalString script main.js, failed! ERROR: TypeError: undefined is not an object (evaluating 'settings.debug'), location: :: STACK: main.js:85:28 global code@main.js:138:16

Bug说明就是这个文件“ src/settings.f837d.js”不存在,文件夹中确实没有。不过由于重新构建之后,生成的是另一个名字的文件“ src/settings.a4100.jsc”。在启动的时候,仍然去寻找老文件,然后游戏启动失败了。

这个应该是xcode的问题,你打开main.js会发现内容还是旧的的,但文件系统上的文件已经更新,可以关闭xcode所有打开的JS文件,重启xcode试试。

我重启XCode了,仍然是同一个问题。我看到XCode里面的Resources目录,已经显示了新构建的文件资源。这个Bug复现率100%,我删除build目录,重新测试。第一次构建成功运行;第二次构建文件改名,仍然使用第一次文件名启动,然后失败。我是在XCode的模拟器中测试的。

你在xcode里面打开main.js文件和从文件系统打开main.js,比对下两个文件的内容是不是一样的,特别是require的文件名,也可以把构建好的ipa文件解压,看下文件名和内容是否一样。

1.构建重启XCode显示就一致了,但是重启并不能解决出现的问题。启动仍然使用第一次(注意这里的是第一次创建build)构建的setting文件名
2.目前解决办法是,每次构建:重启Xcode,然后Product->Clean Build Folder,清理后重新编译就好了
看样子真是XCode的问题,感觉不太友好,升级以前没这个问题