小米应用商店
小米应用商店是小米生态的官方应用分发渠道。Flu CLI 通过小米开放平台 API 上传 APK,支持新增应用和更新已有应用两种模式。
✨ 平台特点
- RSA 签名认证:使用邮箱 + API 密码 + 公钥文件进行身份验证
- 智能模式:自动判断应用是否已存在,选择新增或更新操作
- 新增应用:首次上传时可同时提交应用信息(分类、介绍、截图等)
🔑 获取凭证
- 登录 小米开放平台
- 进入 管理控制台 → 发布管理 → 自动发布设置
- 获取以下信息:
- 邮箱:你的开发者账号邮箱
- API 密码:在自动发布设置中生成(注意:不是账户登录密码)
- 公钥文件:下载小米分配的 RSA 公钥文件(
.cer格式)
⚠️ API 密码和登录密码是两码事。API 密码在「自动发布设置」中单独生成。
📝 配置示例
更新已有应用
yaml
publish:
xiaomi:
enable: true
auth:
userName: '${XIAOMI_EMAIL}'
privateKey: '${XIAOMI_API_PASSWORD}'
publicKeyPath: './xiaomi-public-key.cer'
uploadType: 'update'新增应用(首次发布)
yaml
publish:
xiaomi:
enable: true
auth:
userName: '${XIAOMI_EMAIL}'
privateKey: '${XIAOMI_API_PASSWORD}'
publicKeyPath: './xiaomi-public-key.cer'
appName: 'My Application'
packageName: 'com.example.app'
uploadType: 'new'
category: 1
keyWords: '工具 效率 日常'
desc: '这是一款提升工作效率的应用...'
brief: '一款高效的工具应用'
privacyUrl: 'https://example.com/privacy'
assets:
icon: './store-assets/icon.png'
screenshots:
- './store-assets/screenshot1.png'
- './store-assets/screenshot2.png'
- './store-assets/screenshot3.png'配置字段
基础字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
enable | boolean | 是 | 是否启用小米上传 |
auth.userName | string | 是 | 开发者账号邮箱 |
auth.privateKey | string | 是 | API 访问密码(非登录密码) |
auth.publicKeyPath | string | 否 | RSA 公钥文件路径 |
packageName | string | 否 | 应用包名(不填则从 APK 推断) |
uploadType | 'auto' | 'new' | 'update' | 否 | 上传类型,默认 'auto' |
新增应用字段(uploadType 为 'new' 时必填)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
appName | string | 是 | 应用名称 |
category | number | 是 | 应用分类 ID |
keyWords | string | 是 | 搜索关键字(空格分隔) |
desc | string | 是 | 应用介绍 |
brief | string | 是 | 一句话简介 |
privacyUrl | string | 是 | 隐私政策链接 |
assets.icon | string | 是 | 应用图标路径 |
assets.screenshots | string[] | 是 | 手机截图路径列表(至少 3 张) |
uploadType 说明
| 值 | 行为 |
|---|---|
'auto'(默认) | 自动查询应用是否已存在于小米商店,存在则更新,不存在则新增 |
'new' | 强制按新增应用处理,需提供完整的应用信息 |
'update' | 强制按更新处理,只上传 APK |
📦 支持的文件类型
| 文件类型 | 说明 |
|---|---|
.apk | Android 安装包 |
❓ 常见问题
Q: 提示 "签名验证失败" 怎么办? A: 请检查公钥文件路径是否正确,API 密码是否为「自动发布设置」中生成的密码(非账户密码)。
Q: 分类 ID 怎么获取? A: 可通过小米开放平台的分类查询接口 /dev/category 获取,常用分类:工具(1)、社交(2)、购物(3) 等。
Q: auto 模式下如何判断应用是否存在? A: 系统会根据 APK 中的包名在小米商店中查询,如果找到匹配的应用则走更新流程,否则走新增流程。
Q: 小米认证加密的限制? A: 小米 API 使用 1024-bit RSA 加密,单次加密上限为 117 字节。若您的元数据(如简介)过长,app-ship 会自动进行分段加密处理,无需手动截断。