阅读器在多会话朗读、加密 EPUB 资源、并发打开同一本书和多 UserDefaults 容器等场景下,存在旧异步结果覆盖新状态、锁屏控制串会话、大型明文资源被误拒绝、解压半成品被复用及标注跨容器混用的风险;同时高亮、书签、搜索和设置面板的空状态与自动化可访问性入口不完整。\n\n本次为朗读会话引入代次和当前 utterance 校验,远程控制改为仅响应当前会话并按自身 token 清理;加密资源 provider 先判定是否实际返回解密数据,明文大资源继续流式读取;解压缓存串行化以避免并发复用未完成目录。书签与高亮迁移至受保护文件,按 UserDefaults 容器隔离命名空间,保留标准容器旧文件兼容并确保新副本成功落盘后才删除历史数据。\n\n同步调整缓存淘汰、FoundationModels 弱链接、搜索/标注/设置面板交互与 UI 测试,并更新 Pod 生成配置及 API、风险文档。已执行 git diff --check 和 ReadViewDemo Debug Simulator 构建,结果为 BUILD SUCCEEDED。
41 lines
1.5 KiB
Ruby
41 lines
1.5 KiB
Ruby
Pod::Spec.new do |s|
|
||
s.name = "RDAIReaderView"
|
||
s.module_name = "RDAIReaderView"
|
||
s.version = "0.1.0"
|
||
s.summary = "Local-first AI indexing and retrieval primitives for ReadViewSDK readers"
|
||
s.platform = :ios, "15.0"
|
||
s.swift_versions = ["5.10"]
|
||
s.homepage = "https://example.invalid/RDAIReaderView"
|
||
s.author = { "readoor" => "ios@touchread.com" }
|
||
s.source = { :path => "." }
|
||
s.license = "MIT"
|
||
s.requires_arc = true
|
||
|
||
s.subspec "Core" do |core|
|
||
core.source_files = "Core/**/*.swift"
|
||
core.frameworks = "CryptoKit"
|
||
core.libraries = "sqlite3"
|
||
end
|
||
|
||
s.subspec "NaturalLanguage" do |natural_language|
|
||
natural_language.source_files = "NaturalLanguage/**/*.swift"
|
||
natural_language.dependency "RDAIReaderView/Core", "~> 0.1"
|
||
natural_language.frameworks = "NaturalLanguage"
|
||
end
|
||
|
||
s.subspec "FoundationModels" do |foundation_models|
|
||
foundation_models.source_files = "FoundationModels/**/*.swift"
|
||
foundation_models.dependency "RDAIReaderView/Core", "~> 0.1"
|
||
# 弱链接:FoundationModels 仅 iOS 26+ 提供,硬链接会让宿主 App 在
|
||
# iOS 18 上启动即 dyld 失败。文件内所有类型都是 @available(iOS 26.0, *),
|
||
# 低版本不会触达这些符号。
|
||
foundation_models.weak_frameworks = "FoundationModels"
|
||
end
|
||
|
||
s.subspec "UI" do |ui|
|
||
ui.source_files = "UI/**/*.swift"
|
||
ui.dependency "RDAIReaderView/Core", "~> 0.1"
|
||
ui.frameworks = "UIKit"
|
||
end
|
||
end
|