mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-07-22 04:06:44 +08:00
feat: prepare experiment push package
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
# 官方资源拉取用户指南
|
||||
|
||||
本文档描述当前可用的官方日服资源拉取流程。
|
||||
|
||||
默认平台:
|
||||
|
||||
- `Windows`
|
||||
- `Android`
|
||||
|
||||
不包含:
|
||||
|
||||
- `iOS`
|
||||
- `macOS`
|
||||
- `bluearchive.cafe` 或其他镜像域名
|
||||
- 任何本地客户端目录
|
||||
|
||||
## 1. 当前流程
|
||||
|
||||
运行时链路只走官方日服:
|
||||
|
||||
1. 请求官方 launcher API。
|
||||
2. 从官方 launcher manifest 链路得到最新游戏包 ZIP。
|
||||
3. 解包 `resources.assets`。
|
||||
4. 解密 `GameMainConfig`。
|
||||
5. 从 `GameMainConfig` 自动读取 `server-info` URL 和默认 `connection-group`。
|
||||
6. 请求官方 `server-info`。
|
||||
7. 生成 Windows + Android 的官方资源 discovery 端点。
|
||||
8. 拉取 seed catalog,生成完整官方 pull plan。
|
||||
9. dry-run 只输出 URL;非 dry-run 下载全部官方 URL。
|
||||
|
||||
`--server-info-file` 和 `--server-info-path` 都不是硬依赖。
|
||||
|
||||
## 2. 先做 launcher bootstrap
|
||||
|
||||
先确认 launcher API 和官方 ZIP 链路正常:
|
||||
|
||||
```bash
|
||||
cargo run -p bat-infrastructure --example official_launcher_bootstrap -- \
|
||||
--launcher-version 1.7.2 \
|
||||
--manifest
|
||||
```
|
||||
|
||||
这一步会输出:
|
||||
|
||||
- `game_latest_version`
|
||||
- `game_latest_file_path`
|
||||
- `primary_cdn`
|
||||
- `backup_cdn`
|
||||
- `manifest_url`
|
||||
- `manifest_source`
|
||||
- `manifest_file_count`
|
||||
|
||||
所有 URL 都应来自官方域名。
|
||||
|
||||
## 3. 先做 dry-run
|
||||
|
||||
推荐默认流程是不提供本地 `server-info` 文件,也不提供本地客户端目录:
|
||||
|
||||
```bash
|
||||
cargo run -p bat-infrastructure --example official_pull_plan -- \
|
||||
--launcher-bootstrap \
|
||||
--platforms Windows,Android \
|
||||
--output /tmp/ba-official-pull \
|
||||
--dry-run
|
||||
```
|
||||
|
||||
如果你已经有官方 `server-info` 文件,也可以显式传入:
|
||||
|
||||
```bash
|
||||
cargo run -p bat-infrastructure --example official_pull_plan -- \
|
||||
--server-info-file r93_70_xxxxxxxxxxxxxxxxxxxx.json \
|
||||
--connection-group Prod-Audit \
|
||||
--app-version 1.70.0 \
|
||||
--platforms Windows,Android \
|
||||
--output /tmp/ba-official-pull \
|
||||
--dry-run
|
||||
```
|
||||
|
||||
检查输出时,重点看:
|
||||
|
||||
- `platforms=[Windows, Android]`
|
||||
- `discovery_url_count` 大于 0
|
||||
- `content_url_count` 大于 0
|
||||
- 不出现 `bluearchive.cafe`
|
||||
|
||||
## 4. 执行真实拉取
|
||||
|
||||
确认 dry-run 正常后,去掉 `--dry-run`:
|
||||
|
||||
```bash
|
||||
cargo run -p bat-infrastructure --example official_pull_plan -- \
|
||||
--launcher-bootstrap \
|
||||
--platforms Windows,Android \
|
||||
--output /tmp/ba-official-pull
|
||||
```
|
||||
|
||||
程序会:
|
||||
|
||||
- 只接受官方 URL
|
||||
- 下载完整官方资源集合
|
||||
- 把结果写入 `--output`
|
||||
|
||||
## 5. 例外输入
|
||||
|
||||
如果必须使用本地 `server-info`,只接受:
|
||||
|
||||
- `--server-info-file <官方文件名>`
|
||||
- `--server-info-path <本地官方 JSON>`
|
||||
|
||||
但这两项不再是主流程依赖。
|
||||
|
||||
## 6. 代码入口
|
||||
|
||||
当前可用的用户入口:
|
||||
|
||||
- `infrastructure/examples/official_launcher_bootstrap.rs`
|
||||
- `infrastructure/examples/official_pull_plan.rs`
|
||||
- `adapters/examples/yostar_jp_client_bootstrap.rs`
|
||||
- `adapters/examples/yostar_jp_discovery.rs`
|
||||
- `adapters/examples/yostar_jp_inventory.rs`
|
||||
|
||||
## 7. 验证
|
||||
|
||||
推荐验证命令:
|
||||
|
||||
```bash
|
||||
cargo test -p bat-adapters
|
||||
cargo test -p bat-infrastructure
|
||||
cargo test -p bat-infrastructure --example official_launcher_bootstrap -- --nocapture
|
||||
cargo test -p bat-infrastructure --example official_pull_plan -- --nocapture
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user