HarmonyOS鸿蒙Next中code:9568320 error: no signature file

HarmonyOS鸿蒙Next中code:9568320 error: no signature file 应用已经申请了sit环境的调试证书,已经有了相关配置,打成app 就提示no signature file ,直接点击开发工具的run是可以正常运行的 怎么排查哪里出问题了呢?

cke_2791.png


更多关于HarmonyOS鸿蒙Next中code:9568320 error: no signature file的实战教程也可以访问 https://www.itying.com/category-93-b0.html

13 回复

您好,根据报错信息可知,缺少签名信息,是签名文件或签名信息异常导致。可根据以下场景进行排查:

  • 场景一:检查工程级build-profile.json5文件中是否配置signingConfigs签名配置,并且products中指定了对应的signingConfig。
  • 场景二:DevEco Studio缓存异常可能导致签名失效,尝试清理缓存后重启是否正常。
    1. 执行菜单栏操作:Build -> Clean Project -> File -> Invalidate Caches,然后重启DevEco Studio。
    2. 删除本地签名目录(路径在签名页面可见),重新运行自动签名。
  • 场景三:排查证书是否使用正确。 保证证书类型使用正确,调试包使用调试证书,正式发布包使用发布证书,发布证书需要在AppGallery Connect创建获取

【背景知识】

  • 配置调试签名:针对开发调试场景,DevEco Studio为开发者提供了自动签名方案,帮助开发者高效进行调试。此外,也可以选择手动签名方式生成调试签名。
  • 9568320错误码参考:9568320 签名文件不存在

更多关于HarmonyOS鸿蒙Next中code:9568320 error: no signature file的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


请开发者根据实际场景选择自动签名或者手动签名,例如无法连接互联网的情况下推荐使用手动签名方式,详情参考使用场景说明

方法一. 使用自动签名。在连接设备后,重新为应用进行签名。

方法二. 使用手动签名,请参考手动签名

方法三. 如果安装APP时报这个错误码,需要在工程级build-profile.json5文件里配置packOptions的appWithSignedPkg属性为true,保证APP里的HAP/HSP有签名。

参考《bm工具错误码》

尊敬的开发者您好,调试证书和开发证书需要分别配置和切换,可以参考我的这篇实战文章:

通过配置多套签名实现便捷切换调试和发布应用

另外手动配置签名可以再结合官方文档指引进行申请:

配置发布应用的签名信息

这个现象可以按“Run 使用了一套可运行签名,但 Build App 打出来的包没有带上对应签名”来排查。no signature file 通常不是设备安装残留问题,而是构建产物本身未被正确签名。

建议按这个顺序看:

  1. 检查工程根目录 build-profile.json5app.products,当前打包使用的 product 是否明确配置了 signingConfig,并且名称和 signingConfigs 里的 name 完全一致,例如:
"products": [
{
"name": "default",
"signingConfig": "stg",
"runtimeOS": "HarmonyOS"
}
]
  1. 检查 app.signingConfigs 里的 stg 材料是否完整:storeFilestorePasswordkeyAliaskeyPasswordprofilecertpathsignAlg 都要有效,路径建议用工程相对路径,避免迁移电脑后指向旧机器路径。

  2. 如果是多模块/多 HAP,确认所有参与打包的模块都应用到同一个 product,且没有某个模块 target 没被签名配置覆盖。重点看模块的 targets.applyToProducts 和工程 products 的对应关系。

  3. Clean 后重新构建:Build > Clean Project,必要时删除工程下的 build、各模块 build.hvigor 缓存,再重新 Build App Pack(s)

  4. Run 能成功不代表打包配置一定正确,因为 Run 可能走 DevEco 自动签名或当前调试配置;Build App 会严格按 product/signingConfig 输出产物。先把“当前构建 product 绑定到 stg 签名”确认下来,基本就能定位到问题点。

还是推荐用自动签名 cke_360.png

  1. 打开DevEco Studio,在顶部菜单栏选择“File > Project Structure”,进入“Project Structure”界面。
  2. 导航选择“Project”,点击“Signing Configs”页签,取消“Automatically generate signature”勾选项,配置工程的签名信息,完成后点击“OK”。
    • Store file:密钥文件,选择之前准备好的密钥.p12文件。
    • Store password:密钥库密码,需与之前生成密钥设置的密钥库密码保持一致。
    • Key alias:密钥的别名信息,需与之前生成密钥设置的别名保持一致。
    • Key password:密钥的密码,需与之前生成密钥设置的密码保持一致。
    • Sign alg:固定设置为“SHA256withECDSA”。
    • Profile file:选择准备好的指定设备发布Profile。
    • Certpath file:选择准备好的发布证书.cer文件。

cke_339.png

这里有官方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-signing#section341949115713

取消掉自动签名的对钩!

检查一下项目目录下的build-profile.json5

"products": [
  {
    "name": "default",
    "signingConfig": "default",
    "compatibleSdkVersion": "6.0.1(21)",
    "runtimeOS": "HarmonyOS",
    "buildOption": {
      "strictMode": {
        "caseSensitiveCheck": true,
        "useNormalizedOHMUrl": true
      }
    }
  },

查看需要打包的app对应的poducts下的产品对应的signingConfig是不是stg

点赞,

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17,

这个报错通常不是证书本身的问题,而是构建配置(build-profile.json5)的引用逻辑出了错。

之所以 “Run”(运行)正常,是因为 DevEco Studio 的 Run 按钮默认使用的是 IDE 自动生成的调试证书(Automatic Signing),它会绕过你手动配置的签名信息。而当你选择 “Build”(打包)时,系统会严格按照配置文件执行。

cke_1191.png

  1. 检查 Products 是否关联了签名配置(最常见原因)
"products": [
  {
    "name": "default",
    "signingConfig": "sit", // ✅ 必须加上这一行,名称必须与 signingConfigs 里的 name 一致
    "compileSdkVersion": 11,
    "compatibleSdkVersion": 11,
    "runtimeOS": "HarmonyOS"
  }
]
  1. 检查文件路径的准确性

  1. 清理构建缓存(必做)

可执行以下操作:

  • 点击顶部菜单栏 Build > Clean Project。
  • 手动删除工程根目录下的 build 文件夹和 entry/build 文件夹(如果存在)。
  • 重新点击 Build > Build App Pack(s)。

检查工程级build-profile.json5文件配置准确,保证products中指定了对应的signingConfig。另外产品的名称,必须存在name为"default"的product。

cke_740.png

cke_1063.png

错误码9568320表示应用签名文件缺失。在HarmonyOS Next中,打包或安装HAP时需包含有效的签名文件(如.p7b或.p12)。请检查签名配置中证书文件路径是否有效,或重新生成签名文件并正确关联。

错误码9568320 “no signature file” 表示构建 APP 包时缺少有效的签名文件。在 DevEco Studio 中直接点击 Run 可以运行,是因为 Run 使用的是自动生成的调试签名,而打包 APP(如 Build Hap(s)/APP(s))则需要手动配置签名。
请检查:签名配置是否正确绑定到当前构建变体。前往 File > Project Structure > Signing Configs,确认已添加 SIT 环境的调试证书(.p12)和对应的 Profile 文件,并在 Build Variants 中将该签名配置应用到打包所用的变体(通常是 release)。若命令行打包,需确保 --sign-alg--profile-file--store-file 等参数完整且正确。

回到顶部