|
|
这是鸿蒙生态的安全设计,确实比安卓复杂不少。简单说:
三种 HAP 的区别
┌────────────┬───────┬──────────────────┬──────────────────┐
│ │ 未签 │ Debug签名 │ Release签名 │
│ │ 名 │ │ │
├────────────┼───────┼──────────────────┼──────────────────┤
│ 能安装吗 │ 不能 │ 只能装到注册的设 │ 任意设备 │
│ │ │ 备 │ │
├────────────┼───────┼──────────────────┼──────────────────┤
│ 上架应用市 │ 不行 │ 不行 │ 可以 │
│ 场 │ │ │ │
├────────────┼───────┼──────────────────┼──────────────────┤
│ 设备限制 │ - │ 需要提前注册UDID │ 无 │
├────────────┼───────┼──────────────────┼──────────────────┤
│ 证书来源 │ 无 │ SDK自带调试证书 │ 华为开发者后台申 │
│ │ │ │ 请 │
└────────────┴───────┴──────────────────┴──────────────────┘
为什么这么设计
未签名 HAP = 完全不能用。鸿蒙系统拒绝安装未签名的应用,连测试都
不行。不像安卓可以勾选"未知来源"直接装。
Debug签名 = 限制在开发者自己的设备上。华为要求注册设备UDID是为了
防止调试证书被滥用分发。本质上就是告诉你:"这是你的开发证书,别
拿来当发布用"。
Release签名 = 正式发布。证书从华为开发者后台申请,代表你的开发者
身份,可以被应用市场验证。
对我们的影响
对于 App Inventor 用户来说,最实用的方案是:
1. 开发测试阶段 → 用 debug 签名就够了(SDK自带,无需用户操作)
2. 要上架/分发给他人 → 需要 release 签名(用户上传 .cer + .p7b)
debug 签名那 4 步流程确实繁琐,但好消息是 SDK
自带所有材料(OpenHarmony.p12),只要 BuildServer 找到
hap-sign-tool.jar 就能自动完成,用户无感。
目前的问题是签名工具路径没传给 BuildServer,刚才已经修复了。重启
BuildServer 后 debug 签名应该能自动生效。
❯ 我现在就是无签名hap, hdc install 到模拟器好的很
● 确实,模拟器不校验签名,hdc install 直接装。真机才强制要求签名。
所以对你现在的开发测试来说,无签名 HAP
完全没问题。签名流程只有用户要装到真机或上架时才需要。
|
|