Skip to content

首批 SDK 完成后统一在本地 macOS 编译验证 ​

目前的执行状态

本页面提供准备好的命令,并没有权限远程操作你的 Mac,也没有在真实游戏工程中执行过。这两项必须分别记录实际测试结果,不允许把 GitHub Actions 的 Linux/macOS Runner 等同用户本机。

何时执行 ​

两个主动开发仓库的首批 SDK 全部编译和评审并合并 main 后,按以下顺序做本地 macOS 统一编译,最后把版本提交到真实游戏项目的受控测试分支进行最终联调。

准备开发环境 ​

  • Git(两个私有仓库的读取权限通过 macOS Keychain / SSH 配置,不要写凭据到脚本)。
  • Xcode 16.4、CocoaPods 1.16.2、XcodeGen 2.46.x,为目前 iOS Actions 对照基线。
  • Android Studio SDK Platform 34、Build Tools 34.0.0,ANDROID_HOME 指向本机 SDK。
  • JDK 17、Gradle 7.6.4,仅供独立开发仓库构建 AAR,不是要求修改旧 Egret 固定游戏工程的 AGP/Gradle 版本。
  • 需连接可访问 Google Maven、Maven Central、CocoaPods CDN 的网络。

一次拉取两个仓库并执行全部模块级测试 ​

bash
mkdir -p "$HOME/Developer/ROSDK"
git clone https://github.com/rontian/rosdk-docs.git "$HOME/Developer/ROSDK/rosdk-docs"

bash "$HOME/Developer/ROSDK/rosdk-docs/scripts/mac-sync-verify-all.sh" \
     "$HOME/Developer/ROSDK"

脚本只会创建或以 --ff-only 更新两个 SDK 开发仓库 的 main,遇到本地改动立即停止,不执行 reset --hard。它不会拉取、编辑、构建任何固定底座或正式游戏仓库。

脚本之后分别调用:

bash
cd "$HOME/Developer/ROSDK/roios-sdk"
bash scripts/verify-local-macos.sh

cd "$HOME/Developer/ROSDK/roandroid-sdk"
bash scripts/verify-local-macos.sh

iOS:逐个 Pod lint 和 XCTest,随后将五个独立 Pod 从本地路径同时安装并编译统一的 Release Simulator 工程。

Android:逐个 AAR 编译与单测,逐模块发布到本地 Maven,最后一个纯 Maven 坐标消费者把五个 AAR 同时链接到 Debug App。

日志、提交与失败回滚 ​

执行记录保存在 SDK 工作区各自的 artifacts/local-macos/<UTC时间>/,内含 SHA、工具版本、真实编译日志、Podfile.lock/POM 和结果。这些记录默认被 .gitignore 排除,人工检查脱敏后才能放入 Issue/交接。若失败,以日志为准并在 SDK 开发仓库修复和复测;不能强推覆盖旧稳定 Tag。

联合构建必须满足的具体验收点 ​

  • iOS:五个源码 Pod 可同时 pod install,pod install --deployment 不修改锁文件,Release Simulator 应用链接成功;逐个 Podspec lint 不得报错。
  • Android:五个 AAR 分别发布到 ~/.m2/repository/com/ronpad/sdk/,实际 POM 声明官方第三方依赖,五模块消费者从 Maven 坐标编译出非空 APK,不得仅因空目录或跳过 Manifest 检查而报成功。
  • Android 当前 Google 候选依赖:Credential Manager 1.2.2、Google ID 1.1.0,Play Games v2 21.0.0。用户本机已证实上一个 Google 组合 1.3.0/1.1.1 的 Kotlin D8 失败;新版本尚未取得 Google 单模块 APK 或五模块联合 APK 通过记录。
  • 首先核对两个 SDK 仓库都是 main 且工作区干净;如果脚本失败,保留 artifacts/local-macos/<时间>/ 的失败日志,修复开发仓库代码后重新执行。不要通过 tools:overrideLibrary、升级 Egret 固定底座、禁用依赖检查来掩盖冲突。
  • 对外分享日志前检查并移除任何机器路径、环境变量、证书、签名信息或业务访问凭据。可只提供出错附近的脱敏行、工具版本、仓库 Commit SHA。

2026-10-26 补充:Android GitHub Actions 最新若干任务启动后即失败,任务步骤为空,无编译日志;实际原因尚未由 GitHub 确认。本地 Mac 验收因此不能跳过。即使本地编译成功,也仍需真实游戏宿主在未来完成签名、三方授权、支付后端与设备验收。

进入真实游戏项目验收 ​

本机五模块编译通过仍然不是正式游戏验收。请阅读 真实 Egret 工程验收清单;只有实际游戏 Xcode/Gradle 工程、设备、SDKDelegate 事件、真实账号和业务服务端闭环测试通过,才具备生产发布评审依据。

2026-10-26 用户真实本地验证增量 ​

  • iOS 五模块:用户 Mac(Xcode 26.2/CocoaPods 1.16.2/XcodeGen 2.46.0)五个 Pod 独立检查、联合安装与 Release Simulator 链接通过;证据 roios-sdk/artifacts/local-macos/20261026T062041Z。没有真实游戏/设备/业务服务联调。
  • Android 四个独立模块:Adjust、Apple OAuth、Play Billing、Play Games 的 Maven 消费 APK/D8 通过。只有 Google 登录失败;五模块联合编译随之失败。
  • Google D8 专项证据:用户 google-dex-20261026T071204Z,已定位 kotlin-stdlib:1.9.0 与 googleid:1.1.1 为各自失败工件,旧 R8 4.0.52 无法处理。开发 main PR #17 改用官方 Kotlin 1.8 依赖候选,未验证。
  • 下一条专用命令:在 roandroid-sdk 工作区(干净 main)执行 mise exec java@zulu-17 gradle@7.6.4 -- bash scripts/verify-google-compat-macos.sh。脚本只测 Android Google JUnit/AAR/Maven、独立消费 APK 与五模块联合 APK,不重新构建已通过的 iOS。
  • 后续功能:确认当前依赖组合可用后,独立开发 Android/iOS Firebase Auth 可选模块,并按需由宿主配合现有原生 Google/Apple 身份获取和游戏 auth.Auth;未开始实现、不用 Firebase 替换原生登录。

每个能力独立发布与接入;正式项目验收必须使用真实游戏环境。