资讯详情

Session Android发布流程全解:从签名构建到Play Store与F-Droid上架的完整指南

📅 2026/10/23 11:06:08 | 华诺云谱 👁 阅读
Session Android发布流程全解:从签名构建到Play Store与F-Droid上架的完整指南
【免费下载链接】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),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑