首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
Session Android发布流程全解:从签名构建到Play Store与F-Droid上架的完整指南
📅 2026/10/23 11:06:30
✍️ 爱科研究院
👁 阅读 3,247
【免费下载链接】session-androidSession Android - A Decentralized, Onion Routed, Private Messenger项目地址https://gitcode.com/gh_mirrors/ses/session-android点击查看免费下载Session Android 是一款去中心化、洋葱路由的私密即时通讯应用其发布流程围绕四条 Git 分支策略、OS keyring 密钥管理和四个自动化脚本展开最终将构建产物分别上架 Google Play Store、F-Droid 自托管仓库与 GitHub Release。本文带你完整走一遍这套发布流水线。发布流程一图速览一个完整的版本发布由 4 个脚本按顺序驱动配合手动的人工审核步骤顺序脚本作用1prepare-release.py创建release/版本号分支、提升版本号、推送并创建 GitHub草稿Release2update-release-notes.py根据分支已合并 PR 的标题自动生成 Changelog覆盖写入草稿3build-and-release.py构建并签名 play / fdroid / huawei 三种 flavor自动提交 F-Droid PR、上传产物到 GitHub 草稿4play-store.py通过 Play Developer API 上传 AAB 到 Google Play 轨道⚠️ 关键顺序步骤 1草稿与签名凭据必须存在build-and-release.py才能正常运行update-release-notes.py必须在 PGP 签名追加之前执行因为它会覆盖整个 Release 正文。分支策略master / dev / releaseSession Android 采用经典的三分支模型分支用途master生产分支永远代表线上正在运行的版本dev日常开发集成分支release/MINOR.MAJOR.PATCH短期发布分支构建发布产物完整版本发布将dev整体合入 release 分支补丁版本发布只 cherry-pick 需要的提交版本号定义在 app/build.gradle.kts 的canonicalVersionCode与canonicalVersionName字段prepare-release.py会自动 1 并提交。密钥管理凭据一次存入 OS keyring所有签名凭据不落盘而是通过 _keyring.py 存入操作系统密钥环macOS Keychain / Linux Secret Service。凭据是一份 TOML 文档包含三套密钥[build.play] # Play 签名JKS 格式base64 编码 [build.huawei] # 华为 AppGallery 签名 [fdroid] # F-Droid 签名PKCS12 格式一次性存储命令随后删除明文文件python3 scripts/_keyring.py set release-creds release-creds.toml python3 scripts/_keyring.py set play-service-account service-account.jsonbuild-and-release.py还会通过ORG_GRADLE_PROJECT_*环境变量把密钥传给 Gradle而非命令行参数避免凭据出现在ps可读的进程参数中。构建产物三种 FlavorFlavor产物用途playAAB split APKGoogle Play Storefdroidsplit APKF-Droid 自托管仓库huaweiuniversal APK华为 AppGallery含 HMS 推送只想本地构建不发布用--build-only即可./scripts/build-and-release.py --build-onlyF-Droid 上架自托管仓库的原理F-Droid 不同于 Play Store 的上传审核模式它采用仓库模型一个 APK 目录 签名的索引文件index-v1.jar/index-v2.json客户端靠它发现可用版本。详细架构见 FDROID_RELEASE.md。Session 选择自托管仓库session-foundation/session-fdroid因为自己保管签名密钥控制发布时机保留最近 4 个版本的 APK供无法立即升级的用户使用通过 PR 流程让每次更新都经过人工审核fdroid update命令只负责索引预构建 APK 并签名索引文件不构建、不签 APK。敏感文件config.yml与生成的 metadata 在发布时由.tpl模板渲染、用完即删永远不会提交进仓库。自动 PR 流程克隆 fdroid 仓库 → 创建release/version分支 → 拷入新 APK 并清理旧版本 →fdroid update重新生成索引 → 提交 PR 等待人工合并。Play Store 上架轨道与分阶段发布play-store.py通过服务账号 Play Developer API 管理四个轨道internal/alpha/beta/production。常用命令scripts/play-store.py status # 查看各轨道当前版本与发布比例 scripts/play-store.py upload # 上传 AAB 到 internal 轨道草稿不提交 scripts/play-store.py upload --track production --submit # 全量发布 scripts/play-store.py upload --track production --rollout 0.1 # 10% 灰度 scripts/play-store.py rollout --track production 0.5 # 灰度升至 50%两个实用技巧无 API 自动爬坡Play 不支持灰度自动递增可以用 cron 定时执行rollout命令手动爬坡Managed publishing 建议保持开启提交后的版本会审核但停留在控制台等待你手动点 Publish这是最后一道人工闸门开发期快速验证--play-only只构建 Play AAB配合play-store.py share走 Internal App Sharing 免审装到模拟器versionCode不消耗适合频繁迭代。常见问题速查现象原因与解决构建后 GitHub Release 没有产物草稿 Release 不存在时上传被静默跳过先跑prepare-release.py脚本报缺凭据keyring 中没有release-creds用_keyring.py set存入一次华为构建缺 HMS 依赖Gradle 命令需加-Phuawei参数Changelog 覆盖了签名块update-release-notes.py必须在 PGP 签名之前运行更多细节见仓库根目录的 RELEASE.md 与 scripts/README.md。写在最后Session Android 的发布流水线体现了一个成熟的开源项目的工程纪律密钥零落盘、构建全自动、上架有人工闸门。四个脚本各司其职把从提交到用户可下载压缩成了一条可重复执行的命令序列同时 F-Droid PR 与 Play 的 managed publishing 保留了人类审核的关键节点——这正是它作为去中心化隐私通讯应用该有的发布姿态。赞分享【免费下载链接】session-androidSession Android - A Decentralized, Onion Routed, Private Messenger项目地址https://gitcode.com/gh_mirrors/ses/session-android点击查看免费下载相关推荐Moonlight-Android 部署指南从Google Play到F-Droid的完整流程Moonlight Android 部署指南从Google Play到F Droid的完整流程 Moonlight Android 是一个开源的 NVIDIA音视频视频grc开发指南如何为你的应用程序编写专属着色配置文件grc开发指南如何为你的应用程序编写专属着色配置文件 grcgeneric colouriser是一款强大的命令行输出着色工具能够为各种命令的输出添加色开发工具Retro Music Player完整发布指南从构建到Play Store上架的终极教程Retro Music Player完整发布指南从构建到Play Store上架的终极教程 Retro Music Player是一款基于Material Y移动开发音视频创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/23 11:06:30
缠论程序化实战:Python实现K线包含、分型、笔与中枢判定
2026/10/23 11:06:30
一键关闭 Windows Defender 与防火墙:no-defender 完整实操指南
2026/10/23 11:01:28
大神接单订单防重复下单方案分享
2026/10/23 12:02:01
ZooKeeper监控Dubbo Provider下线:邮件预警系统设计与实现
2026/10/23 12:02:01
PolarDB MySQL MCP 实战:一句话搭建知识问答系统,云原生数据库+向量计算提效300%
2026/10/23 12:02:01
LSTM输入输出维度图解:从input_size到hidden_size一次说清
2026/10/23 12:02:01
Colima:Mac上轻量级Docker容器运行时实战指南
2026/10/23 12:02:01
屏幕翻译工具Translumo实战:OCR与翻译引擎调优指南
2026/10/23 11:56:54
基于MCP协议为智能体添加用户建议提交工具:从设计到落地
2026/10/23 0:02:44
Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战
2026/10/23 0:02:44
数据服务监控运维实战:从指标体系到告警治理与故障排查
2026/10/23 0:02:44
FreeRTOS任务通知实战详解:内核原理、API与避坑指南
2026/10/23 0:52:23
OpenResearch实战:Claude Code、Codex、OpenCode、Cursor 工作流搭建与故障排查
2026/10/22 17:15:21
知识管理核弹:用Obsidian构建第二大脑的工程化方案(TaoToken 统一 Key 接入版)
2026/10/23 0:52:11
金融AI落地指南:从调研报告到技术选型与工程实践
2026/10/23 10:58:39
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/23 10:58:39
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/23 10:58:39
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)