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
2931get-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