【发布时间】:2019-05-27 12:42:55
【问题描述】:
为了将 Android 应用程序与 Facebook 集成,需要生成密钥哈希。
这里的问题不是如何生成它,而是为什么需要它。 Facebook 解释说它需要 Android 密钥哈希来确保 Facebook 和应用程序之间的真实性。但是,我不清楚为什么 Facebook 需要用于开发环境的唯一密钥哈希?
而且,如果应用程序有多个开发人员,每个开发人员都有自己的开发环境怎么办?
【问题讨论】:
为了将 Android 应用程序与 Facebook 集成,需要生成密钥哈希。
这里的问题不是如何生成它,而是为什么需要它。 Facebook 解释说它需要 Android 密钥哈希来确保 Facebook 和应用程序之间的真实性。但是,我不清楚为什么 Facebook 需要用于开发环境的唯一密钥哈希?
而且,如果应用程序有多个开发人员,每个开发人员都有自己的开发环境怎么办?
【问题讨论】:
这是一种相当普遍的做法,用于防止 API 密钥被滥用,即使它正在开发环境中使用。 API 密钥可以很容易地从 APK 中提取出来,SDK API 可以根据其签名密钥对应用进行身份验证。
建议您与所有开发应用程序的开发人员共享您的应用程序开发签名密钥。这可以通过将签名密钥与您的项目一起签入来轻松完成。 Android Studio 为您创建的签名密钥位于$HOME/.android/debug.keystore。您可以将此密钥(或创建一个新密钥)复制到您的项目中,并将其包含在您的build.gradle 配置文件中。例如:
signingConfigs {
debug {
storeFile file("../keystores/debug.keystore")
}
release {
:
}
}
这解决了您在开发环境中为每个人使用相同的 facebook 密钥的问题。此外,它允许开发团队中的任何人构建和分发应用程序的调试版本,该版本将始终使用相同的密钥进行签名。
【讨论】: