Commit Graph
5 Commits
Author SHA1 Message Date
joywayerandClaude Opus 4.7 4e5600a9ee Phase 3.C:Xcode 加入七牛 SPM 依赖 objc-sdk 8.9.2
按 SDK-Integration-Guide.md §A.3 操作,加入 https://github.com/qiniu/objc-sdk
(传递依赖 happy-dns-objc 1.0.4 自动解析)。canImport(QiniuSDK) 现在
返回 true,QiniuUploader.upload(...) 真实路径激活。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-23 00:02:31 +08:00
joywayer b866ee212c Phase 1.4:引入 ZIPFoundation SPM 依赖(v0.9.20)
ResourceUnzipper(Phase 1.5)的前置:用 ZIPFoundation 替代旧 ZipArchive
解压 gamehall.zip。ADR-006 纯 SPM + Vendor 策略下的首个 SPM 依赖。

- 引入:https://github.com/weichsel/ZIPFoundation
  - 版本 0.9.20(Up to Next Major,commit 22787ffb59de)
  - License: MIT;纯 Swift 实现,Xcode 26 原生兼容
  - 链接到 target ylgamehall
- pbxproj:XCRemoteSwiftPackageReference + XCSwiftPackageProductDependency
  写入;Package.resolved 锁定版本,多机 / CI 复现
- BuildProject 通过;ZIPFoundation 全部 .swift 由 SwiftCompile 实际
  参与构建,与 ylgamehall target 链接完成
- 附带:ChannelConfig.plist 移除内联说明注释(Phase 1.1 commit 后由
  维护者整理),不影响 plist 数据结构
2026-06-21 23:56:32 +08:00
joywayer 8c2ffa3106 Phase 1.1:渠道注入用 ChannelConfig.plist 替代 msext 目录树(ADR-007)
契约 §0.3 描述 msext 把 11 个渠道值编码为 Bundle 根的 11 个空目录
子文件夹名(目录名本身就是值)。在 Xcode 26.5 默认的 synchronized
group 下,此机制不兼容(子目录被扁平化、11 个 .gitkeep 撞名;
folder reference 拖入流程失效;Run Script Phase 受 sandbox 阻碍且
默认 Based on dependency analysis 让 clean build 也不跑)。

CLAUDE.md 原则 B 落地——原生内部自由重构,不照搬 msext。改用单一
plist 存储等价语义,H5 端通过 app_data.js 看到的 11 个 JS 全局变量
行为完全不变(契约边界在 BundleConfig.shared.xxx,与底层无关)。
多渠道分发用 plutil -replace + 重签 + 重打包,工作量与 mv 目录名
重签完全相同。

- 新增 ylgamehall/Resources/ChannelConfig.plist:11 个 string key
  含母包默认值(沿用 msext 现网值);synchronized group 自动入 Bundle
- Design §7.0 / §7.2 重写为 plist 方案;BundleConfig 代码骨架改为
  PropertyListSerialization + init(bundle:) 可注入式
- Plan §5 Phase 1.1 任务清单从 4 个子项简化为 1 项;ADR-004 文字
  同步;新增 ADR-007 完整记录决策背景 / 触发事件 / 工程兼容性分析
  / 理由 / 守护条款
- pbxproj:ENABLE_USER_SCRIPT_SANDBOXING 残留为 NO(前期 Run Script
  方案探索时关闭,plist 方案下不再需要,但未恢复以避免再次 UI 操作;
  无 Run Script 故无实际安全暴露面,未来可随时改回 YES)
- BuildProject 验证:plist 已落在 .app 根,plutil -p 输出 11 个键值
  完整
2026-06-21 23:41:25 +08:00
joywayer 7a84223841 M0:项目基础配置就绪(横屏锁定、Swift 6、代码启动)
- 锁定 iPhone/iPad 仅横屏(LandscapeLeft/Right),契合 H5 端
  1280×720 设计分辨率;UIRequiresFullScreen=true 防 iPad
  多任务下方向不锁
- Swift Language Version 升到 6.0(配合已启用的
  Approachable Concurrency + MainActor 默认隔离)
- 删除默认 Main.storyboard / ViewController.swift 模板,
  改用 SceneDelegate 代码创建 RootViewController 启动,
  Build Settings 同步清空 INFOPLIST_KEY_UIMainStoryboardFile
- Info.plist 补齐契约项 UIStatusBarHidden=NO、
  UIViewControllerBasedStatusBarAppearance=YES,配合
  AppDelegate 启动时设置 applicationSupportsShakeToEdit=true
  覆盖契约 §4.2.1 摇一摇前置
- BuildProject 通过验证
2026-06-21 20:03:33 +08:00
joywayer 108b359f96 Initial Commit 2026-06-21 19:37:33 +08:00