版本、构建和验收
三种结果必须区分
| 层级 | 测试内容 | 可以得出的结论 |
|---|---|---|
| 模块级 | 单元测试、Podspec/AAR 编译、POM、最小工程消费 | 模块自身能够构建、链接或通过既定测试 |
| 真实游戏联调 | 实际 Egret 游戏仓库、Platform/SDKDelegate、设备启动和 JS↔Native | 游戏接入兼容性与生命周期可用 |
| 上线/沙盒闭环 | 真机账号、商店沙盒、Adjust 测试控制台、后端交易校验 | 第三方服务与业务流程联通;才能进行发布验收 |
用户要求的最终统一本地 macOS 测试安排在首批全部模块的实现完成之后。模块开发期间的 CI 属于实现质量门槛,不可宣称已完成正式验收。
当前仓库实测证据
- iOS Adjust:macOS XCTest + CocoaPods + Simulator App 编译,Actions 40266813585。
- Android Adjust:JUnit + AAR + 本地 Maven + 独立消费,Actions 40266693583。
- iOS 多模块不同 subtree split Tag 可共存与独立升级:仅测试模块 Actions 40263146074。
2026-10-26 最新开发状态与未完成门槛
- iOS 五个独立 Pod 已进入
main,五模块源码 Pod 同装、模拟器 Release 链接的 CI 40271297315 为成功记录;仍无正式游戏/真机服务闭环。 - Android 五个独立 AAR 的代码与联合 Maven 消费样例已进入
main(PR #10)。CI 40271217905 的本地 Maven 发布成功但联合 Manifest 因 Play Games v22.1.0 需要minSdk24而失败。版本已调整为 21.0.0,Google 登录依赖也做兼容性调整,调整后尚未成功运行联合编译。 - Android CI 40274384474 的运行任务未产生实际步骤或构建日志,不可认定版本修复有效。请查看 GitHub Actions 的工作流执行条件、账户额度和运行器状态;具体平台原因未确证。优先通过 Mac 的
gradle :all-modules-consumer:assembleDebug验证。 - 四个仓库的
main合并、GitHub Actions 可用、本地编译和真实游戏可用是不同结论。 本轮只以用户 Mac 编译为接下来的验收入口;没有发布任何业务模块的正式生产版本、没有使用真实服务端私钥或交易环境。
待办
需要在真实游戏项目中验证旧 Android 构建系统兼容性、iOS EgretBase 公共头及链接、真实 SDK 授权/支付/成就/事件回调、设备重启和后台生命周期。每个平台需记录版本、SHA、日志摘要、失败原因、回滚方式,绝不写未运行的“测试通过”。
用户 macOS 实测与 Google 兼容修复候选(2026-10-26)
- iOS 五模块 Podspec/源码、五 Pod 联合安装、Release Simulator 本机通过,证据在用户 Mac
roios-sdk/artifacts/local-macos/20261026T062041Z,不代表真实游戏联调。 - Android 四个独立模块 D8/APK 通过;Google 单独失败、五模块联合失败。Google 子集日志证实
credentials-play-services-auth:1.3.0的kotlin-stdlib:1.9.0与googleid:1.1.1两处独立编译失败,不能再称为未知原因。 - Android PR #17 在保持 Java API、Credential Manager 的前提下,选择
credentials:1.2.2/credentials-play-services-auth:1.2.2/googleid:1.1.0,这是 Kotlin 1.8 依赖候选。改版后尚未运行 Mac D8/App 验证,不能宣称修复已通过。 - 本机局部验证入口:
mise exec java@zulu-17 gradle@7.6.4 -- bash scripts/verify-google-compat-macos.sh;产生 Google 独立 APK 和五模块联合 APK 才算开发基线合格,正式旧 Egret 项目、OAuth 登录、Firebase 及服务器等仍待真实游戏环境。 - 认证未来方向:保留全部原生 Google/Apple 模块,当前 D8 修复通过后开发独立可选 Firebase Auth Android/iOS 模块,对齐 Web 现有 Firebase UID/ID Token → 游戏
auth.Auth,不强制每款游戏安装,Issues:Android #16、iOS #18。
Firebase Authentication 原生模块与游戏宿主的边界(2026-10-26)
Android/iOS Firebase Auth 是独立可选的通用原生模块,不移植 roweb-sdk 的游戏认证与账号转换。
Firebase 模块仅处理 Firebase App/Auth 客户端配置、登录/凭证交换、Firebase UID/User、Firebase ID Token 获取及刷新、会话恢复、匿名 Firebase 用户、Firebase 身份提供方链接、状态回调和登出等原生能力;具体 API 及依赖版本以各端验证为准。
Firebase 模块绝不调用游戏 auth.Auth,不包含服务端 Firebase ID Token 验签、游戏 account/token 兑换、游戏账号合并/迁移、角色数据、游戏登录 UI、Egret SDKManager/SDKDelegate 或项目渠道策略。Firebase.linkWithCredential 是 Firebase 身份提供方链接,不是游戏账号合并。
游戏宿主 Platform : SDKDelegate 仅按项目实际引用的 SDK 组合 Google/Apple/Firebase,必要时调用现有游戏后端 auth.Auth 并转换为固定 Egret 回调;服务端负责令牌验签与业务账号规则。原生 Google/Apple 模块仍可脱离 Firebase 独立使用。rontian/roweb-sdk 仅用于了解 Firebase 用户身份语义,不把它的 GameAuthProvider 直接搬入原生模块。
实施顺序:先完成 Android Google 登录旧 D8 与新兼容依赖组合的 macOS 实测,再实现 Android Firebase 通用 API #16 和 iOS Firebase 通用 API #18,随后由真实 Egret 游戏环境验证业务对接。未运行的测试不得标记为通过。