HarmonyOS 鸿蒙Next getBundleInfoForSelf无法打印证书信息

发布于 1周前 作者 gougou168 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next getBundleInfoForSelf无法打印证书信息

let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO;
try {
  bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
    hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s',
      JSON.stringify(data)); //data里可以获取到signatureInfo,即应用的签名证书信息 
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', message);
}

输出:

11-19 09:35:10.341   3055-3055     A00000/testTag                  com.sinosig.khapp.hm  I     getBundleInfoForSelf successfully. Data: {"name":"com.sinosig.khapp.hm","vendor":"example","versionCode":100000,"versionName":"1.0.0","minCompatibleVersionCode":100000,"targetVersion":50000012,"appInfo":null,"hapModulesInfo":[],"reqPermissionDetails":[],"permissionGrantStates":[],"signatureInfo":{"appId":"com.sinosig.khapp.hm_","fingerprint":"","appIdentifier":""},"installTime":1731923928722,"updateTime":1731980108770,"routerMap":[],"appIndex":0}

更多关于HarmonyOS 鸿蒙Next getBundleInfoForSelf无法打印证书信息的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

看下工程级的 build-profile.json5 文件 的 signingConfigs 有没有自动签名或者手动签名的配置。

配置后可以获取到 signatureInfo 的信息。

更多关于HarmonyOS 鸿蒙Next getBundleInfoForSelf无法打印证书信息的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,getBundleInfoForSelf 方法用于获取当前应用包的信息,但它并不直接提供证书信息的打印功能。证书信息通常包含在应用的签名数据中,需要额外的步骤来提取和展示。

要打印证书信息,你可以尝试以下步骤:

  1. 获取BundleInfo对象:首先,通过getBundleInfoForSelf方法获取当前应用的BundleInfo对象。

  2. 访问签名数据:在BundleInfo对象中,查找与签名相关的字段或方法(如getSigningConfigs()等,具体取决于鸿蒙API版本)。

  3. 解析签名数据:签名数据通常是经过编码的,需要解码并解析以获取证书信息。这可能涉及到对ASN.1或X.509证书格式的解析。

  4. 打印证书信息:一旦解析出证书信息,可以使用日志打印或其他方式显示这些信息。

示例代码(伪代码,具体实现需根据鸿蒙API调整):

BundleInfo bundleInfo = getBundleManager().getBundleInfoForSelf();
SigningConfig[] configs = bundleInfo.getSigningConfigs();
for (SigningConfig config : configs) {
    byte[] certificateData = config.getCertificate();
    // 解析并打印证书信息
    // 注意:这里省略了具体的解析步骤
}

注意:上述代码为示例性质,鸿蒙系统API可能与此有所不同。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部