
作者:晚霞的不甘 日期:2025年12月5日 标签:Flutter · OpenHarmony · 应用发布 · AppGallery · 热更新 · 崩溃监控 · 鸿蒙生态 · 运维

开发完成 ≠ 交付完成。在 OpenHarmony 生态中,一个应用的真正挑战始于提交审核之后:
若缺乏完整的发布与运维体系,你的应用将:
本文将带你走通 从构建、审核、发布到线上监控、热修复、A/B 测试 的全链路,助你实现:
# 为不同设备 ABI 构建(减小包体积)
flutter build ohos --release \
--target-platform=ohos-arm64,ohos-x86_64 \
--split-per-abi生成文件:
build/ohos/release/
├── entry-default-signed-arm64.hap ← 手机/手表
├── entry-default-signed-x86_64.hap ← 模拟器/部分平板
└── bundle.har ← 动态特性模块(可选)OpenHarmony 要求使用 正式证书(非调试证书):
agconnect-services.json 和 debug/release.p12signingConfigs in build-profile.json5:{
"products": [{
"signingConfig": "release",
"compatibleSdkVersion": 5
}],
"signingConfigs": {
"release": {
"storeFile": "release.p12",
"storePassword": "your_password",
"keyAlias": "release_key",
"keyPassword": "your_key_password"
}
}
}🔒 安全提示:证书密码勿提交 Git,使用 CI 环境变量注入。
问题类型 | 具体原因 | 解决方案 |
|---|---|---|
兼容性 | 未适配折叠屏/车机 | 使用 OhDeviceType 动态布局,提供多端截图 |
隐私合规 | 未提供隐私政策 | 在设置页添加“隐私政策”入口,内容包含数据用途 |
权限滥用 | 声明未使用权限 | 清理 module.json5 中冗余权限 |
安全漏洞 | 明文存储 Token | 改用 @ohos:security.huks 安全存储 |
功能缺陷 | 分布式任务迁移失败 | 提供测试账号+操作视频 |
💡 技巧:在“审核备注”中主动说明适配情况,如:“已适配手表圆形屏与车机横屏模式”。
版本号 | 含义 | 示例 |
|---|---|---|
1.2.0 | 主版本.功能.修订 | 新增健康监测 |
1.2.1-hotfix | 紧急修复 | 修复车机崩溃 |
2.0.0-beta | 大版本预览 | 重构 UI 架构 |
📌 建议:主版本号与 OpenHarmony SDK 版本对齐(如 OH 5.0 → v5.x)
华为提供 AppTouch(原 HiAnalytics Crash):
// 初始化
await OhAnalytics.init();
// 捕获 Dart 异常
runZonedGuarded(() {
runApp(MyApp());
}, (error, stack) {
OhAnalytics.logError('Dart Crash', error.toString(), stack.toString());
});支持:
OhAnalytics.logEvent('health_sync_success', {
'device_type': 'watch',
'duration_ms': 1200,
});用于分析:
OpenHarmony 不支持纯 JS/Dart 热更新(安全限制),但可通过以下方式实现:
.har 模块// module.json5
{
"dynamicFeatures": ["health_analysis.har"]
}final enableNewSync = await OhRemoteConfig.getBoolean('enable_new_sync');
if (enableNewSync) {
useNewSyncLogic();
}⚠️ 注意:核心逻辑(如支付、加密)禁止热更,必须走 HAP 发布。
final variant = await OhABTest.getVariant('health_chart_v2');
if (variant == 'new') {
return NewHealthChart();
} else {
return LegacyHealthChart();
}release_to_agc:
stage: deploy
script:
- flutter build ohos --release --split-per-abi
- agc-cli upload --app com.example.health --file build/ohos/release/*.hap
- agc-cli release --track internal-test
only:
- tags # 仅 tag 触发发布NullPointerExceptionv1.2.1-hotfix优秀的应用团队:
🛠️ 行动建议:
因为真正的交付,是让用户每一天都获得稳定、流畅、安全的服务。
附录:发布检查清单
上线只是旅程的第一步,持续可靠才是抵达用户心中的终点。