新闻详情

新闻详情

首页 / 资讯中心 / 详情

gstack 升级或新增 @Observable 状态后如何用 /ios-sync 重新同步 iOS 调试桥与访问器

发布时间:2026/9/18 15:12:14来源:尧图网络
gstack 升级或新增 @Observable 状态后如何用 /ios-sync 重新同步 iOS 调试桥与访问器
gstack 升级或新增 Observable 状态后如何用 /ios-sync 重新同步 iOS 调试桥与访问器【免费下载链接】gstackUse Garry Tans exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA项目地址: https://gitcode.com/GitHub_Trending/gs/gstack在 app 里装好 gstack 的 iOS 调试桥/ios-qa生成的DebugBridgeSwift 包 DebugBridgeGenerated/StateAccessor.swift之后有两个时点会让现有生成产物和上游模板脱节一是把 gstack 升级到带加固修复的新版本二是在 app 里新增了需要快照覆盖的Observable状态。这时用/ios-sync技能重新同步它基于上游 gstack 的模板重生成StateServer.swift、DebugOverlay.swift、Package.swift和带类型的Observable状态访问器并原地更新生成产物。适用环境为 macOS Xcodedevicectl可用、gstack 已通过./setup完成安装且 app 中已存在/ios-qa安装的桥。相关文档见 ios-sync/SKILL.md、docs/howto-ios-testing-with-gstack.md 与 ios-qa/SKILL.md。先判断是否需要重新同步/ios-sync的第一步是版本探测判断这次调用是否可以直接结束读取app/DebugBridgeGenerated/.gstack-version安装时由/ios-qa写入。该文件缺失时按“未知旧版本”处理需要重新生成。读取上游 gstack 根目录下的VERSION文件作为当前版本。两个版本一致、且没有新增Observable类时直接以 already up to date 提前退出不执行重生成。只有版本不一致或新增了Observable类/字段时才进入下面的重生成流程。新增 Observable 状态标记规则决定访问器内容只有带独立标记注释的字段才会出现在访问器和GET /state/snapshot快照里。标记是属性正上方的一行注释// Snapshotable故意不用属性包装器以便与 Observation 的Observable宏共存。未标记的字段不会出现在快照中这默认把 token、PII 和认证状态排除在记录产物之外。文档中的示例文档示例字段名为示意Observable final class AppState { // Snapshotable var username: String var authToken: String // never exported }新增字段要被生成器接受必须同时满足属于文件作用域的Observable类是可写的实例var带显式类型和 internal 或 public setter类型为 JSON 原生标量String、Bool、各整数宽度、Float、Double、CGFloat、数组、String 键的字典或它们的 Optional 组合快照 key 在所有 observable 类之间唯一。生成器对不满足的声明会直接报错停止而不是产出坏 Swift。执行重新同步在 Claude Code 中调用/ios-sync触发语 resync the iOS debug bridge、regenerate iOS accessors 等技能会完成下面四个阶段。也可以直接运行同一确定性命令手动执行 Phase 2 的核心步骤。$APP_SOURCE_DIR替换为 app 的 Swift 源码目录~/.claude/skills/gstack/bin/gstack-ios-qa-regen \ --app-source $APP_SOURCE_DIR \ --bridge-dir $APP_SOURCE_DIR/DebugBridge--app-source是访问器扫描器要检查的目录建议传较窄的 app 源码目录--bridge-dir是 app 在 Debug 构建中链接的本地 Swift 包目录。bin/gstack-ios-qa-regen 的实际行为要求bun在 PATH 上缺失时直接报错退出按显式白名单把支持的桥模板从ios-qa/templates/复制到DebugBridge/包内删除旧版扁平DebugBridgeGenerated/布局下已知过期的生成文件防止残留的第二套 harness 影子化包模块手写 app 源码永远不会被触碰运行访问器生成器写出DebugBridgeGenerated/StateAccessor.swift只有在生成成功后才把当前VERSION写入DebugBridgeGenerated/.gstack-version完成标记——失败或中断的重生成不会呈现为“已是最新”的安装状态。缓存机制保证幂等生成器用复合哈希Swift 版本、generator git rev、lockfile、源码内容、平台 triple作为缓存 key且生成产物本身被排除在哈希之外。全部命中时是一次约 50ms 的空操作源文件字节保持不变只有内容真正变化时才重写。检查生成的 diff重新生成后按 ios-sync/SKILL.md Phase 3 审查查看app/DebugBridge/与app/DebugBridgeGenerated/StateAccessor.swift下的变更。确认命令没有修改 app 的手写 Swift 文件。app 特有的接线Package.swift依赖、main中的#if DEBUG启动代码保留在 app targetDebugBridge包内的规范桥文件是从上游重生成的不应手改手改会在下次重同步时被覆盖。验证结果Phase 4 给出四个验证点全部通过才算同步完成swift build对 app 的包构建成功。xcodebuild -scheme SchemeName构建成功SchemeName换成 app 实际的 scheme。在设备上重启 appMac 端 daemon 连接成功并完成 token 轮换。GET /state/snapshot返回新的访问器 schema hash——新增字段进入快照的直接证据。常见失败与限制ios-sync/SKILL.md 的 Failure modes 表给出四种情况的处理现象处理重生成后 Swift 编译失败用git restore回滚并展示编译错误Codegen 报告标记声明无效改用文件作用域 observable 类 显式 JSON 原生类型的可写实例varinternal/public setter 跨模型唯一的 key否则移除// Snapshotable标记新增 Observable 后 schema hash 不变字段上缺少独立的// Snapshotable标记注释——codegen 正确排除了未标记状态把注释加到要快照的每个字段正上方扫描器看到生成的桥源码传更窄的 app 源码目录regenerator 本身会自动排除DebugBridgeGenerated和StateAccessor.swift两条硬性边界来自 ios-qa/SKILL.md生成器目前只支持文件作用域的Observable类ObservableObject、StateObject等观察模型不会产生访问器依赖接线文档假设 SwiftPM app manifest面对.xcodeproj或.xcworkspace时不要自行发明 package/target 接线未满足条件时应停止桥引导而不改动 app。同步完成后若后续要做 Release 构建再按 docs/howto-ios-testing-with-gstack.md 的流程运行/ios-clean移除DebugBridge依赖与#if DEBUG接线Package.swift中.when(configuration: .debug)条件本身是 Release 构建不会链接桥的结构性兜底。【免费下载链接】gstackUse Garry Tans exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA项目地址: https://gitcode.com/GitHub_Trending/gs/gstack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

5G手机孔径调谐全解析:原理、选型与OTA验证 2026/9/18 15:11:37

5G手机孔径调谐全解析:原理、选型与OTA验证

简介:《孔径调谐:5G智能手机中一项必不可少的技术》是一份由Qorvo专家撰写的中文技术白皮书,面向射频工程师、手机天线设计人员以及关注5G通信的硬件开发者。文档围绕5G时代天线数量增多(从4G的4~6根增至6~…

阅读更多 →
从PCA失效到半监督优化局部保持投影:人脸门禁降维实战 2026/9/18 15:11:37

从PCA失效到半监督优化局部保持投影:人脸门禁降维实战

简介:这份PDF是一篇面向人脸识别与降维算法研究者的参考文献,聚焦半监督优化局部保持投影(SSOLPP)及其在有限标注样本下的特征提取思路。它从局部保持投影(LPP)的基向量关联性和非正交性出发,梳…

阅读更多 →
AI+智慧校园建设方案:从架构设计到落地部署 2026/9/18 15:11:37

AI+智慧校园建设方案:从架构设计到落地部署

简介:这份AI智慧校园建设方案PPT共100页,是一份面向教育信息化负责人、智慧校园项目规划者与方案撰写者的整体解决方案。内容从国家教育信息化2.0政策背景出发,围绕“一个中心、三个融合”的建设理念,详细拆解了智慧校园的技术支撑…

阅读更多 →
格矩阵的行列式与伴随矩阵:并-交语义下的代数结构与验证 2026/9/18 15:11:37

格矩阵的行列式与伴随矩阵:并-交语义下的代数结构与验证

简介:这份资料是格矩阵(Lattice Matrices)的行列式与伴随矩阵相关英文文献的中文翻译版,面向线性代数、模糊系统与格论方向的学生及研究者。内容从格与正交分解的基本定义出发,系统介绍了格矩阵的加法、乘法、传递性与…

阅读更多 →
V$RMAN_STATUS 无法扩展temp问题处理 2026/9/18 15:11:37

V$RMAN_STATUS 无法扩展temp问题处理

exec dbms_stats.DELETE_TABLE_STATS(SYS,X$KCCRSR); exec dbms_stats.LOCK_TABLE_STATS(SYS,X$KCCRSR);

阅读更多 →
LwIP协议栈源码详解:从内存管理到数据包收发全流程 2026/9/18 15:08:36

LwIP协议栈源码详解:从内存管理到数据包收发全流程

简介:这份PDF文档是嵌入式网络开发领域的学习资料,面向需要深入理解轻量级TCP/IP协议栈的开发者,聚焦LwIP协议栈的源码实现与运行原理。文档内容覆盖内存管理与数据包pbuf、网络接口netif、ARP地址解析、IP路由转发、TCP传输控制以及API层调用…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞