Skip to content

fnpack 用于创建飞牛 fnOS 应用项目,并将应用打包为可安装的 .fpk 文件。开发者可以在本地开发机使用,也可以在飞牛 fnOS 设备上使用。

下载

根据开发机系统下载对应版本:

Linux 或 macOS 可安装到系统路径:

bash
chmod +x fnpack-1.2.3-linux-amd64
sudo mv fnpack-1.2.3-linux-amd64 /usr/local/bin/fnpack
fnpack --help

创建项目

创建普通应用项目:

bash
fnpack create <appname>

创建不包含桌面入口的服务类项目:

bash
fnpack create <appname> --without-ui true

创建 Docker 应用项目:

bash
fnpack create <appname> --template docker

创建不包含桌面入口的 Docker 服务类项目:

bash
fnpack create <appname> --template docker --without-ui true

Docker 模板会生成 docker-compose.yaml、基础资源声明和生命周期脚本框架。打包前需要根据应用实际运行方式检查并调整这些文件。

项目结构

text
myapp/
├── app/
│   ├── ui/
│   │   ├── config
│   │   └── images/
│   └── docker/
│       └── docker-compose.yaml
├── cmd/
│   ├── main
│   ├── install_init
│   ├── install_callback
│   ├── upgrade_init
│   ├── upgrade_callback
│   ├── uninstall_init
│   ├── uninstall_callback
│   ├── config_init
│   └── config_callback
├── config/
│   ├── privilege
│   └── resource
├── wizard/
├── manifest
├── ICON.PNG
└── ICON_256.PNG

打包项目

在应用目录中执行:

bash
cd myapp
fnpack build

指定其他目录进行打包:

bash
fnpack build --directory <path>

打包检查

fnpack 会在生成 .fpk 前检查必要文件和基础格式。

路径类型要求
manifest文件存在,并包含必要字段
config/privilege文件存在,并使用合法 JSON
config/resource文件存在,并使用合法 JSON
ICON.PNG文件存在
ICON_256.PNG文件存在
app/目录存在
cmd/目录存在
wizard/目录存在
app/{desktop_uidir}/目录声明 desktop_uidir 时必须存在

使用建议

  • 将打包目录放在应用源码附近,便于版本管理和自动化构建。
  • 在发布构建脚本中加入 fnpack build
  • 发布前在飞牛 fnOS 测试设备上安装生成的 .fpk 并完成基础验证。

基于非商业使用许可证发布