106 lines
5.0 KiB
Markdown
106 lines
5.0 KiB
Markdown
# HoloLake Era · 2026-07-19 iPhone 与 Windows 开发收口
|
||
|
||
> 文档编号:`HLP-HANDOFF-20260719-001`
|
||
> 事实源:`REPO-008 bingshuo/hololake-platform`
|
||
> 状态:`IOS_UPLOAD_ACCEPTED_PENDING_TESTFLIGHT · WINDOWS_NATIVE_EXE_BUILT_PACKAGING_NAME_MISMATCH`
|
||
|
||
## 1. 本日完成事项
|
||
|
||
- iOS 工程、Scheme、Bundle ID 与显示名称已经从 Tolaria 过渡名称统一到 HoloLake:
|
||
`hololake.xcodeproj`、`hololake_iOS`、`com.guanghulab.hololake`、`HoloLake Era`。
|
||
- Apple 付费开发团队与开发/发行证书已在 Xcode 生效。
|
||
- `HoloLake Era 0.1.7 (20)` 已由 Xcode 上传;上传前确认 App 根目录不再包含导致
|
||
build 19 被拒的 `libapp.a`。
|
||
- App Store Connect 应用页面已经显示 HoloLake 实际图标,不再是默认占位图;这证明
|
||
上传包图标资产已被识别,不等于 TestFlight 已可安装。
|
||
- iOS 归档、IPA 和校验文件已落到外接盘,未把大体积构建缓存长期留在电脑内置盘。
|
||
- 新加坡大脑服务器已完成 Windows MSVC 目标的首次依赖下载与 Rust 交叉编译,实际生成:
|
||
`/opt/hololake-build/hololake-platform/src-tauri/target/x86_64-pc-windows-msvc/release/hololake.exe`。
|
||
|
||
## 2. iPhone / TestFlight 当前进度
|
||
|
||
真实源码入口:
|
||
|
||
- `src/components/HoloLakeHome.tsx`:手机频道结构;
|
||
- `src/App.css`:手机响应式布局与安全区;
|
||
- `src/components/HoloLakeHome.test.tsx`:手机入口回归测试;
|
||
- `src-tauri/tauri.ios.conf.json`:iOS Tauri 身份;
|
||
- `src-tauri/gen/apple/project.yml`:XcodeGen 工程源;
|
||
- `src-tauri/gen/apple/hololake.xcodeproj`:当前 Xcode 工程;
|
||
- `docs/IOS-TESTFLIGHT.md`:持续维护的 iOS 承接页。
|
||
|
||
外接盘证据:
|
||
|
||
- 目录:`/Volumes/JZAO/HoloLake/artifacts/ios-testflight/0.1.7-build20/`
|
||
- IPA:`/Volumes/JZAO/HoloLake/artifacts/ios-testflight/0.1.7-build20/HoloLake Era-0.1.7-build20.ipa`
|
||
- IPA SHA-256:`c813d8fd6f639d5e91366e95e1b57d04ea6eec46ac9433261746b0c8cd18dc76`
|
||
|
||
尚未闭环:
|
||
|
||
1. 核验 build 20 在 TestFlight 的 Apple 处理状态;
|
||
2. 补全内部测试信息并把 build 加入内部测试组;
|
||
3. 冰朔从 TestFlight 真机安装,验收启动、五入口、安全区、频道切换和知识库入口;
|
||
4. 后续上传必须递增 build number,不能重复上传 build 20。
|
||
|
||
边界:App Store Connect 页面显示“准备提交”、显示实际 Logo 或 Xcode 显示
|
||
`App upload complete`,都不能单独写成“TestFlight 已可用”。
|
||
|
||
## 3. Windows 构建的真实结果与问题
|
||
|
||
本次不是在 Mac 上伪造 Windows 包,而是在 Linux 服务器上使用 `cargo-xwin` 生成
|
||
Windows MSVC 二进制,再计划交给 NSIS 封装。运行节点是新加坡大脑服务器:
|
||
|
||
- Gatekeeper 节点编号:`BS-SG-001`;
|
||
- 仓库:`/opt/hololake-build/hololake-platform`;
|
||
- 日志:`/opt/hololake-build/windows-build.log`;
|
||
- 构建入口:`scripts/build-windows-jd-cross.sh`;
|
||
- Tauri 团队配置:`src-tauri/tauri.team.conf.json`;
|
||
- NSIS 模板:`scripts/windows-installer.nsi`。
|
||
|
||
首次运行遇到旧 Cargo 进程持有 package cache 文件锁;只终止旧 PID 后,本轮进程正常
|
||
下载并编译。最终日志确认:
|
||
|
||
```text
|
||
Finished `release` profile [optimized]
|
||
Built application at: .../release/hololake.exe
|
||
No Windows executable was produced: .../release/tolaria.exe
|
||
```
|
||
|
||
因此真实结论是:
|
||
|
||
- Windows 原生 `.exe` 已编译成功;
|
||
- NSIS 安装包尚未生成;
|
||
- 根因是 `src-tauri/Cargo.toml` 的 package 名已是 `hololake`,而
|
||
`scripts/build-windows-jd-cross.sh` 仍把 `app_exe` 固定为 `tolaria.exe`;
|
||
- 这不是 Linux 构建能力问题,也不是 Windows runner 缺失导致的本次失败。
|
||
|
||
下一实例只需先修复 `scripts/build-windows-jd-cross.sh` 的可执行文件定位,使其读取
|
||
`hololake.exe`(更稳妥的做法是从 Cargo metadata/构建输出推导,而非再次硬编码旧名),
|
||
然后利用服务器现有 Cargo 缓存重跑。成功标准必须同时包括:
|
||
|
||
1. 生成 `HoloLake-Era-0.1.7-Team-Foundation-Windows-x64-setup.exe`;
|
||
2. `file`/PE 检查确认 Windows x64 格式;
|
||
3. `.sha256` 校验通过;
|
||
4. 安装包复制到冰朔桌面和 `/Volumes/JZAO/HoloLake/artifacts/windows/0.1.7/`;
|
||
5. 真实 Windows 电脑安装、启动并确认只显示 GLS 团队基础入口。
|
||
|
||
## 4. 当日没有宣称完成的事项
|
||
|
||
- 没有宣称 TestFlight 已向测试者开放;
|
||
- 没有宣称 Windows NSIS 包已经交付;
|
||
- 没有宣称企业四域页面已经完成;
|
||
- 没有把 Notion 导出当作现行页面关系或软件本体;
|
||
- 没有把第五域个人内容混入团队 GLS 基座包。
|
||
|
||
## 5. 下一实例最短读取顺序
|
||
|
||
1. 本文;
|
||
2. `docs/TEAM-FOUNDATION-HANDOFF.md`;
|
||
3. `docs/IOS-TESTFLIGHT.md`;
|
||
4. `docs/skills/internal-release-packaging/SKILL.md`;
|
||
5. `scripts/build-windows-jd-cross.sh`;
|
||
6. `src-tauri/Cargo.toml` 与 `src-tauri/tauri.team.conf.json`。
|
||
|
||
所有状态必须重新读取远端 `main` 与真实构建/Apple 页面核验;本文提供可审计断点,
|
||
不允许后来实例把历史状态当成当前成功状态。
|