17 KiB
17 KiB
Android 应用商店上架指南
应用名称: 移动 EDA - 原理图设计工具
Package Name: com.jiloukeji.mobileeda
版本: 1.0.0 (1)
文档版本: 1.0
更新日期: 2026-03-07
📋 目录
前置准备
1.1 开发者账号注册
| 商店 | 网址 | 费用 | 审核时间 |
|---|---|---|---|
| 华为应用市场 | developer.huawei.com | 免费 | 1-3 工作日 |
| 小米应用商店 | dev.mi.com | 免费 | 1-2 工作日 |
| OPPO 软件商店 | open.oppomobile.com | 免费 | 1-3 工作日 |
| VIVO 应用商店 | dev.vivo.com.cn | 免费 | 2-4 工作日 |
| 腾讯应用宝 | open.qq.com | 免费 | 1-3 工作日 |
1.2 实名认证
所有商店均需要完成开发者实名认证:
所需材料:
• 个人开发者:身份证正反面
• 企业开发者:营业执照、法人身份证
• 联系方式:手机号、邮箱
• 对公账户(企业)
认证时间:1-3 工作日
1.3 开发环境检查
# 检查 Flutter 环境
flutter doctor -v
# 要求:
# ✓ Android toolchain
# ✓ Android SDK >= 34
# ✓ Java Development Kit >= 17
1.4 项目配置
// android/app/build.gradle
android {
compileSdkVersion 34
defaultConfig {
applicationId "com.jiloukeji.mobileeda"
minSdkVersion 21
targetSdkVersion 34
versionCode 1
versionName "1.0.0"
}
signingConfigs {
release {
storeFile file("../mobile-eda-release-key.jks")
storePassword System.getenv("KEYSTORE_PASSWORD") ?: ""
keyAlias "mobile-eda"
keyPassword System.getenv("KEY_PASSWORD") ?: ""
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
签名配置
2.1 生成 Keystore
使用 keytool 生成
# 生成新的 Keystore
keytool -genkey -v \
-keystore mobile-eda-release-key.jks \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-alias mobile-eda \
-storetype PKCS12
# 按提示输入:
# - 密钥库密码 (6 位以上)
# - 姓名、单位、城市等信息
# - 密钥密码 (可与密钥库密码相同)
Keystore 信息记录模板
====================================
移动 EDA 签名密钥信息
====================================
密钥库文件:mobile-eda-release-key.jks
密钥库类型:PKCS12
密钥别名:mobile-eda
密钥算法:RSA
密钥长度:2048 位
有效期:10000 天 (约 27 年)
生成日期:2026-03-07
过期日期:2053-XX-XX
密钥库密码:[安全保管]
密钥密码:[安全保管]
保管位置:[保险柜/密码管理器]
备份位置:[异地备份]
====================================
⚠️ 重要提示:
1. 此密钥用于所有版本签名,丢失将无法更新应用
2. 务必多处备份,建议加密存储
3. 不要提交到版本控制系统
4. 仅限授权人员访问
====================================
使用 Android Studio 生成
1. Build → Generate Signed Bundle / APK
2. 选择 APK 或 Android App Bundle
3. 点击 Next
4. 点击 "Create new..."
5. 填写密钥库信息
6. 选择密钥算法和长度
7. 填写证书信息
8. 选择保存位置
9. 完成创建
2.2 配置签名
方法 1: gradle.properties (不推荐用于生产)
# android/gradle.properties
RELEASE_STORE_FILE=../mobile-eda-release-key.jks
RELEASE_STORE_PASSWORD=your_password
RELEASE_KEY_ALIAS=mobile-eda
RELEASE_KEY_PASSWORD=your_password
方法 2: 环境变量 (推荐)
# ~/.bashrc 或 ~/.zshrc
export KEYSTORE_PASSWORD="your_keystore_password"
export KEY_PASSWORD="your_key_password"
# 或在 CI/CD 中配置环境变量
方法 3: CI/CD 密钥管理
# GitHub Actions 示例
# .github/workflows/release.yml
jobs:
build:
steps:
- name: Decode Keystore
run: |
echo "${{ secrets.KEYSTORE }}" | base64 --decode > android/mobile-eda-release-key.jks
- name: Build Release
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
run: flutter build appbundle --release
2.3 验证签名
# 验证 APK 签名
apksigner verify --verbose app-release.apk
# 查看签名信息
apksigner verify --print-certs app-release.apk
# 验证 AAB 签名
java -jar bundletool.jar validate-bundle --bundle app-release.aab
构建发布包
3.1 构建 APK
# 构建通用 APK (体积较大)
flutter build apk --release
# 输出位置:
# build/app/outputs/flutter-apk/app-release.apk
# 按 ABI 分包 (推荐,减小体积)
flutter build apk --split-per-abi
# 输出位置:
# build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk (32 位)
# build/app/outputs/flutter-apk/app-arm64-v8a-release.apk (64 位)
# build/app/outputs/flutter-apk/app-x86_64-release.apk (模拟器)
3.2 构建 App Bundle (推荐)
# 构建 AAB (Google Play 格式,也适用于国内商店)
flutter build appbundle --release
# 输出位置:
# build/app/outputs/bundle/release/app-release.aab
# 验证 AAB
bundletool build-apks --bundle=app-release.aab --output=app.apks
3.3 构建优化
启用代码混淆
# android/app/proguard-rules.pro
# Flutter
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
# Riverpod
-keep class org.kodein.di.** { *; }
-keep class org.kodein.** { *; }
# Isar
-keep class ** extends isar.IsarObject { *; }
-keep class isar.** { *; }
# 保留模型类
-keep class com.jiloukeji.mobileeda.data.model.** { *; }
启用资源压缩
android {
buildTypes {
release {
minifyEnabled true // 代码混淆
shrinkResources true // 资源压缩
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
3.4 版本管理
# pubspec.yaml
version: 1.0.0+1 # versionName+versionCode
# 版本规范:
# 主版本.次版本.修订版 + 构建号
# 1.0.0+1 → 首次发布
# 1.0.1+2 → Bug 修复
# 1.1.0+10 → 新功能
# 自动化版本更新脚本
#!/bin/bash
# scripts/bump_version.sh
CURRENT_VERSION=$(grep "^version:" pubspec.yaml | cut -d' ' -f2 | cut -d'+' -f1)
CURRENT_BUILD=$(grep "^version:" pubspec.yaml | cut -d' ' -f2 | cut -d'+' -f2)
NEW_BUILD=$((CURRENT_BUILD + 1))
NEW_VERSION="${CURRENT_VERSION}+${NEW_BUILD}"
sed -i "s/^version:.*/version: ${NEW_VERSION}/" pubspec.yaml
echo "Version updated to ${NEW_VERSION}"
各商店提交指南
4.1 华为应用市场
提交入口
https://developer.huawei.com/consumer/cn/appgallery
基本信息
| 字段 | 要求 | 示例 |
|---|---|---|
| 应用名称 | 30 字符内 | 移动 EDA |
| 包名 | 唯一 | com.jiloukeji.mobileeda |
| 版本号 | - | 1.0.0 |
| 分类 | 办公商务 | 办公软件 |
素材要求
图标:
• 尺寸:512x512 像素
• 格式:PNG
• 大小:< 200KB
• 要求:无圆角、无文字
截图:
• 数量:至少 2 张
• 尺寸:1920x1080 或 1280x720
• 格式:PNG/JPG
功能图:
• 数量:3-5 张
• 尺寸:1024x500 像素
• 格式:PNG
特殊要求
必须提供:
✓ 软件著作权证书 (重要)
✓ ICP 备案信息
✓ 隐私政策独立页面
✓ 开发者实名认证
审核时间:1-3 工作日
提交流程
1. 登录华为开发者联盟
2. 应用和服务 → 我的应用 → 创建应用
3. 填写基本信息
4. 上传应用包 (APK 或 AAB)
5. 上传素材 (图标、截图、功能图)
6. 填写应用描述
7. 上传资质文件 (软著、ICP 等)
8. 提交审核
4.2 小米应用商店
提交入口
https://dev.mi.com/distribute/
基本信息
| 字段 | 要求 | 示例 |
|---|---|---|
| 应用名称 | 30 字符内 | 移动 EDA |
| 包名 | 唯一 | com.jiloukeji.mobileeda |
| 分类 | 办公 | 办公工具 |
素材要求
图标:
• 尺寸:512x512 像素
• 格式:PNG
• 大小:< 100KB
截图:
• 数量:至少 3 张,推荐 5 张
• 尺寸:建议 1920x1080
• 格式:PNG/JPG
应用描述:
• 字数:500 字以内
• 内容:功能介绍、特色亮点
特殊要求
必须提供:
✓ 开发者实名认证
✓ 隐私政策 URL
推荐提供:
• 软件著作权证书 (加速审核)
审核时间:1-2 工作日
提交流程
1. 登录小米开放平台
2. 应用分发 → 我的应用 → 新增应用
3. 填写应用信息
4. 上传 APK/AAB
5. 上传素材
6. 填写描述和关键词
7. 提交审核
4.3 OPPO 软件商店
提交入口
基本信息
| 字段 | 要求 | 示例 |
|---|---|---|
| 应用名称 | 30 字符内 | 移动 EDA |
| 包名 | 唯一 | com.jiloukeji.mobileeda |
| 分类 | 办公商务 | - |
素材要求
图标:
• 尺寸:512x512 像素
• 格式:PNG
截图:
• 数量:至少 2 张
• 尺寸:1920x1080
功能图:
• 数量:2-5 张
• 尺寸:1024x500 像素
特殊要求
必须提供:
✓ 隐私政策
✓ 权限详细说明
✓ 开发者资质认证
审核时间:1-3 工作日
提交流程
1. 登录 OPPO 开放平台
2. 应用分发 → 应用管理 → 创建应用
3. 填写基本信息
4. 上传应用包
5. 上传素材和资质
6. 提交审核
4.4 VIVO 应用商店
提交入口
基本信息
| 字段 | 要求 | 示例 |
|---|---|---|
| 应用名称 | 30 字符内 | 移动 EDA |
| 包名 | 唯一 | com.jiloukeji.mobileeda |
| 分类 | 办公 | - |
素材要求
图标:
• 尺寸:512x512 像素
• 格式:PNG
截图:
• 数量:至少 3 张
• 尺寸:1920x1080
特殊要求
必须提供:
✓ 隐私政策
✓ 实名认证
优先审核:
• 软件著作权证书
审核时间:2-4 工作日
提交流程
1. 登录 VIVO 开发者平台
2. 应用分发 → 我的应用 → 新增应用
3. 填写应用信息
4. 上传 APK/AAB
5. 上传素材
6. 提交审核
4.5 腾讯应用宝
提交入口
基本信息
| 字段 | 要求 | 示例 |
|---|---|---|
| 应用名称 | 30 字符内 | 移动 EDA |
| 包名 | 唯一 | com.jiloukeji.mobileeda |
| 分类 | 办公 | - |
素材要求
图标:
• 尺寸:512x512 像素
• 格式:PNG
截图:
• 数量:至少 3 张
• 尺寸:1920x1080
功能图:
• 数量:可选
• 尺寸:1024x500
宣传视频:
• 格式:MP4
• 时长:15-30 秒
• 可选
特殊要求
必须提供:
✓ 隐私政策
✓ 用户协议
✓ 实名认证
审核时间:1-3 工作日
提交流程
1. 登录腾讯开放平台
2. 应用接入 → 移动应用 → 创建应用
3. 填写基本信息
4. 上传应用包
5. 上传素材和资质
6. 提交审核
素材准备
5.1 应用图标
设计规范
尺寸要求:
• 主图标:512x512 像素 (所有商店)
• App Store: 1024x1024 像素
格式要求:
• 格式:PNG
• 背景:不透明
• 圆角:不要添加 (商店自动处理)
设计要求:
• 简洁清晰
• 与小尺寸下可识别
• 符合品牌色
• 避免文字
图标设计建议
移动 EDA 图标设计:
• 主体:电路板/原理图符号
• 颜色:蓝色系 (符合 EDA 行业)
• 风格:扁平化、现代
• 元素:电路节点、连线、元件符号
5.2 应用截图
截图规划
截图 1: 主界面
• 展示完整的编辑界面
• 突出工具栏和画布
• 显示 1-2 个元件
截图 2: 元件库
• 展示元件分类
• 显示搜索功能
• 突出元件丰富度
截图 3: 属性编辑
• 展示属性面板
• 显示编辑状态
• 突出专业性
截图 4: 深色模式
• 展示深色主题
• 对比浅色模式
• 突出护眼设计
截图 5: 多语言
• 展示语言切换
• 显示国际化
• 突出全球化
截图制作
# 使用 Flutter 模拟器截图
flutter emulators --launch <emulator_id>
# 或使用 ADB
adb shell screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png
# 或使用 Android Studio
View → Tool Windows → Device File Explorer
5.3 功能图
设计规范
尺寸:1024x500 像素
格式:PNG
内容:
• 功能亮点展示
• 可添加文字说明
• 保持品牌一致性
功能图内容建议
功能图 1: 流畅编辑
• 文案:"支持 1000+ 元件流畅渲染"
• 配图:复杂电路图
功能图 2: 丰富元件
• 文案:"内置丰富元件库"
• 配图:元件分类展示
功能图 3: 深色模式
• 文案:"护眼深色主题"
• 配图:深色模式界面
5.4 应用描述
描述模板
【应用名称】移动 EDA - 专业原理图设计工具
【应用介绍】
移动 EDA 是一款专为电子工程师打造的移动端原理图设计工具,让您随时随地进行电路设计。
【核心功能】
• 流畅编辑:支持 1000+ 元件流畅渲染,60fps 丝滑体验
• 丰富元件库:内置电源、被动元件、半导体、连接器等常用元件
• 智能连线:自动捕捉连接点,支持总线绘制
• 属性编辑:快速修改元件位号、值、封装等属性
• 深色模式:护眼深色主题,长时间使用不疲劳
• 多语言支持:简体中文、繁体中文、英文、阿拉伯语
【专业特性】
• 符合行业标准:遵循 EDA 行业配色和操作习惯
• 离线工作:无需联网,数据本地存储
• 快速搜索:元件库支持关键词搜索和筛选
• 撤销重做:完善的历史记录管理
【适用人群】
• 电子工程师
• 硬件开发者
• 电子爱好者
• 相关专业学生
【技术支持】
邮箱:support@jiloukeji.com
网站:https://www.jiloukeji.com
【版本更新】
v1.0.0:
• 首次发布
• 支持原理图编辑
• 内置丰富元件库
• 支持深色模式
• 支持多语言
常见问题
Q1: Keystore 丢失
问题: 签名密钥丢失,无法更新应用
解决方案:
预防:
• 多处备份 (本地 + 云端 + 物理)
• 使用密码管理器
• 团队多人保管
丢失后:
• 无法恢复
• 需要重新发布应用 (新包名)
• 用户需要重新下载
Q2: 审核被拒
常见原因:
• 隐私政策缺失或不合规
• 权限说明不清晰
• 应用存在 Bug 或崩溃
• 素材不符合规范
• 资质文件不全
应对策略:
1. 仔细阅读拒绝原因
2. 针对性修复
3. 重新提交
4. 联系商店客服
Q3: 应用体积过大
优化方案:
• 使用 AAB 格式
• 按 ABI 分包
• 启用资源压缩
• 压缩图片资源
• 移除未使用依赖
Q4: 多商店同步更新
最佳实践:
1. 统一版本号
2. 同时提交所有商店
3. 跟踪各商店审核状态
4. 协调上线时间
5. 准备回滚方案
Q5: 热更新支持
说明:
Flutter 支持热更新方案:
• Shorebird (官方推荐)
• CodePush 类方案
注意:
• 国内商店可能限制热更新
• 需符合商店政策
• 重大更新仍需走审核
附录
A. 提交检查清单
## Android 提交前检查清单
### 签名配置
- [ ] Keystore 已生成并备份
- [ ] 密码已安全保管
- [ ] build.gradle 配置正确
- [ ] 签名验证通过
### 构建配置
- [ ] minSdkVersion >= 21
- [ ] targetSdkVersion >= 34
- [ ] versionCode 递增
- [ ] versionName 正确
- [ ] 代码混淆启用
- [ ] 资源压缩启用
### 素材准备
- [ ] 图标 (512x512)
- [ ] 截图 (至少 3 张)
- [ ] 功能图 (1024x500)
- [ ] 应用描述
- [ ] 关键词
### 合规文档
- [ ] 隐私政策
- [ ] 用户协议
- [ ] 权限说明
- [ ] 软件著作权 (推荐)
### 商店账号
- [ ] 华为开发者联盟
- [ ] 小米开放平台
- [ ] OPPO 开放平台
- [ ] VIVO 开发者平台
- [ ] 腾讯开放平台
### 提交
- [ ] 各商店应用创建
- [ ] 应用包上传
- [ ] 素材上传
- [ ] 资质上传
- [ ] 提交审核
B. 版本发布流程
1. 代码冻结
2. 最终测试
3. 更新版本号
4. 构建发布包
5. 各商店提交
6. 跟踪审核
7. 协调上线
8. 监控反馈
C. 相关资源
D. 联系方式
- 技术支持:support@jiloukeji.com
- 商务咨询:business@jiloukeji.com
文档版本: 1.0
最后更新: 2026-03-07
维护: 发布工程师团队