用途:该技能面向 Agent Phone 的 Android 构建流程,用于生成 APK、在开发前确认 Android 构建前置条件,以及为设备 TLS 测试或正式发布准备构建产物。
环境要求:需在仓库根目录运行,并使用仓库固定的 Node/pnpm 版本;需要 JDK 17 及以上、SDK platform 37 和 build tools 36.0.0。若 Android SDK 不在 ~/Library/Android/sdk,应设置 ANDROID_HOME。
主要能力与构建方式:默认构建命令为 pnpm build:agent-phone,并可通过 apps/agent-phone/gradlew -p apps/agent-phone :app:lint :app:testDebugUnitTest :app:assembleDebug :fixture:assembleDebug 执行 lint、单元测试与 APK 构建。调试构建会把 APK 与 manifest 成对写入 apps/web/public/agent-phone/ 和 apps/desktop/generated-resources/agent-phone/;使用 --output /absolute/directory 可只写入指定绝对目录。Gradle 原始产物仍保留在各模块的 build/outputs/apk/ 下。普通 pnpm 构建不会调用 Gradle。
TLS 设备测试:执行 pnpm build:agent-phone --e2e-ca /absolute/path/to/test-ca.pem,可生成仅写入 apps/agent-phone/build/e2e/ 的测试 APK、manifest 与 fixture。测试 CA 与正式发布不可混用。
正式发布:按 Releases 流程执行 pnpm build:agent-phone --release --output /absolute/directory,并通过 OPENSTEER_AGENT_PHONE_KEYSTORE、OPENSTEER_AGENT_PHONE_KEYSTORE_PASSWORD、OPENSTEER_AGENT_PHONE_KEY_ALIAS 和 OPENSTEER_AGENT_PHONE_KEY_PASSWORD 提供永久密钥。不可用调试签名替代;更换签名者需要执行破坏性卸载。
清理:结束相关 Gradle 守护进程可执行 apps/agent-phone/gradlew -p apps/agent-phone --stop。自行启动的服务器或捕获进程按记录的 PID 用 kill <pid> 停止;自行启动的模拟器用 adb -s <serial> emu kill 关闭;自行启动的 ADB server 用 adb kill-server 停止。不要停止他人拥有的进程,失败后也要完成清理。