# 发行材料 根目录 [MIT](../LICENSE) 适用于原创管理器代码与文档。AstrBot、NapCat、Linux QQ、Ubuntu 和其他依赖保留自己的授权,完整组件清单见 [THIRD_PARTY_NOTICES.md](legal/THIRD_PARTY_NOTICES.md)。 ## 固定输入 | 文件 | 用途 | | --- | --- | | `runtime/sources.lock.json` | 基础环境和原生资源来源 | | `runtime/projects.lock.json` | AstrBot、NapCat、QQ 等运行组件版本 | | `runtime/astrbot-python.lock.txt` | Python 安装依赖 | | `runtime/distribution-sources.lock.json` | 上游源码归档来源与摘要 | | `runtime/python-sources.lock.json` | Python 源码归档及原始来源信息 | 收集工具读取固定镜像、实际 Gradle 发行依赖和源码白名单,不读取手机数据。版本、归档大小和 SHA-256 必须与锁文件一致。 ## 收集 ```powershell ./gradlew.bat :app:collectReleaseDependencyMetadata '-PbundledRuntime=true' python -B -X utf8 tools/build_support/collect_distribution.py --apk-assets runtime/distribution-assets python -B -X utf8 tools/build_support/verify_distribution.py ``` 上游源码归档按锁文件放入 `.cache/distribution/sources/`,AstrBot 原始归档放入 `.cache/upstream/`。完整运行镜像位于 `runtime/apk-assets/bootstrap/arm64-v8a/`。 若输入与输出位于工程外,可显式指定目录: ```powershell python -B -X utf8 tools/build_support/collect_distribution.py --runtime-dir ../build-inputs/runtime/apk-assets/bootstrap/arm64-v8a --cache-dir ../build-inputs/cache --native-dir ../build-inputs/jniLibs --android-metadata app/build/distribution/android-dependencies --output ../release-materials --apk-assets runtime/distribution-assets --python-source-directory ../python-sources python -B -X utf8 tools/build_support/verify_distribution.py --directory ../release-materials --python-source-directory ../python-sources ``` ## 输出 | 文件 | 内容 | | --- | --- | | `third-party-notices.zip` | 原始许可、公开依赖元数据、原创 LICENSE / NOTICE 与发行清单 | | `available-sources.zip` | 原始上游源码、Termux 配方与可取得的 Maven 源 JAR | | `manager-source.zip` | 管理器源码、构建脚本、锁文件及公共文档 | | `release-inventory.json` | 实际依赖、资源摘要、来源及材料状态 | | `collection.json` | 归档文件名、大小、摘要和条目数 | ZIP 使用固定条目顺序与时间,并携带逐文件摘要。`--apk-assets` 只复制许可 ZIP 和索引,不把源码归档嵌入 APK。应用内可从“设置 → 关于 → 第三方许可”查看和导出许可原文。 源码收集仅包含公共说明;个人设备记录、调试日志、验收表和实施笔记不属于发布材料。 ## 源码伴随包 Ubuntu 源码伴随包作为独立构建输入准备,按 dpkg 的准确源版本收集,并保留 Ubuntu 签名索引、原始文件名、源码包及 Debian 构建补丁。收集 APK 发行材料时会核对其与镜像中包版本和摘要的对应关系。 Python 源码由 `tools/build_support/collect_python_sources.py` 按固定计划收集,包括 PyPI sdist 和明确标识的上游源码补充。使用 `--python-source-directory` 将独立的 `python-source-packages.zip` 绑定至发行清单;它不进入 APK。 打包辅助工具的参数见相应 `--help`。完整源码伴随包应与其安装包一起提供,不能用根目录 MIT 或源码下载链接替代第三方许可要求。 `release-inventory.json` 中的 `openItems` / `releaseReady` 用于表示发行材料完整性。它们与应用功能无关;没有完成适用的授权、对应源码或构建映射时,保留实际状态。