Skip to content

Commit 0ee862c

Browse files
jinwei.hanclaude
andcommitted
同步 CLAUDE.md:更新文档路径、Phase 2 测试结果、研究进展
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 7fcab0e commit 0ee862c

1 file changed

Lines changed: 36 additions & 13 deletions

File tree

get-started/CLAUDE.md

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
- 两个 XCFramework 通过 CocoaPods 分别交付
1515
- 两套 K/N 运行时共存时是否真的互相隔离?跨框架传递 Kotlin 对象会不会崩溃?
1616

17-
**核心结论**:双运行时问题已被 4 个维度的实证坐实。详见 `xcframework_viz/reports/v3-dual-runtime-evidence-report.md`
17+
**核心结论**:双运行时问题已被 4 个维度的实证坐实。详见 `docs/analysis/v3-dual-runtime-evidence-report.md`
18+
19+
**KMT-2364 修复结论**:通过 `exportKlibSymbols` / `externalKlibs` 编译器选项,已实现跨框架 `is`/`as` 类型检查通过(Phase 1 + Phase 2 T1–T6 全部验证)。详见 `docs/fix-reports/`
1820

1921
**相关链接**
2022
- YouTrack Issue: https://youtrack.jetbrains.com/issue/KMT-2364
@@ -29,18 +31,20 @@
2931
get-started/
3032
├── androidApp/ # Android 应用
3133
├── foundation/ # KMP Foundation 模块(携带 runtime)
32-
│ ├── build.gradle.kts
34+
│ ├── build.gradle.kts # exportKlibSymbols / externalKlibs 配置
3335
│ ├── foundationKit.podspec
3436
│ └── src/commonMain/kotlin/com/example/kmp/foundation/
3537
│ ├── Platform.kt # platform() 函数 + expect/actual
36-
│ └── SharedData.kt # 跨框架测试用 data class
38+
│ ├── SharedData.kt # 跨框架测试用 data class
39+
│ └── TypeTestModels.kt # Phase 2 测试类型:RequestPayload/ResponseResult/NetworkState
3740
├── business/ # KMP Business 模块(依赖 foundation)
38-
│ ├── build.gradle.kts # api + export(project(":foundation"))
41+
│ ├── build.gradle.kts # api + export(project(":foundation")) + externalKlibs
3942
│ ├── businessKit.podspec
4043
│ └── src/commonMain/kotlin/com/example/kmp/business/
4144
│ ├── UserService.kt
4245
│ ├── FeedService.kt
4346
│ ├── SharedDataProcessor.kt # 跨框架类型检查/强转测试
47+
│ ├── NetworkProcessor.kt # Phase 2 跨框架处理器(Any-based dispatch)
4448
│ └── model/
4549
│ ├── User.kt
4650
│ └── FeedItem.kt
@@ -50,15 +54,24 @@ get-started/
5054
│ ├── ContentView.swift # 集成所有测试的 UI
5155
│ ├── RuntimeDuplicateTest.swift # ObjC runtime 双运行时检测
5256
│ └── KMPGetStartedCodelabApp.swift
57+
├── docs/ # 所有研究文档(中文)
58+
│ ├── analysis/ # 符号分析 & 实证报告
59+
│ │ ├── v3-dual-runtime-evidence-report.md
60+
│ │ ├── v3-duplicate-symbol-analysis-2026-03-30.md
61+
│ │ └── kn-xcframework-symbol-analysis-2026-03-30.md
62+
│ ├── design/ # 架构设计 & 路径探索
63+
│ │ ├── business-module-design.md
64+
│ │ ├── v3-split-delivery-paths-report.md
65+
│ │ ├── shared-runtime-compiler-design.md
66+
│ │ └── shared-runtime-poc.md
67+
│ └── fix-reports/ # KMT-2364 修复报告
68+
│ ├── kmt-2364-fix-report.md
69+
│ ├── kmt-2364-phase2-fix-report.md
70+
│ └── kmt-2364-phase2-milestone.md
5371
├── xcframework_viz/
5472
│ ├── xcframework-analyzer.py # XCFramework 符号分析工具
5573
│ ├── app-binary-analyzer.py # App 包内嵌 framework 符号分析
56-
│ ├── project.json
57-
│ └── reports/
58-
│ ├── v3-dual-runtime-evidence-report.md # 综合实证报告
59-
│ ├── v3-duplicate-symbol-analysis-2026-03-30.md
60-
│ ├── kn-xcframework-symbol-analysis-2026-03-30.md
61-
│ └── business-module-design.md
74+
│ └── project.json
6275
└── settings.gradle.kts # 包含 :foundation 和 :business
6376
```
6477

@@ -295,9 +308,19 @@ grep -E "GC|kotlin" /tmp/sample.txt
295308
- [x] GC 线程采样:确认 4 个 GC 线程分属两个框架
296309
- [x] ObjC 运行时验证:两套独立类层次 + dladdr 不同 image
297310
- [x] 跨框架 Kotlin 对象传递:`is` 检查失败 + `as` 强转 ClassCastException
298-
- [x] 写综合研究报告 (`v3-dual-runtime-evidence-report.md`)
311+
- [x] 写综合研究报告 (`docs/analysis/v3-dual-runtime-evidence-report.md`)
299312
- [x] 探索所有分体运行时共享路径(A/B/C/D/E,共 5 条)
300-
- [x] 写分体交付路径探索报告 (`v3-split-delivery-paths-report.md`)
313+
- [x] 写分体交付路径探索报告 (`docs/design/v3-split-delivery-paths-report.md`)
314+
- [x] KMT-2364 Phase 1 修复:`exportKlibSymbols` / `externalKlibs` 配置,`isCheck=true` 验证通过
315+
- [x] KMT-2364 Phase 2 综合测试:新增 TypeTestModels + NetworkProcessor,T1–T6 全部通过
316+
- T1: 数据类 is-check(RequestPayload / ResponseResult)✅
317+
- T2: 接收 A 返回 B 跨框架工作流 ✅
318+
- T3: 嵌套跨框架引用存活(ResponseResult.source)✅
319+
- T4: 双重 cast 往返 ✅
320+
- T5: sealed class 6 种 is-check ✅
321+
- T6: 集合类型过滤(countSuccessInList)✅
322+
- T7: sealed when + 字段访问 ⚠️ 待调查(available_externally LTO 内联问题)
323+
- [x] 整理所有文档到 `docs/` 目录,英文文档翻译为中文
301324

302325
### 各路径结论(2026-03-31 探索完毕)
303326

@@ -315,5 +338,5 @@ grep -E "GC|kotlin" /tmp/sample.txt
315338

316339
---
317340

318-
*最后更新:2026-03-31*
341+
*最后更新:2026-04-01*
319342
*项目路径:`/Users/bytedance/codelab-android-kmp/get-started`*

0 commit comments

Comments
 (0)