# Phase 3 Verification ## Commands - `pod install` in `ReadViewDemo/` - `build_sim` for scheme `ReadViewDemo` - `build_run_sim` for scheme `ReadViewDemo` - `rg -n "diagnostic|metadata|page break|attachment|image|block|pageStartOffset|pageEndOffset|RDEPUBTextOffsetRangeInfo|rangeInfo" Sources/RDReaderView ReadViewDemo/ReadViewDemo -S` - `test -d ReadViewDemo/ReadViewDemo/book` ## Results - Build succeeded on iOS Simulator - App launch succeeded on simulator `iPhone 17` - Sample corpus directory exists: `ReadViewDemo/ReadViewDemo/book` - Source verification confirms: - internal layouter/layout-frame types exist under `EPUBTextRendering` - paginator now emits page-break semantics and attachment/block diagnostics - `RDEPUBTextContentView` still uses `pageStartOffset` / `pageEndOffset` - `RDEPUBTextOffsetRangeInfo` remains the absolute-offset persistence format ## Runtime Evidence From the app runtime log: - `EPUB 资源验证:2/2 通过` - `分页诊断:宝山辽墓材料与释读 · 章节 10 · attachment 页 54 · semantic break 页 57 · reasons [attachmentBoundary:31, blockBoundary:26, frameLimit:17, chapterEnd:4] · page break: blockBoundary` ## Residual Risk - The layouter heuristics are intentionally incremental, not a full WXRead-equivalent paginator. Phase 4 should validate the stronger page model against live reader navigation/highlight/search flows, and Phase 5 should broaden corpus coverage.