问题现象
同一个应用的生产签名(Release)与调试签名(Debug)所对应的appIdentifier或指纹信息(fingerprint)是否一致
解决方案
- appIdentifier应用的唯一标识,是HarmonyOS 开发者中心创建应用时分配的APP ID,为云端统一分配的随机字符串。该ID在应用全生命周期中不会发生变化,包括版本升级、证书变更、开发者公私钥变更、应用转移等。但如果使用的IDE自动签名,那么appIdentifier为随机分配(此appIdentifier不可作为应用正式的身份标识),不同于应用正式profile中的appIdentifier,所以会导致调试环境和生产环境的appIdentifier值不一样。如果是通过appIdentifier验证应用身份信息的场景,需用应用市场直接下发的profile文件,不要通过IDE进行自动签名。
- 若不同的应用打包时使用同一个证书签名,应用fingerprint值也是相同的。而相同的应用因为调试环境的调试证书和生产环境的发布证书不同,所以输出fingerprint值也不相同。参考SignatureInfo文档,应用包的指纹信息,使用的签名证书发生变化,该字段会发生变化。