Skip to content

拆成不联网版与联网版,发版出两个 APK,版本 0.2.4 - #14

Merged
PathGao merged 8 commits into
mainfrom
online-offline-flavors
Oct 3, 2026
Merged

PathGao merged 8 commits into
mainfrom
online-offline-flavors

Conversation

@PathGao

@PathGao PathGao commented Oct 3, 2026

Copy link
Copy Markdown
Owner

改了什么

从 0.2.4 起每次发版出两个正式签名的 APK,可以装在同一台手机上:

不联网版 offline 联网版 online
applicationId io.github.pathgao.housheng io.github.pathgao.housheng.online
桌面名称 后生 后生 AI
发行文件 housheng-<版本>.apk housheng-online-<版本>.apk
权限 无 只有 INTERNET
  • 加 network flavor 维度。原 debug/ 里的 Clef、真实应用筛选、FeedMask 全是联网功能,整体移到 online/。原 release/ 的 stub 移到 offline/。所有 AI 和真实应用开关默认关,由 OnlineDefaultsTest 守。
  • USB 电脑桥接和只放行 127.0.0.1 的明文配置是开发工具,只留在 onlineDebug。联网正式包固定走手机直连。
  • 两版界面文案各说各的实话,联网版的服务名加“后生 AI”前缀,否则系统设置里会出现两个同名服务。
  • 测试和脚本改为按 applicationId 定位后生,.MainActivity 简写在 online 包下会指错类。dumpsys 里两个服务同时绑定时会分行,原来只读第一行,后装的那版总被判为未连接,已修。
  • 新增 scripts/check-permissions.sh,CI 和发版共用,精确比对两版的权限,并拦住联网正式包带 networkSecurityConfig。release.yml 打两个签名 APK,SHA256SUMS 两行,上传到同一个 Release。版本改为 0.2.4 / 6,附发布说明。

验证

macOS arm64,JDK 17,Android 13 模拟器。

scripts/build-local.sh --no-daemon -Pkotlin.compiler.execution.strategy=in-process :app:testOfflineDebugUnitTest :app:testOnlineDebugUnitTest :app:lintOnlineDebug :app:lintOfflineRelease :fixture:lintDebug :app:assembleDebug :app:assembleRelease :app:assembleDebugAndroidTest
python3 -m unittest discover -s validation/clef -v

单测 offline 30 项、online 43 项,Python 9 项,全部通过。把默认开关改成开,OnlineDefaultsTest 失败。权限检查对调两版、APK 缺失、online debug 包带明文配置时均报错。

模拟器上两版同时安装,桌面出现两个图标,联网版的 5 个应用开关和 Clef 入口默认全关,不联网版没有这些入口。两版都装着时,各跑一次验证场设备测试,各 29 项加恢复 1 项通过。aapt2 核对四个 APK 的包名、名称、权限和 manifest。

没测:本机没有发行密钥,签名和 Release 上传要推标签后看 CI。联网正式包未签名,装不上模拟器,“正式版没有 USB 开关”只核对到代码。--model 和真实应用测试没跑。

offline 沿用原包名,无网络权限;online 包名加 .online,桌面名“后生 AI”,带 Clef、真实应用筛选和模糊遮挡。原 debug/release 源码集按此改为 online/offline,两版界面文案各自说明自己的能力。
online 版包名带 .online,类名不变,原来写死的包名和 .MainActivity 简写会指错。设备测试和 test-device.sh 改用 online debug,验证场恢复测试通过 -e housheng 指定目标包。
两版都跑单测,lint 覆盖 onlineDebug 和 offlineRelease。权限改为精确比对:不联网版无权限,联网版只有 INTERNET。推标签后发布 housheng-<版本>.apk 和 housheng-online-<版本>.apk,SHA256SUMS 两行。
安装、隐私、构建命令和发版流程按两版改写,删掉 Clef 调试预览包一节。路线图里“发版前改检查”一条已完成。
两版同时安装时系统设置里能分清。设备测试按目标包对应的服务名判断绑定,test-device.sh 可用 HOUSHENG_FLAVOR=offline 测不联网版。
直连/USB 切换、本机回环客户端和 127.0.0.1 明文放行移到 onlineDebug,正式版固定手机直连。发版检查同时确认联网版正式包没有 networkSecurityConfig。
@PathGao
PathGao enabled auto-merge (squash) October 3, 2026 14:07
@PathGao
PathGao merged commit dbf7f08 into main Oct 3, 2026
4 checks passed
@PathGao
PathGao deleted the online-offline-flavors branch October 3, 2026 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant