前言
当前版本:
cocos2dx-lua-3.17.2
LuaJIT 2.1.0-beta2
Lua 5.1
工具环境:
Visual Studio 2015
Android Studio Arctic Fox | 2020.3.1 Patch 4
Python 2.7.3
luaJit 加密 lua 代码,可以提升性能,减小包体,最重要的是防破解。
网上有很多教程,但由于时间久远,版本不同,所以并不适用。
抛开自己项目版本,盲目按照网上的教程走,结果导致事倍功半,当然这不是教程错误,而是因项目、环境、版本而异。
cocos2dx luaJit 环境
首先查看本地cocos2dx luajit 版本,我的cocos2dx版本是 3.17.2 。所以,在 cocos2d-x\external\lua\luajit 路径下可以发现 include 文件,找到 luajit.h,查看版本:
#define LUAJIT_VERSION "LuaJIT 2.1.0-beta2"
#define LUAJIT_VERSION_NUM 20100 /* Version 2.1.0 = 02.01.00. */
#define LUAJIT_VERSION_SYM luaJIT_version_2_1_0_beta2
#define LUAJIT_COPYRIGHT "Copyright (C) 2005-2016 Mike Pall"
#define LUAJIT_URL "http://luajit.org/"
我的是 2.1.0 − b e t a 2 2.1.0-beta2 2.1.0−beta2,然后到官网 http://luajit.org下载 luajit
我是用 Git 下载的仓库
git clone https://luajit.org/git/luajit.git
注意切换到完全相同的版本 ⚠️
不同版本,最终生成的加密代码不同。各位看图就会注意到我下载了4个版本,因为之前踩坑了。开始做 cocos luacompile 加密,看到cocos提示的是 L u a J I T v 2.0.3 LuaJIT v2.0.3 LuaJITv2.0.3。结果按照这个版本加密导致解密失败。然后又尝试2.1版本,依然失败。最后仔细比对版本,找到 2.1.0 − b e t a 2 2.1.0-beta2