HarmonyOS鸿蒙Next中请教一个上架的profile问题,我看了鸿蒙的这个appid, profile感觉和IOS比较象,现在我开发的时候用自动生成的签名来做调试,能正常使用,但是上架的时候,会提示invalid profile, 我到开发者后台产生新的用于发布的

HarmonyOS鸿蒙Next中请教一个上架的profile问题,我看了鸿蒙的这个appid, profile感觉和IOS比较象,现在我开发的时候用自动生成的签名来做调试,能正常使用,但是上架的时候,会提示invalid profile, 我到开发者后台产生新的用于发布的 请教一个上架的profile问题,我看了鸿蒙的这个appid, profile感觉和IOS比较象,现在我开发的时候用自动生成的签名来做调试,能正常使用,但是上架的时候,会提示invalid profile, 我到开发者后台产生新的用于发布的p12, p7b和cer文件,如何使用这些新的文件来做新的签名?

4 回复

开发者你好,在AGC平台产生新的用于发布的p12, p7b和cer文件在Signing Configs中将文件替换后清理缓存,重新构建,再打包上传。

cke_287.png

更多关于HarmonyOS鸿蒙Next中请教一个上架的profile问题,我看了鸿蒙的这个appid, profile感觉和IOS比较象,现在我开发的时候用自动生成的签名来做调试,能正常使用,但是上架的时候,会提示invalid profile, 我到开发者后台产生新的用于发布的的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


【背景知识】

HarmonyOS应用/元服务通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用/元服务的完整性。在申请数字证书和Profile文件前,首先需要通过DevEco Studio来生成密钥(存储在格式为.p12的密钥库文件中)和证书请求文件(.csr文件)。然后,申请调试数字证书和调试Profile文件。最后,将密钥(.p12)文件、数字证书(.cer)文件和Profile(.p7b)文件配置到工程中。

  • 密钥:格式为.p12,包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,公钥和私钥对用于数字签名和验证。
  • 证书请求文件:格式为.csr,全称为Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。
  • 数字证书:格式为.cer,由华为AppGallery Connect颁发。
  • Profile文件:格式为.p7b,包含HarmonyOS应用/元服务的包名、数字证书信息、描述应用/元服务允许申请的证书权限列表,以及允许应用/元服务调试的设备列表(如果应用/元服务类型为Release类型,则设备列表为空)等内容,每个应用/元服务包中均必须包含一个Profile文件。

【解决方案】

正确签名流程,参考文档手动签名发布应用

  1. 先生成密钥库文件(.p12)、证书请求文件(.csr)。
  2. 使用证书请求文件(.csr)在AppGallery Connect中申请、下载调试/发布证书(证书格式为.cer,包含公钥、证书指纹等信息)。
  3. 最后申请调试/发布Profile:格式为.p7b,包含HarmonyOS应用/元服务的包名、数字证书信息、HarmonyOS应用/元服务允许申请的证书权限列表,以及允许应用/元服务调试的设备列表(如果应用/元服务类型为Release类型,则设备列表为空)等内容。
  4. 如果应用需要使用受限权限,需要申请受限ACL权限,然后在需要使用权限的模块的module.json5/config.json文件中添加“requestPermissions”/“reqPermissions”字段,并在字段下添加对应的权限名等信息,以在Stage模型工程中增加权限“ohos.permission.ACCESS_IDS”为例。
{
  "module": {
    ...
    "requestPermissions": [{
      "name": "ohos.permission.ACCESS_IDS",
    }],
    ...
  }
}

出现了手动签名的问题,需要检查并确保.p12、.csr、.cer、.p7b均是正确的。

  • 签名配置中,.p12是密钥库文件,是和.csr文件一起生成的,基本不会出现问题(除非签名配置中密码和alias别名填错了)
  • .cer文件是在AGC上传.csr文件后从AGC下载的,文件本身基本不会有问题。
  • .cer、.p7b都可以从AGC上再下载,去验证。
  • .p12和.csr出问题需要重新生成。

因此,手动签名报错时,一般按照如下步骤排查解决:

  1. 排查应用是否使用受限权限,如果使用了,需要申请受限ACL权限。
  2. 是否本地调试的时候使用的发布证书而非调试证书。
  3. 重新签名或者替换一下AGC中下载的文件验证可以解决大部分问题。

【常见FAQ】

Q:配置签名的时候报错:"Decryption failed. Verify the encryption password, or delete the material folder where the .p12 file is located and select Automatically generate signature to re-sign the file."请问如何解决? A:根据报错提示:解密失败,密码错误,配置签名要确保密码正确,如果忘记密码则重新生成p12文件,具体步骤可参考:手动签名

Q:配置签名弹窗报错:"Encryption failed. Delete the material folder where the .p12 file is located and select Automatically generate signature to re-sign the file."如何解决? A:删除.p12文件同目录下生成的material文件夹后,重新签名。

在HarmonyOS Next上架时,invalid profile错误通常由签名配置不匹配导致。请确认开发者后台生成的发布证书与本地打包配置的签名文件完全一致,包括包名、Bundle ID和证书指纹。检查profile是否关联了正确的App ID,并确保未使用调试签名提交发布版本。

在HarmonyOS Next中,上架应用时需要使用发布签名文件替换调试签名。请按以下步骤操作:

  1. 在DevEco Studio中打开项目,进入File > Project Structure > Project > Signing Configs。
  2. 取消勾选“Automatically generate signing”,手动配置发布签名信息:
    • 选择Signing Certificate(.p12文件)并输入密码
    • 配置Certification Profile(.p7b文件)
  3. 确保appid与开发者后台申请签名时填写的包名一致。
  4. 重新编译生成发布版本后再提交审核。

调试与发布签名不兼容,直接替换文件即可解决invalid profile报错。

回到顶部