赞 | 2 |
VIP | 0 |
好人卡 | 0 |
积分 | 11 |
经验 | 0 |
最后登录 | 2024-9-22 |
在线时间 | 33 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1067
- 在线时间
- 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文件,输出在文件夹中,双击文件就能打开游戏。
你可以随意修改文件的文件名,建议将后缀删去。 |
评分
-
查看全部评分
|