在DevEco Studio中使用配置好的签名信息签名失败

生成好签名需要的相关文件后,统一放置到工程根目录的“sign\debug”目录下,然后触发DevEco Studio工程中的Build->Build Hap(s)/App(s) ->Build Hap(s) 进行编译,最后签名失败,报错信息如下:

> hvigor ERROR: Failed :entry:default@SignHap...

> hvigor ERROR: Invalid initialization vector

Detail: Signing failed. Reconfigure the signature or clear the D:\work\test2\sign\debug folder and perform signing again.

at D:\work\test2\build-profile.json5

> hvigor ERROR: BUILD FAILED in 7 s 473 ms

build-profile.json5里面的配置信息如下(密码进行脱敏处理):

“signingConfigs”: [ 
  { 
    “name”: “default”, 
    “type”: “HarmonyOS”, 
    “material”: { 
    “storePassword”: “", 
    “certpath”: “./sign/debug/debug_01.cer”, 
    “keyAlias”: “key_debug_01”, 
    “keyPassword”: "”, 
    “profile”: “./sign/debug/txxy_debug_01.p7b”, 
    “signAlg”: “SHA2xxxxhECDSA”, 
    “storeFile”: “./sign/debug/key_debug_01.p12” 
    } 
  } 
],
HarmonyOS
2024-09-14 10:35:52
浏览
收藏 0
回答 3
待解决
回答 3
按赞同
/
按时间
rose_bestOne

不可以手动选择配置签名文件么

分享
微博
QQ
微信
回复
2024-09-14 10:40:03
FengTianYa

build-profile.json5文件中密码不能是原文,是经过处理的字符串。

分享
微博
QQ
微信
回复
2024-09-14 17:28:24
鱼弦CTO

在DevEco Studio中进行签名时,如果遇到“Invalid initialization vector”错误,通常是由于签名文件配置或内容问题导致的。以下是一些常见的排查步骤和解决方法:

### 1. 检查 ​​build-profile.json5​​ 配置文件 确保 ​​build-profile.json5​​ 文件中的路径和密码都正确无误。此外,请确认所有路径使用的是相对路径,并且目录结构和文件名都正确。

#### 示例 ​​build-profile.json5​

{
    "signingConfigs": [ 
        { 
            "name": "default", 
            "type": "HarmonyOS", 
            "material": { 
                "storePassword": "your_store_password", 
                "certpath": "./sign/debug/debug_01.cer", 
                "keyAlias": "key_debug_01", 
                "keyPassword": "your_key_password", 
                "profile": "./sign/debug/txxy_debug_01.p7b", 
                "signAlg": "SHA256withECDSA", 
                "storeFile": "./sign/debug/key_debug_01.p12" 
            } 
        } 
    ]
}

注意:

  • ​storePassword​​ 和​​keyPassword​​ 必须是有效的非空字符串。
  • 确保​​signAlg​​ 是 HarmonyOS 支持的算法,例如​​SHA256withECDSA​​。

### 2. 检查证书和密钥文件 确保以下文件存在并且内容正确:

  • ​debug_01.cer​
  • ​txxy_debug_01.p7b​
  • ​key_debug_01.p12​

这些文件应该位于你指定的路径 ​​./sign/debug/​​ 目录下。

### 3. 清理和重新生成签名文件 根据错误提示,可以尝试清理 ​​D:\work\test2\sign\debug​​ 目录,然后重新生成签名所需的文件。如果你不确定如何生成这些文件,可以参考以下步骤:

  1. 生成私钥和证书:
keytool -genkeypair -alias key_debug_01 -keyalg EC -keystore key_debug_01.p12 -storetype PKCS12 -validity 3650 -dname "CN=Debug, OU=Development, O=Company, L=City, S=State, C=Country" -storepass your_store_password -keypass your_key_password
  1. 导出证书:
keytool -export -alias key_debug_01 -keystore key_debug_01.p12 -file debug_01.cer -storepass your_store_password
  1. 生成签名配置文件(可选): 你可能需要一个 .p7b 文件,可以通过工具或命令生成。

### 4. 验证路径和文件格式

  • 确保所有文件的路径都是相对路径,并且文件名和扩展名完全匹配。
  • 确保​​debug_01.cer​​ 是一个有效的X.509证书文件。
  • 确保​​key_debug_01.p12​​ 是一个有效的PKCS12密钥库文件,并包含你的私钥和公钥。

### 5. 清理 DevEco Studio 的缓存 有时候,构建工具的缓存可能会引发问题。尝试清理 DevEco Studio 的构建缓存,然后重试构建过程。

rm -rf build
rm -rf .gradle

然后在 DevEco Studio 中重建项目。

### 总结

  1. 检查并验证 build-profile.json5​ 的配置
  2. 确保签名文件的路径、名称和内容正确
  3. 清理并重新生成签名文件
  4. 清理 DevEco Studio 的缓存

通过这些步骤,你应该能够解决签名失败的问题,并成功为你的 HarmonyOS 应用进行签名。

分享
微博
QQ
微信
回复
2024-09-26 19:05:19
相关问题
DevEco Studio签名真机测试问题
11111浏览 • 3回复 待解决
DevEco Studio真机调试找不到签名文件
512浏览 • 1回复 待解决
签名证书配置问题有哪些?
380浏览 • 1回复 待解决
多模块签名配置DevEcoStudio报错
7469浏览 • 2回复 待解决
签名出现如下情况导致失败
35浏览 • 1回复 待解决
RSA签名后,后端验签失败
103浏览 • 1回复 待解决
配置权限后,APP安装失败
2166浏览 • 1回复 待解决
对openHarmony应用进行签名失败
9264浏览 • 3回复 已解决
huks sm2签名验签失败
99浏览 • 1回复 待解决
DevEco studio登录失败
44浏览 • 1回复 待解决
自动签名一直失败怎么回事?
450浏览 • 1回复 待解决
使用DevEco Studio登录模拟器失败
10733浏览 • 1回复 待解决
DevEco Studio配置lldbinit
851浏览 • 1回复 待解决