| 赞 | 2  | 
 
| VIP | 0 | 
 
| 好人卡 | 0 | 
 
| 积分 | 11 | 
 
| 经验 | 0 | 
 
| 最后登录 | 2023-5-30 | 
 
| 在线时间 | 33 小时 | 
 
 
 
 
 
Lv3.寻梦者 
	- 梦石
 - 0 
 
        - 星屑
 - 1062 
 
        - 在线时间
 - 33 小时
 
        - 注册时间
 - 2018-8-30
 
        - 帖子
 - 22
 
 
 
 | 
	
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员  
 
x
 
 本帖最后由 asd8089872 于 2020-3-23 20:01 编辑  
 
关于上次使用Electron打包的Linux的项目,我们会发现,游戏的代码和素材是暴露在外的。 
这次我提供了第二版的Linux虚拟机,帮助开发者完成Linux环境下的测试、打包、封装的工作,里面有一个完整的范例帮助大家掌握打包技术。 
 
链接:https://pan.baidu.com/s/17I1gb_Hbqtbsq418vcr96g  
提取码:wnxm  
 
所以这次我们使用一个新的方法保护自己的代码和游戏素材。 
 
第一步打包(可省略):我们使用electron-packager重新对项目进行打包 
 
 
1、我们需要在项目目录中新建一个 "main.js"文件 ,这个文件是electron的主程序文件,用来建立electron 窗口显示网页内容。下面是提供的一个范例,可以直接复制使用(其中涉及的nodejs) 
const { app, BrowserWindow, Menu } = require('electron') 
const path = require('path') 
const url = require('url') 
let mainWindow; 
function createWindow() { 
    mainWindow = new BrowserWindow({ fullscreen: true }); 
    Menu.setApplicationMenu(null) 
    mainWindow.loadURL(url.format({ 
        pathname: path.join(__dirname, './index.html'), 
        protocol: 'file:', 
        slashes: true 
    })) 
    mainWindow.on('closed', function () { 
        mainWindow = null 
    }); 
} 
app.on('ready', createWindow); 
app.on('window-all-closed', function () { 
if (process.platform !== 'darwin') { 
        app.quit() 
    } 
}); 
 
app.on('activate', function () { 
    if (mainWindow === null) { 
        createWindow() 
    } 
}) 
2、其次我们要修改 "package.json"文件的内容(这一步需要你掌握json的基本知识):给项目起一个名字:"name": "mvlearn" 
在name下面增加一个版本号元素:"version": "0.0.1" 
将“main”元素的值修改为刚刚我们建立的"main.js"文件:"main": "main.js" 
增加”devDependencies”元素 
Package.json最后呈现的内容为:(标红的为修改过的) 
{ 
    "name": "mvlearn", 
        "version":"0.0.2", 
    "main": "main.js", 
    "js-flags": "--expose-gc", 
    "window": { 
        "title": "", 
        "toolbar": false, 
        "width": 320, 
        "height": 240, 
        "icon": "icon/icon.png", 
        "fullscreen": true 
    }, 
    "devDependencies": { 
        "electron": "8.0.2", 
        "electron-packager": "14.2.1" 
    } 
} 
3、最后,在项目文件夹中,鼠标右键选择“在终端中打开”,在终端中右键粘贴并回车执行打包命令,你的游戏项目就打包好了,可以去上一级目录下的packaged文件夹中查看打包好的项目压缩包 
打包命令为: 
electron-packager ./ {json文件中name元素的值} --platform=linux --arch=x64 --asar --overwrite --electron-version 8.0.2 --out ../packaged 
 
理论上,这个打包的方法可以打包为win、mac、Linux平台的程序,甚至可以打包到Arm处理的Linux系统上。 
 
第二步:使用AppimageKit将项目封装 
Appimage工具包是Linux系统流行的封装打包工具,可以将一个项目工程打包为一个程序文件,允许发行到任意的Linux发行版中。 
我们可以在他的github主页中得到它们: 
打开网址https://github.com/AppImage/AppImageKit/releases,找到最新版本的:appimagetool-x86_64.AppImage、AppRun-x86_64。我们只需要这两个文件即可。 
 
1、我们首先构建出Appimage的项目结构(新建文件夹) 
新建这样一个目录结构:{游戏的英文名.AppDir}/usr/bin/ 
将打包的electron项目文件夹里的所有文件,全部拷贝到上面路径的bin文件夹中。 
将AppRun-x86_64文件改名为“AppRun”,拷贝到{游戏的英文名.AppDir}文件夹中。 
为游戏找一个256×256像素的(png格式)图片,拷贝到{游戏的英文名.AppDir}文件夹中。 
在{游戏的英文名.AppDir}文件夹中创建一个“游戏的英文名.desktop”这样的.desktop文件,并写入如下的内容: 
[Desktop Entry] 
Type=Application 
Name={你的游戏的名字} 
Exec=sh -c {bin文件夹中的应用程序名称,往往是游戏的英文名字} 
Comment=test game 
Icon=icon 
Categories=Game; 
Terminal=false 
2、然后回到Appimage项目结构外面的文件夹中,并把appimagetool-x86_64.AppImage拷贝到这里,鼠标右键选择“在终端中打开”,在终端中右键粘贴并回车执行下面的命令完成打包封装: 
./appimagetool-x86_64.AppImage ./游戏的英文名.AppDir/ 
 
你的游戏就被打包为一个.Appimage文件,输出在文件夹中,双击文件就能打开游戏。 
你可以随意修改文件的文件名,建议将后缀删去。 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |