【RM教學 2.0】使用原生sdk保護你的專案 – 3 Mac版本

【RM教學 2.0】使用原生sdk保護你的專案 – 3 Mac版本

By chimaki No comments

先前使用sdk教學的文章之中,都是以window版本進行教學,這一篇則會告訴大家mac版本該如何做對應的處裡。



Mac版本與Window版本加密的差別主要分成兩個部分

  1. 使用的sdk版本不同
  2. 檔案讀取位置不同
  3. 覆蓋資料夾的位置不同

如果還不了解的朋友建議先看看Window版本加密這一篇,不然會看不懂本篇在說蝦米!

分別來說兩個部份的差別

使用的sdk版本不同:

在官方下載sdk版本的時候我們就可以看到,有分window跟os的版本,加密mac版時要使用的就是osx的sdk版本。
至於基本的加密語法相同,不過Mac的批次檔是用shell script運作,所以先把之前設定好的批次檔複製一份,接著把副檔名改成 .sh。語法一樣使用 nwjc xxx.js xxx.bin
RMMV

接著運用command line 執行,就可以將 js改成bin檔


覆蓋資料夾位置不同:

輸出Mac版後,可以發現Window版本與Mac版本基本的架構不太相同。
而且讀取js的路徑也不同,所以在讀取bin檔時,我們也要做額外的處理。

Window 版本讀取bin檔
nw.Window.get().evalNWBin(null, 'www/js/xxx.bin');
nw.Window.get().evalNWBin(null, 'www/js/plugins/xxx.bin');

Mac 版本讀取bin檔的時候,要改成這個樣子
nw.Window.get().evalNWBin(null, 'js/xxx.bin');
nw.Window.get().evalNWBin(null, 'js/plugins/xxx.bin');

所以作者們在加密Mac版時,切記要注意相關檔案是否都有讀取到正確的路徑,以免爆炸


覆蓋資料夾的位置不同:

相對於Mac版本,我們要使用osx版本的nwjs(非sdk版本)
RMMV

對nwjs-v0.29.0-osx-x64資料夾中的nwjs 點右鍵,選擇顯示套件內容。


接下來,對你輸出的Mac版本 Game.app也做一樣的事情,顯示套件內容,並且將
Contents/Resources/ 資料夾的內容全部複製下來
RMMV

然後貼到nwjs-v0.29.0-osx-x64/nwjs/Contents/Resources/ 的資料底下。

這樣基本的設置就完成了。


最後,你可以把nwjs.app改成你的遊戲名稱。
如果想改icon的話可以參考這篇,製作好檔案後
把icns放到 ame.app/Contents/Resources/ 覆蓋原本的檔案就可以囉!

這樣看起來感覺就好多了w
RMMV



發表迴響