用法介绍
命令cocos luacompile --h查看用法
usage: cocos luacompile [-h] [-v] [-s SRC_DIR_ARR] [-d DST_DIR] [-e]
[-k ENCRYPTKEY] [-b ENCRYPTSIGN] [--disable-compile]
对 lua 文件进行加密和编译为字节码的处理。
optional arguments:
-h, --help show this help message and exit
-v, --verbose 更多输出信息。
-s SRC_DIR_ARR, --src SRC_DIR_ARR
指定需要编译的 lua
文件路径,支持指定多个路径。
-d DST_DIR, --dst DST_DIR
指定输出文件的路径。
-e, --encrypt 开启 XXTEA 加密功能。
-k ENCRYPTKEY, --encryptkey ENCRYPTKEY
指定 XXTEA 加密功能的 key 字段。
-b ENCRYPTSIGN, --encryptsign ENCRYPTSIGN
指定 XXTEA 加密功能的 sign 字段。
--disable-compile 关闭编译为字节码的功能。
用法
luacompile.sh加密脚本文件
luacompile.sh加密脚本文件
PWD=`pwd`
COCOS='/Applications/Cocos2d-x/cocos2d-x-3.10/tools/cocos2d-console/bin/cocos'
rm -rf src_et
${COCOS} luacompile -s src -d src_et -e -k kBJMRK -b sTAMX --disable-compile
执行脚本命令输出:
通过 luacompile 命令对 lua 文件进行 XXTEA 加密以及编译为字节码的处理。
编译为字节码的功能基于 LuaJIT v2.0.3,所以目前编译成字节码的文件不适用于 iOS 64位设备。
正在处理 lua 文件。
编译完成。
把src文件夹下的.lua文件加密到src_et文件夹下的.luac文件
代码解密
bool AppDelegate::applicationDidFinishLaunching()
{
...
// set default FPS
Director::getInstance()->setAnimationInterval(1.0 / 60.0f);
// register lua module
auto engine = LuaEngine::getInstance();
ScriptEngineManager::getInstance()->setScriptEngine(engine);
LuaStack* stack = engine->getLuaStack();
stack->setXXTEAKeyAndSign("kBJMRK", strlen("kBJMRK"), "sTAMX", strlen("sTAMX"));
...
#if COCOS2D_DEBUG
if (engine->executeString("require('src/main')"))
#else
if (engine->executeString("require('src_et/main')"))
#endif
{
return false;
}
#endif
return true;
}
网友评论