天天看點

Quick-Cocos2dx-Community 3.6.1在釋出時加密lua源檔案

當遊戲開發完成需要真機測試或者需要打包釋出時,需要對lua源代碼和資源進行加密處理,以免自己的資源和源代碼以明文形式暴露在ipa或者apk中。本文是介紹在mac機下進行的加密步驟和在加密過程中遇到的問題。

環境:引擎版本:Quick-Cocos2dx-Community 3.6.1

           平台:iMac mac os sierra 10.12.2

步驟:

1.打開終端,進入項目目錄下

$ cd  ~/project_v1.0

2. 資源加密。運作Quick提供的 encrypt_res.sh 加密工具.

注:encrypt_res.sh 在Quick-Cocos2dx-Community/ quick/ bin 檔案目錄下

終端運作: ~/Quick-Cocos2dx-Community/quick/bin/encrypt_res.sh -i ~/project_v1.0/res -o ~/project_v1.0/res -es aaa -ek jerrychen

3. lua源代碼加密。運作Quick提供的 compile_scripts.sh 加密工具.

注:compile_scripts.sh 在Quick-Cocos2dx-Community/ quick/ bin 檔案目錄下

終端運作:

~/Quick-Cocos2dx-Community/quick/bin/compile_scripts.sh -i src -o res/game64.zip -e xxtea_zip -ek aaa -es jerrychen -b 64

~/Quick-Cocos2dx-Community/quick/bin/compile_scripts.sh -i src -o res/game32.zip -e xxtea_zip -ek aaa -es jerrychen 

上例中,加密 lua 源檔案所在的 src 目錄,輸出到res/game.zip,加密模式為zip包xxtea,加密密鑰:aaa,加密簽名:jerrychen, -b:加密位數。後面不帶位數預設為32位。

由于android并沒有強制要求64位,Luajit在不用的平台使用不同的位數支援。情況如下:

1. Android、Win32、Mac 繼續使用32位的jit。

2. iOS更新硬體來決定使用的jit位數,5s以上裝置使用64位jit,以下裝置使用32位jit。

是以遊戲釋出的時候,針對iOS你需要用 compile_scripts 分别生産 32 和 64 位的 bytecode包,并在遊戲啟動邏輯加入系統位數判斷,以啟動不同的包。不然被報錯。

4.在執行加密檔案指令的時候可能出現指令錯誤:permission denied。沒有權限,要進行權限設定,可以在執行指令最前面加sudo,或者對你要執行的指令增權重限 chmod +x compile_scripts.sh。注意在執行檔案加密指令時,compile_scripts.sh,encrypt_res,luajit,luajit64等指令都會可能會出現permission denied問題。

5. iOS在不同的機型上要使用不同的jit位數加密的zip檔案,不然會造成解密時候lua檔案解密失敗(錯誤提示:error : syntax error during pre-compilation   -loaded chunks counts:0)。

6.錯誤描述

Quick-Cocos2dx-Community 3.6.1在釋出時加密lua源檔案

luajit64找不到對應的lua描述檔案。暫時的解決辦法是,自己手動編譯一次LuaJIT 并在mac上make install,這樣會自動把這些檔案放到系統目錄下,指令行就能找到了

Quick-Cocos2dx-Community 3.6.1在釋出時加密lua源檔案

下載下傳位址:http://luajit.org/download/LuaJIT-2.1.0-beta1.tar.gz  下載下傳後,make install,可以解決,一般開園軟體的編譯安裝方式。下載下傳解壓到任意目錄。cd到這個目錄。然後make install。這裡LuaJit下載下傳包,不同版本對應不同的包,3.6.1對應的是beta1版本,不然還是會出現原問題,beta2對應的是3.6.3版本。其餘版本對應都在這網址通路:http://luajit.org

7. 在加密lua代碼時候,出現如下錯誤

Quick-Cocos2dx-Community 3.6.1在釋出時加密lua源檔案

加密無效,無法生存zip包,請到github上面下載下傳最新的 ScriptsCompiler.php檔案,替換老檔案就行,下載下傳位址:https://github.com/u0u0/Quick-Cocos2dx-Community/blob/master/quick/bin/lib/quick/ScriptsCompiler.php

在用mac機做quick開發時候,安裝好player,搭好環境也是一種不錯的選擇,已經熟悉mac機開發的同學不必糾結切換到windows進行開發。

附帶指令字釋義:

 options:

    -h show help

    -p package name

    -o project path (default is "current_dir/last_package_name")

    -r screen orientation (default is "portrait")

    -f overwrite exists files

    -q quiet

    -t  template dir

    screen orientation:

    -r portrait (default)  豎屏

    -r landscape    橫屏