如何获取 Android 内部应用程序共享密钥 SHA1 以启用 Google API?

Posted

技术标签:

【中文标题】如何获取 Android 内部应用程序共享密钥 SHA1 以启用 Google API?【英文标题】:How to get Android Internal App Sharing key SHA1 to enable Google APIs? 【发布时间】:2020-01-06 21:19:30 【问题描述】:

Google API 不适用于内部应用共享,这可能是由于 Share app bundles and APKs internally 中提到的 Google Play 应用重新签名

如何获取内部应用共享密钥 SHA1 以添加到 Google API 控制台?

【问题讨论】:

【参考方案1】:

提交应用后,您可以在 Google Play 管理中心的开发工具 -> 内部应用共享 -> 应用证书下找到内部应用签名密钥。

【讨论】:

好的,所以一旦你有了这个密钥,你会用它做什么来让谷歌地图在一个通过内部应用共享共享的应用中工作?! @RobP 是的,您必须将此指纹用于 GoogleMap。 Firebase 等,仅当您使用内部应用共享时。 除非您测试过,否则请不要投反对票,这是正确答案。 答案是正确的,但还不够。找到这个指纹后,API 控制台中有一组棘手的步骤可以将该指纹添加到各种 API,例如 android 版 Google Maps。我想通了,但这非常不明显,并且是被问到的问题的一部分。将其添加到答案中,我当然会删除反对票! @RobP 你能在单独的答案中添加你想出的东西吗?【参考方案2】:

您可以通过使用 try catch 进行此环绕来务实地获取密钥

private void printKeyhas()

  PackageInfo info = getPackageManager().getPackageInfo(getPackageName()),PackageManager.GET_SIGNATURE);

for(Signature signature.info.signature)

   MessageDigest md = MessageDigest.getInstanse("SHA");
   md.update(signature.toByteArray());
  log.d("KEY_HASH",Base64.encodeToString(md.digest(),Base64.DEFAULT));
 

【讨论】:

【参考方案3】:

您可以在 Google Play Console 中找到应用证书,发布管理 -> 应用发布 -> 管理内部应用共享 -> 应用证书。 复制 SHA-1 证书指纹,用于在 Google Cloud Platform 中添加您的关联 API 密钥,例如地图密钥、设备验证密钥。

您可以通过 SHA-1 指纹通过 OpenSSL 的命令轻松生成 Keyhash(ssh)

echo | xxd -r -p | openssl base64

在 Facebook 开发控制台上使用 Keyhash

【讨论】:

【参考方案4】:

在控制台或命令提示符中输入:

keytool -list -v -keystore C:\Users\Hp\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

【讨论】:

以上命令是获取Android调试密钥SHA1而不是内部应用共享密钥SHA1

以上是关于如何获取 Android 内部应用程序共享密钥 SHA1 以启用 Google API?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 上获取 FB Chat 的 API 密钥和会话密钥和会话密钥

如何在 First Data Global Gateway 测试账户中获取共享密钥

什么是 android 中的生产密钥库,如何获得生产密钥库的路径?

如何在 android java 中使用 volley 获取内部信息对象

利用ContentProvider获取本地数据

如何保护 Android apk 包中的 rapidapi 密钥