docs(plans): 记录 iOS SPM 构建修复与限制

This commit is contained in:
Zhou Weidong committed 2026-10-17 16:32:55 +08:00
1 parent 927d6ceab8
commit 7374045065
2 files changed
+95 -1

No files matched your search

+28 -1
View File
@@ -233,10 +233,37 @@ Running Gradle task 'assembleDebug'... 6.6s
设备侧截图、触觉感知结果与系统低电量测试由用户执行。
#### 6.7 已知边界
#### 6.7 iOS Xcode SPM 构建修复
- `Runner.xcscheme` 新增 “Bootstrap Flutter SPM Package” PreAction:
按 `FLUTTER_ROOT → PATH → $HOME/flutter → /opt/homebrew` 兜底解析
Flutter,执行 `flutter pub get`,找不到时明确报错并非 0 退出。
- 原有 “Run Prepare Flutter Framework Script” 保留,并改为同一兜底链解析
Flutter root 后执行 `xcode_backend.sh prepare`。
- `xmllint --noout` 通过;`xcodebuild -list` 可识别 Runner scheme 与全部
SPM source packages。
- 在已有 SPM 包时完整执行:
`xcodebuild -project ios/Runner.xcodeproj -scheme Runner -configuration Debug -sdk iphoneos build`
结果为 `BUILD SUCCEEDED`;日志确认执行 PreAction,输出
`Resolving dependencies...`、`Got dependencies!`。
- 删除 `ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage`
后立即运行同一 `xcodebuild`,Xcode 在 “Resolve Package Graph” 阶段先失败,
尚未运行 PreActions:
`Could not resolve package dependencies ... folder doesn’t exist`。
因此 **scheme-only 修复无法覆盖“包从未生成”的首次冷启动**;
该冷启动自动生成场景标记为未通过验证。
- 当前可靠口径:新克隆、`flutter clean` 或手动删除 ephemeral 后,先执行一次
`flutter pub get`,再从 Xcode GUI 运行;正常构建期间 PreAction 会继续刷新包。
- 修复提交:`cc037a2956848128c4899df1f5092fea44d3620b`
`fix(ios): 刷新 Flutter SPM 包后再准备框架`
- 合并:`ac706a4`,已推送 ReelShort `develop`。
#### 6.8 已知边界
- 未增加震动开关;触觉遵循系统设置。
- 不做忘记密码、Google/Apple 登录、隐私勾选或新 tab。
- Xcode 首次包图解析早于 scheme PreActions;完全无 SPM 包时仍需先运行
`flutter pub get`,本轮未通过 scheme 实现冷启动自动生成。
- K4 未开始。
---