====== Manifest字段、Schema与模板 ====== manifest.json是套件根目录唯一的元数据入口。使用[[https://www.apuos.cn/developer/spkg/manifest.schema.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默认导出。额外系统依赖与文件/网络授权必须为空,不能通过模块扩大原有账户能力。详见[[packages/modules|官方模块合同]]。 [[https://www.apuos.cn/developer/spkg/manifest.json|双架构原生Manifest模板]]与[[https://www.apuos.cn/developer/spkg/application-inventory.json|官方应用机器清单]]可直接下载。模板中的演示脚本不是经过验收的生产二进制,构建前仍须按工具同时验证实际引用文件。仓库索引的字段和整包摘要见[[packages/publishing|仓库与发布规范]]。