适用于 Quick-Cocos2dx-Community 3.7.x 和 Cocos2d-Lua-Community 4.x
Lua代码打包可以利用luajit的bytecode保护源代码。
注意:3.7 新的脚本只打包,不进行xxtea加密。
$/xxxx/Quick-Cocos2dx-Community/quick/bin/PackageScripts.py -p /Users/u0u0/Desktop/testProject -o game -b 32
上例中,打包 lua 源文件所在的 src 目录,输出到res/game32.zip。
注:-b 参数可选64,仅在mac中有效,它编译iOS使用的64位bytecode.
打开 iOS 工程文件,路径在 /Users/u0u0/Documents/project/quick_project/test/frameworks/runtime-src/proj.ios_mac/test.xcodeproj。 去掉src文件夹的引用,入下图所示:
注:不是删除src,仅去引用,这样源代码就不会被打包进ipa了。
修改启动项
打开 /Users/u0u0/Documents/project/quick_project/test/frameworks/runtime-src/Classes/AppDelegate.cpp,修改 Lua 启动入口。
把#if 0
改为#if 1
,这样引擎切换启动入口为game32.zip中的lua代码。
lua_loadChunksFromZIP() - load zip file: /private/var/mobile/Containers/Bundle/Application/A2985A39-3588-48AD-8219-2476A12B956E/test iOS.app/res/game.zip*
lua_loadChunksFromZIP() - loaded chunks count: 125
大部分过程和iOS相同,不同点在第3条,Android修改资源的引用分下面三个步骤:
运行 build_native.py -r 脚本,自动拷贝 res 到assert目录。
注:-r 模式只会拷贝 res。
用 Android Studio打包apk。