{ app: { signingConfigs: [ { name: 'default', type: 'HarmonyOS', material: { /* * ★★ 2026-10-02 真机推送排查:**这里签的是 CA 根证书,不是应用证书**。 * * 设备实测(平板 MRDI-W00,`bm dump`): * "appSignType": "none" / "signatureKey": "" / "appProvisionType": "debug" * ⇒ 包里**根本没有应用签名身份**,于是 HMS 的 * `AuthService: cert finger empty, clientId: 2039846327155747840` * 拿不到指纹,判成 `1000900010 Illegal application identity`, * push token 因此永远取不到(`push_tokens` 表 0 行)。 * * 证书比对(本机实测的三个指纹): * 本文件这个 .cer DF:21:A3:C0:…:DF:3A:37 CN=Huawei CBG Root CA G2 ← CA 根 * profile 内嵌 dev cert FD:89:AC:53:…:FC:9D:09 CN=靳睿(…)\,Development ← 应用的 * profile 的 type "debug" * ⇒ 签的证书与 profile 绑定的**不是同一张**,这就是 "cert finger empty" 的来源。 * * ⚠️ 曾把它改成 profile 内嵌的单张 dev cert 想试,hvigor 直接报 * `11013004 Profile cert must a cert chain` —— **certpath 要的是一条链** * (应用证书 + 签发它的 CA),而 dev cert 的签发者 * `Huawei CBG Developer Relations CA G2` **本机没有**(5 个 p7b 里都没有)。 * ⇒ 要修好必须补齐 dev cert 的**签发链**(AGC/DevEco 后台导出的那套发布或调试证书), * 然后把 certpath 指向那条链。在那之前这里保持原样, * 因为改成一个编译不过的值只会连应用都装不上。 */ certpath: '/root/.ohos/config/default_harmony_k2yruKTLaTiZOjublhUDTfveVx5uFoHqm96pwkUw=.cer', keyAlias: 'debugKey', keyPassword: '0000001b64d7bb074eed97bb2c6ad5ae60df2f72256b104361c3fd8c4f842eb42961fce4b712e7410dd208', profile: '/root/.ohos/config/default_harmony_k2yruKTLaTiZOjublhUDTfveVx5uFoHqm96pwkUw=.p7b', signAlg: 'SHA256withECDSA', storeFile: '/root/.ohos/config/default_harmony_k2yruKTLaTiZOjublhUDTfveVx5uFoHqm96pwkUw=.p12', storePassword: '0000001b64d7bb074eed97bb2c6ad5ae60df2f72256b104361c3fd8c4f842eb42961fce4b712e7410dd208', }, }, ], products: [ { name: 'default', signingConfig: 'default', targetSdkVersion: '6.1.0(23)', compatibleSdkVersion: '6.1.0(23)', runtimeOS: 'HarmonyOS', buildOption: { strictMode: { caseSensitiveCheck: true, useNormalizedOHMUrl: true, }, }, }, ], buildModeSet: [ { name: 'debug', }, { name: 'release', }, ], }, modules: [ { name: 'entry', srcPath: './entry', targets: [ { name: 'default', applyToProducts: [ 'default', ], }, ], }, ], }