Manifest字段、Schema与模板
manifest.json是套件根目录唯一的元数据入口。使用JSON Schema作机器校验,禁止重复键、未知字段、未知权限和自依赖。套件版本采用无前导零的三段数字,如1.2.3;ApuOS产品版本X.YY.ZZZ与套件版本是两个不同概念。
共同必填字段
| 字段 | 要求 |
|---|---|
| format_version | 1.0或1.1,按合同分支验证 |
| pkg_id | 小写反向域名,至少三段,最多128字符 |
| name、author | 非空显示名称/作者,最多100字符;不代表身份认证 |
| version | 无前导零major.minor.patch,不支持预发布或build后缀 |
| architecture | 唯一的arm64和/或x86_64,不能直接写aarch64或amd64 |
| category | system/storage/network/media/development/security/business |
| description、release_notes、license | 用途、版本变化、SPDX或明确许可证 |
| icon、screenshots | 包内assets路径,图像实际存在,最多8张截图 |
| dependencies | system_packages与spkg_packages数组,不能拼接为命令 |
| permissions | 去重且只能使用规定能力,不能自行声明root权限 |
| runtime | 入口、参数、资源以及对应格式的宿主或系统兼容约束 |
格式1.0的运行字段
entrypoint为bin/{architecture}/程序,每个声明架构都必须有实际0755文件;arguments逐个传给exec而非拼Shell,最多32项。memory_mb为16—65536,cpu_quota_percent为1—100。可声明minimum_apuos和supported_os,但Schema通过不代表ELF架构、glibc、动态库和实际资源已经验证。default_port仅在声明network:bind时配对出现。
格式1.1的运行字段
kind固定platform-module,module是审定应用ID,host_version精确匹配宿主,entrypoint固定assets/entry.js,styles列出同目录CSS。入口真实存在且mode0644,保留Vue默认导出。额外系统依赖与文件/网络授权必须为空,不能通过模块扩大原有账户能力。详见官方模块合同。
双架构原生Manifest模板与官方应用机器清单可直接下载。模板中的演示脚本不是经过验收的生产二进制,构建前仍须按工具同时验证实际引用文件。仓库索引的字段和整包摘要见仓库与发布规范。