hololake-platform/docs/HANDOFF-2026-07-19-IOS-WINDOWS.md

106 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 页面核验;本文提供可审计断点,
不允许后来实例把历史状态当成当前成功状态。