docs(plans): 合并 iOS SPM 修复回执
This commit is contained in:
commit
c8c085b4e0
2 files changed
+95
-1
No files matched your search
+28
-1
@@ -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。
|
- 不做忘记密码、Google/Apple 登录、隐私勾选或新 tab。
|
||||||
|
- Xcode 首次包图解析早于 scheme PreActions;完全无 SPM 包时仍需先运行
|
||||||
|
`flutter pub get`,本轮未通过 scheme 实现冷启动自动生成。
|
||||||
- K4 未开始。
|
- K4 未开始。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1870,3 +1870,70 @@ To http://git.reelshort2.com/jianghaifeng/ReelShort.git
|
|||||||
```
|
```
|
||||||
|
|
||||||
解读:K6 已合并并推送,author/committer 均为 Zhou Weidong,未操作 main。
|
解读:K6 已合并并推送,author/committer 均为 Zhou Weidong,未操作 main。
|
||||||
|
|
||||||
|
### 20.7 iOS Xcode SPM 构建修复(K6 收尾)
|
||||||
|
|
||||||
|
叙述:只修改 `Runner.xcscheme` PreActions。新增 Python 无关的 shell
|
||||||
|
兜底链解析 Flutter,先 `flutter pub get`;原 prepare action 保留,并改为
|
||||||
|
同一路径解析后执行 `xcode_backend.sh prepare`。
|
||||||
|
|
||||||
|
XML 校验:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ xmllint --noout ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
|
||||||
|
(无输出,退出码 0)
|
||||||
|
```
|
||||||
|
|
||||||
|
清理 ephemeral 后直接 xcodebuild:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ rm -rf ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage
|
||||||
|
$ xcodebuild -project ios/Runner.xcodeproj -scheme Runner -configuration Debug -sdk iphoneos build
|
||||||
|
Resolve Package Graph
|
||||||
|
the package at '.../FlutterGeneratedPluginSwiftPackage' cannot be accessed
|
||||||
|
xcodebuild: error: Could not resolve package dependencies
|
||||||
|
```
|
||||||
|
|
||||||
|
解读:Xcode 在运行 scheme PreActions 之前先解析 Package Graph,因此
|
||||||
|
“包目录完全不存在”的首次冷启动无法仅靠 scheme PreAction 自动生成。
|
||||||
|
这是 Xcode 执行顺序限制,不是 XML 语法错误。
|
||||||
|
|
||||||
|
使用 `flutter pub get` 恢复包后:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ flutter pub get
|
||||||
|
Got dependencies!
|
||||||
|
|
||||||
|
$ xcodebuild -list -project ios/Runner.xcodeproj
|
||||||
|
Resolved source packages:
|
||||||
|
FlutterGeneratedPluginSwiftPackage: .../ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
完整重建精简日志:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ xcodebuild -project ios/Runner.xcodeproj -scheme Runner -configuration Debug -sdk iphoneos build
|
||||||
|
Resolve Package Graph
|
||||||
|
Resolved source packages:
|
||||||
|
Run pre-actions
|
||||||
|
export SCHEME_ACTION_NAME="Bootstrap Flutter SPM Package"
|
||||||
|
Resolving dependencies...
|
||||||
|
Got dependencies!
|
||||||
|
** BUILD SUCCEEDED **
|
||||||
|
```
|
||||||
|
|
||||||
|
解读:SPM 包存在时,PreAction 能成功刷新依赖,prepare 和完整 iPhoneOS
|
||||||
|
Debug 构建通过并完成签名。冷启动自动生成未通过验证,用户仍需在
|
||||||
|
新克隆/`flutter clean`/手动删除 ephemeral 后先运行 `flutter pub get`。
|
||||||
|
|
||||||
|
Git:
|
||||||
|
|
||||||
|
```
|
||||||
|
cc037a2956848128c4899df1f5092fea44d3620b
|
||||||
|
fix(ios): 刷新 Flutter SPM 包后再准备框架
|
||||||
|
|
||||||
|
0cedaab..ac706a4 develop -> develop
|
||||||
|
```
|
||||||
|
|
||||||
|
解读:scheme 修复已合并推送;author/committer 均为 Zhou Weidong。
|
||||||
Reference in new issue
Block a user