# 更新与社群禁言 2.6.0 APP 版本 2.6.0,Android 构建号 260。服务端健康接口版本 2.6.0。请停止原服务、备份整个数据目录,再替换服务器程序并沿用原数据目录启动。数据库自动增加版本发布表和社群禁言到期字段。 ## APP 内更新 2.5.9 及更早版本没有更新检查入口,首次需手动安装本次 2.6.0 签名 APK。此后管理员进入「设置 → 进入管理后台 → APP 版本更新管理」,选择新版本签名 APK、填写更新说明并发布。版本名称、构建号、文件大小和 SHA256 从 APK 自动读取,须使用更高构建号、相同应用包名与原签名密钥。 最低可用版本号填 0 表示用户可以稍后更新;填新版本构建号表示全部旧版本需要更新后继续使用,也可填中间构建号只要求更早版本更新。已安装同版或更高版本时不提示。 APP 在打开时联网检查,前台每 30 分钟检查一次;「设置 → 检查 APP 更新」可随时手动检查。检查结果包含版本、说明和安装包大小。下载显示进度,完成后校验文件大小、SHA256、包名、实际版本及签名证书,再调用 Android 系统安装器。不同签名或不匹配版本会被阻止安装。首次安装可能需要允许此来源安装应用,按系统页面授权后返回点击「继续安装」。用户仍需在系统安装器确认安装。 当前更新针对自行分发的 Android APK,未接入第三方手机推送;APP 完全关闭时不会收到即时版本推送,也不执行后台静默安装。安装时保留已有账户和业务数据库。 管理员可以撤回错误发布,撤回后不再提供该版本下载。「清理旧安装包」仅保留最新有效版,删除其他更新文件并停用其发布记录;正在下载被清理旧包的用户需重新检查。源码交付脚本在新版三个交付文件通过 SHA256 校验后清理旧发布文件。 服务器新增公开 `GET /api/updates/latest?versionCode=260`,返回 `{ "release": null }` 或更新信息;`GET /api/updates/{id}/apk` 支持分段下载。管理端为 `GET/POST /api/admin/updates`、`POST /api/admin/updates/{id}/withdraw`、`POST /api/admin/updates/clean`。上传使用 multipart:`apk` 文件、`metadata` JSON(`minimumVersionCode`、`notes`)。所有管理操作校验服务器数据库中的管理员角色,并记录日志。单包最大 250 MiB;反向代理需为上传接口放行至少 251 MiB,并设置足够的上传和下载超时。 版本记录在 `accounts.db` 的 `AppReleases` 表,APK 在数据目录 `app-releases/`。备份时一并保留。服务端检查 APK 格式、包名和版本,客户端使用已安装应用的证书核对签名;不要向后台上传其他签名的安装包。生产包使用 `com.xfestudio.jidangjia`,`UpdatePackageId` 仅用于隔离测试,不应改为模拟器测试包名部署。 ## 公开发布与单账户禁言 已认证且绑定手机号的用户发布公开图文、供需、服务和评论后直接展示,不再进入人工或第三方公开内容预审。升级时已等待审核且未删除的公开内容自动展示;已拒绝或已删除内容不恢复。实名认证、举报和私信附件审核继续使用原配置。 管理员进入「设置 → 进入管理后台 → 账户」,搜索目标账户,点击「社群禁言设置」,填写原因并选择天数或永久。按天数从服务器保存时起计算,每天 24 小时,范围 1–36500 天;到期由服务端实时判断并恢复,无需另配定时任务。可以随时解除或调整。 禁言仅限制社群写操作:发布、编辑、评论、刷新卡片、发送私信及证照互换。用户仍可浏览、接收消息、提交举报,账目经营数据和卡密授权保持原有权限。管理员账号不能在此入口禁言;停用整个账户仍为独立操作。 管理接口 `POST /api/admin/accounts/{id}/community-ban` 接收 `{ "banned": true, "reason": "原因", "days": 7 }`;永久时省略 `days` 或传 null;解除时传 `{ "banned": false, "reason": "" }`。旧版两参数禁言请求按永久处理。有效禁言状态与到期时间同时返回给 APP 和管理员列表。 ## 锁屏验证、补零与新增分类 新设置的解锁密码为 6 位数字,显示大数字键盘,第六位输入后自动验证;输错清空数字并显示提示,多次错误保留原冷却限制。开启指纹后进入锁屏会自动唤起系统验证,失败、取消或不可用时回到数字密码。旧版已保存的解锁密码继续有效,可在安全设置中改为六位密码。 正常的合同拍照、选图及取消返回属于本次已解锁操作,不重复要求解锁;直接切后台、设备锁定、手动重新进入未完成的选图操作或进程重启仍需验证。合同拍摄前的草稿恢复继续保留。相机或指纹硬件差异仍需在实际使用手机验收。 允许为零的费率及可选数值清空后,在失去焦点时补为 0;本金、金额、期限等要求有效正数的必填项仍保留原校验。手工记账分类网格末尾增加「+ 新增分类」,保存后自动选中;「管理分类 · 修改 / 停用」继续支持改名、排序及停用。新录入的分类和费率入口隐藏钯金,历史业务数据仍可读取和筛选。 ## 验收 单元与 HTTP 检查覆盖直接发布、旧待审迁移、禁言权限与到期、更新发布/撤回/权限/哈希/下载、APK 清理、账目、卡密、私信和水印。Android 隔离测试包在 API 35 模拟器验证六位密码、错误密码、后台及冷启动、拍照/选图返回、自动补零、分类新增与后台禁言。更新原生验收使用同包名的隔离未来版本和独立测试签名,不向正式服务器发布测试更新。 开启六位密码后,另完成「自动提示 → 下载 → 系统来源授权 → 再次解锁 → 系统安装 → 新版解锁」完整安装验证,确认登录及业务数据库保留;不同签名被阻止,非强制更新可稍后关闭,强制更新拦截返回。最终发布包通过 APK 签名检查,Windows 发布服务器通过 32 项更新 HTTP 检查;清理脚本通过 41 项合成文件检查并保留数据库、密钥和无关文件。 交付未部署到公网服务器,需同步升级服务器与 APP 后使用。