DevEco Studio5.0.5开发OpenHarmony应用,构建提示签名错误
DevEco Studio5.0.5开发OpenHarmony应用,构建提示签名错误 才入手鸿蒙开发,构建应用时出错,请各位帮忙看下问题,谢谢!!
开发工具:DevEco Studio5.0.5,目标机:OpenHarmony4.1.10
已修改部分:根据官方教程创建一个hello world项目,按照官方要求修改项目级build-profile.json5
"targetSdkVersion": 11,
"compatibleSdkVersion": 11,
"compileSdkVersion": 11,
"runtimeOS": "OpenHarmony",
在文件->设置->OpenHarmonySDK设置中已经下载API V11全部内容。
使用构建->生成私钥和证书请求文件->设置密码和别名
在项目级build-profile.json5修改
"signingConfigs": [
{
"name": "DevSign", // 签名配置名称,供后续引用
"type": "OpenHarmony", // 签名类型为OpenHarmony
"material": {
"certpath": "key32/key32.cer", // 证书文件路径(相对项目根目录)
"keyAlias": "debug_key32", // 与步骤1中的Key Alias一致
"keyPassword": "first_hello012345678901234567890", // 与步骤1中的密码一致
"profile": "key32/empty_profile.p7b", // 空profile文件路径
"signAlg": "SHA256withECDSA", // 签名算法(固定值)
"storeFile": "key32/key32.p12", // 密钥库文件路径
"storePassword": "first_hello012345678901234567890" // 与步骤1中的密码一致
}
}
],
其中:empty_profile.p7b是空文件,key32.cer文件是用keytool生成的
问题描述:
1、密码设置成9位数字+字母+特殊字符,系统提示
ERROR: Invalid data. Detail: Make sure the values of storePassword and keyPassword in build-profile.json5 contain at least 32 characters.
2、密码设置成32位数字+字母+特殊字符
Detail: Signing failed. Reconfigure the signature or clear the E:\arkts_code\first_hello\key32 folder and perform signing again.
3、密码设置成35位数字+字母+特殊字符
ERROR: Invalid password length. Detail: Verify the settings of storePassword and keyPassword in build-profile.json5.
使用HarmonyOS类型就可以生成hap。
望各位帮忙看下!!!多谢了!!!
背景知识:
楼主你使用签名的时候需要再签名的选项卡中进行输入你的密码。因为最终在配置文件中生成的是一个加密的字符串,所以你需要再配置签名选项卡中进行填写密码。
问题解决:
方式一:使用自己的签名文件,在次此处输入你的密码

方式二:勾选3位置,让其自动签名

排查思路: 1.楼主先尝试用模拟器能不能跑
2.再确认自动签名真机是否能跑
3.按照签名信息对照重新检查签名步骤是否怎加真机udid
参考文档:配置签名-开发准备-Screen Time Guard Kit(屏幕时间守护服务)-应用服务 - 华为HarmonyOS开发者
第一步:通过DevEco Studio菜单栏选择 Build > Generate Key and CSR,生成.p12和.csr文件,将csr文件上传至AGC后台,再下载官方生成的.cer和.p7b文件;
第二步:删除现有key32文件夹,并在build-profile.json5中调整配置:
"material": {
"certpath": "新生成的cer文件路径",
"profile": "从AGC下载的p7b文件路径",
"storeFile": "生成的p12文件路径",
"keyAlias": "与生成密钥时一致的别名",
"storePassword": "32位明文密码",
"keyPassword": "同上"
}
第三部:执行菜单栏 Build > Clean Project;删除项目根目录下的build文件夹
确定是签名问题吗,在项目级的工程里面有一个运行时系统runtimeOS,默认是HarmonyOS,检查是否是否修改

请在 File -> Project Structure -> Sign Configs 配置你的签名信息,(不使用自动签名)
这样会自动生成签名配置里面的内容,password等字段会加密。
"signingConfigs": [...]
在DevEco Studio 5.0.5中构建OpenHarmony应用时出现签名错误,通常是由于签名配置问题导致。请检查项目的build-profile.json5文件,确认signingConfigs中的storePassword、keyAlias、keyPassword是否正确,以及签名文件路径是否有效。同时,确保在buildOptions中已启用签名("signing"设为true)。若使用自动签名,需在Project Structure中配置正确的证书信息。
根据你的描述,这是一个典型的OpenHarmony应用签名配置问题。核心原因在于你使用了为HarmonyOS设计的签名流程和文件来配置OpenHarmony项目,两者不兼容。
问题根因分析:
- 签名类型不匹配:你通过DevEco Studio菜单
构建->生成私钥和证书请求文件生成的是用于 HarmonyOS 应用的签名材料(.p12、.cer、.csr)。而你的项目runtimeOS设置为"OpenHarmony",签名配置"type"也设置为"OpenHarmony"。OpenHarmony应用需要使用其专属的调试或发布证书,而非HarmonyOS的证书。 - 密码长度限制误解:OpenHarmony签名对
storePassword和keyPassword有明确的长度要求:必须恰好为32个字符。你遇到的错误信息(至少32位、无效长度)正是源于此规则。HarmonyOS的密码规则则不同。
解决方案:
你需要为OpenHarmony项目配置正确的签名。最直接有效的方法是使用自动签名,让DevEco Studio为你处理所有细节。
步骤:
-
清理现有配置:
- 删除项目根目录下的
key32文件夹。 - 打开项目级的
build-profile.json5文件,将"signingConfigs"整个配置块暂时删除或注释掉。
- 删除项目根目录下的
-
配置自动签名:
- 在DevEco Studio中,点击菜单栏
File -> Project Structure...。 - 在左侧选择
Project->Signing Configs选项卡。 - 在
Signing Configs页面,你会看到debug和release两个配置项。 - 确保
Store File下拉框为“Automatically generate signature”(自动生成签名)。这是关键。 - 检查
Key Alias、Store Password、Key Password这几个字段,此时应该已被系统自动填充为灰色的默认值(由IDE管理,密码长度符合要求)。 - 点击
OK保存。
- 在DevEco Studio中,点击菜单栏
-
验证与构建:
- 保存后,IDE会自动在项目根目录生成一个
signature文件夹,里面包含OpenHarmony调试所需的证书文件(.cer、.p12、.p7b)。 - 同时,
build-profile.json5文件中的signingConfigs部分会被自动更新,配置指向新生成的签名文件,且密码字段是符合32位长度的正确值。 - 现在尝试重新构建你的应用。
- 保存后,IDE会自动在项目根目录生成一个
原理说明:
当 runtimeOS 设置为 "OpenHarmony" 时,DevEco Studio的自动签名机制会识别并生成一套符合OpenHarmony签名规范的调试证书。这避免了手动创建证书时类型、格式、密码规则不匹配的所有问题。
如果因项目特殊原因必须使用自定义证书,那么你需要按照OpenHarmony官方文档的指引,通过命令行工具(如 openssl)或特定的资源申请流程来生成符合OpenHarmony格式要求的证书和私钥,但这对于刚入手的调试阶段并非必要。自动签名是官方推荐的、最便捷的调试开发方式。

