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

+67
View File
@@ -1870,3 +1870,70 @@ To http://git.reelshort2.com/jianghaifeng/ReelShort.git
```
解读: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。