joywayerandClaude Opus 4.7 9f4ccb762e Design §7.5.3/.8:AppDataWriter 加 os.log 调试输出 + 联调可观察性
用户在 Phase 1.17 联调准备时反馈:app_*.js 写入时应该有控制台输出,
方便调试。本 commit 在 §7.5 蓝图层落实可观察性,Phase 2 实施按此骨架
就有完整 debug log。

§7.5.3 AppDataWriter 改动(同时修正若干与 msext 字面不一致的细节):
  - 引入 os.Logger(subsystem: ylgamehall, category: AppDataWriter)
  - writeAppData / writeGamesName / writeBattery / writeNetwork 全部打印
    {ContainerRole} + 文件路径 + 每个 key=value 一行,便于和 H5
    console.log(app_xxx) 逐项对账
  - ContainerRole 实现 CustomStringConvertible("lobby" / "subGame(name)")
  - Logger.debug 级别:Debug 出 Xcode 控制台,Release 自动过滤
  - privacy: .public 标注(确保字符串值不被 Logger 模糊化为 <private>)

**字面修正**(对照 daoqi/msext 实际代码二次校对):
  - 字符串包裹符 " → '(msext 用 "var x='%@';" 单引号)
  - escape 转义对象从 \" 改为 \'(与单引号包裹配套)
  - 数值字段(version / Launchtype / getwifisignalLevel / appversion)
    去掉引号,沿用 msext "var app_version=1;" / "var app_appversion='%d';"
  - app_gamesname 从 JS array literal [...] 改为 new Array(...),
    var 后两空格,严格 AppDelegate.m:259 字面

§7.5.8 新增「联调时的可观察性(Phase 1.17 调试手段)」:
  - 路径 1:Xcode 控制台 — 原生 os.log 输出格式样例
  - 路径 2:沙盒文件直接 cat — xcrun simctl get_app_container 命令 +
    4 个 .js 文件 cat 验证
  - 路径 3:H5 console — Safari Web Inspector 逐项 console.log(app_xxx)
    样例,标注 ⚠️ 大小写硬约束(Launchtype L 大写 / battery 带 get 前缀)
  - 路径 4:真机 Safari 调试启用方法
  - Release 注意事项:os.log .debug 自动过滤避免性能开销和敏感字段外泄

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-22 08:09:57 +08:00
S
Description
No description provided
24 MiB
Languages
Swift 94.5%
Objective-C++ 2.9%
JavaScript 1.8%
C 0.6%
Objective-C 0.2%