3.9 的luacomplie是否可用刀64bit的iOS设备

我使用3.9的cocos 编译 lua-tests的lua文件,然后运行到iPhone 6s上时,报错:
cocos2d: fullPathForFilename: No file found at src/controller.lua. Possible missing file.
load “/var/mobile/Containers/Bundle/Application/94DA9426-8CA7-4B50-BEB6-D6D50DB48CE2/lua-tests iOS.app/src/controller.luac”, error: syntax error during pre-compilation.

是否cocos2dx 3.9还不支持 64bit的luajit ?

cocos2d-x-v3.5及之前的版本,因为luajit不支持64位,所以我们在iOS64位上使用了原生lua来解释执行。考虑到性能问题,其他所有的平台(包含iOS 32位),我们使用了luajit。这意味着如果想让一套lua脚本同时运行在iOS32位和64位设备上,那就不能使用lua字节码,lua和luajit生成的字节码是不兼容的。

cocos2d-x-v3.6的luajit支持arm64,取代了3.5版本之前iOS64位上使用了原生lua来解释执行的做法,大幅提升64位上的LUA运行性能。但值得注意的是:为了兼容之前的版本,我们同时包括了luajit32位和luajit64位,在arm32位的系统上调用的是luajit32位运行库,在arm64位的系统上调用的是luajit64位运行库。而luajit32和luajit64位的字节码是不同的,互不兼容。因此这意味着在cocos2d-x-v3.6如果想让一套lua脚本同时运行在iOS32位和64位设备上,我们依然不能使用lua字节码,用户在使用`cocos luacompile命令时需要带上–disable-compile True参数。

我加入–disable-compile 参数,看到了下面一段话:
“通过 luacompile 命令对 lua 文件进行 XXTEA 加密以及编译为字节码的处理。
编译为字节码的功能基于 LuaJIT v2.0.3,所以目前编译成字节码的文件不适用于 iOS 64位设备。”

这个有点歧义: XXTEA 加密能正常使用吗?(我编译后,文件没有被 XXTEA 加密)

cd ./cocos2d-x-3.9/tests
cocos luacompile -s ./lua-tests/src/ -d ./src -k key -b sign --disable-compile

你的问题解决了么,问啥官方都没有说呢,现在难道ios不能用luajit加密么

64位ios系统可以使用的,不过其实不会编译成字节码,只是单纯的加密,那个警告是骗人的