HarmonyOS NEXT】error: failed to install bundle. code:9568322...

错误码9568322的核心原因是:你正试图将一个使用"发布证书"签名的应用,安装到一台普通的开发测试设备上。HarmonyOS NEXT对调试和发布签名有着严格区分,系统会校验签名中的设备UDID,并拒绝安装来源不受信任的应用。

这个问题很常见,通常由三种情况引起。你可以按照下面的排查步骤来定位和解决。

排查与解决

1. 检查IDE构建模式:是否错误地使用了"Release"配置?

这是最容易忽略的一步。IDE当前可能处于Release构建模式,或配置被锁定为使用release签名配置。

  • 检查位置:在DevEco Studio右上角的Product配置中,查看SigningConfig字段。如果它显示为release,即使你使用了自动签名,打出的包也是发布模式的,无法在真机上调试。

  • 解决方法

    • 尝试将SigningConfig手动切换为debugdefault

    • 如果无法切换,请检查项目根目录下的build-profile.json5文件,在products节点下,确保signingConfig没有写死为"release",应改为"default"让它自动适配。

json5

// 错误示例 "product": { "name": "default", "signingConfig": "release", // 这会导致报错 // ... } // 正确做法 "product": { "name": "default", "signingConfig": "default", // 让IDE根据构建模式自动选择 // ... }
2. 检查证书类型:是否误用了发布证书?

手动签名时,如果选择了错误类型的证书,也会导致此问题。

  • 核心原则:调试开发必须使用调试证书(Debug Certificate)调试Profile文件发布证书(Release Certificate)签名的应用只能用于提交应用市场或邀请测试,无法直接通过hdc install安装到设备上进行调试。

  • 验证方法:前往AppGallery Connect,确认你下载的.cer证书文件和.p7bProfile文件的类型均为"调试"。

3. 检查Profile文件:是否包含当前真机的UDID?

即使使用了调试证书,如果用于签名的Profile文件中没有包含当前测试设备的UDID,安装同样会被拒绝。

  • 问题表现:共享或手动配置的签名文件,其绑定的设备列表可能不包含你的手机。

  • 解决方法

    • 最快捷:使用DevEco Studio的自动签名功能。在连接真机后,点击File > Project Structure > Project > Signing Configs,勾选"Automatically generate signature"并重新签名。IDE会自动将当前设备UDID写入Profile。

    • 手动添加:如需使用手动签名,请登录AppGallery Connect,在"证书、APP ID和Profile"页面,找到对应的Profile文件,编辑并添加当前测试设备的UDID,然后重新下载Profile文件并替换项目中的旧文件。

如何获取设备UDID:可以通过命令行hdc shell bm get -u获取。

总结:快速修复清单

按照以下顺序操作,通常能解决问题:

  1. 切换构建模式:在DevEco Studio右上角将SigningConfig切换为debugdefault

  2. 重新自动签名:连接真机,在Project Structure中重新执行一次自动签名。

  3. 清理并重启:执行Build > Clean Project,然后重新运行应用。