官网地址
以下内容基本来自官网,可直接前往官网查看
Prerequisites(先决条件)
安装组件
sudo snap install snapcraft --classic
sudo snap install multipass --classic
sudo snap install lxd
lxd执行初始化
执行sudo lxd init(所有项目直接按回车使用默认值即可)
sudo lxd init
配置lxd 组
sudo usermod -a -G lxd <your username>
例如我的用户名是alan,则执行以下命令
sudo usermod -a -G lxd alan
创建snapcraft.yaml文件
在project root(项目的根目录下)创建/snap/snapcraft.yaml文件
内容为:
# 程序名称
name: super-cool-app
# 程序版本号
version: 0.1.0
# 程序的粗略描述
summary: Super Cool App
# 程序的详细描述
description: Super Cool App that does everything!
#以下三个保持不变即可
confinement: strict
base: core18
grade: stable
# 格式为 dubs-<你的程序名称>
slots:
dbus-super-cool-app: # adjust accordingly to your app name
interface: dbus
bus: session
# 格式为 你的程序包名
name: org.bar.super_cool_app # adjust accordingly to your app name and
apps:
# 程序名称
super-cool-app:
# 程序对应的执行命令
command: super-cool-app
# flutter 打包使用到的分支(为Git master分支)
extensions: [flutter-master] # Where "master" defines which Flutter channel to use for the build
plugs:
- network
slots:
# 格式为 dubs-<你的程序名称>
- dbus-super-cool-app
parts:
# 程序名称
super-cool-app:
source: .
plugin: flutter
flutter-target: lib/main.dart # The main entry-point file of the application
新增桌面图标
在/<项目根目录>/snap/gui目录下新增<图标名称>.png
新增desktop 桌面快捷方式
在/<项目根目录>/snap/gui目录下新增 <自定义应用名称>.desktop 内容如下
[Desktop Entry]
# 快捷方式显示的名称,自定义
Name=ChatGpt Client
# 提示内容,自定义
Comment=Chat with ChatGpt Client
# 可执行文件 ,snapcraft.yaml中指定的name
Exec=chatgpt_client
# 图标位置
Icon=${SNAP}/meta/gui/desktop名称.png # replace name to your app name
Terminal=false
Type=Application
Categories=Education; #adjust accordingly your snap category
注意: desktop文件和图标文件名称需要保持一致
打包
snapcraft --use-lxd
安装
没有发布到snap 应用商店,需要使用 --dangerous参数进行安装
snap install --dangerous *.snap