Android Facebook SDK: 如何生成非调试的哈希密钥?

9

我知道如何使用Android密码生成调试哈希密钥。对于每个新设备,我需要生成(并上传到Facebook)新的哈希密钥。

现在,我还没有准备好投入生产,但我想将应用程序分发给一组测试人员,他们不想自己生成哈希密钥。我看到了非调试哈希密钥的参考:

接下来,您需要为应用程序生成密钥哈希。对于调试,如果使用Eclipse,则需要使用Android调试密钥生成此密钥哈希。当您准备发布应用程序时,您需要为签名密钥生成密钥哈希,并在签名应用程序之前更新此值才能使您的已签名应用程序正常工作。

http://www.techrepublic.com/blog/app-builder/integrate-facebook-logins-in-your-android-app/296

你是如何生成这个的?我以前从未制作过生产(已签名)应用程序,这与此有关吗?在完成应用程序之前签署我的应用程序是否有缺点?如果不是,我该怎么做才能让任何设备都可以运行此带有 Facebook 连接的应用程序?

1个回答

12

您可以轻松地生成自己的密钥以在发布模式下签署您的应用程序。有关详细信息,请参见Android文档:发布模式下的签名

密钥库生成示例:

$ keytool -genkey -v -keystore my-release-key.keystore
  -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

然后像使用调试密钥一样为Facebook生成哈希值:

$ keytool -exportcert -alias alias_name -keystore my-release-key.keystore
  | openssl sha1 -binary | openssl base64

最后,与您的测试人员组分享您签名的apk,就是这样。


@ottel142 我每次更新应用程序(即发布新的apk)时都需要重新生成哈希键吗? - Want
1
@想要所有发布的APK都必须使用相同的密钥库进行签名,这是Google/Android验证您作为应用程序开发者的方式。Android包管理器拒绝安装使用不同密钥库签名的更新。因此,由于密钥不会更改,哈希值也保持不变。 - ottel142
@ottel142 嗯,我使用我的密钥库生成了密钥哈希,有时它可以完美地工作(使用 FB 登录),有时它会提示“无效的密钥哈希”.. 我不知道该怎么办 :/ 谢谢你的回答。 - Want
1
@Want 也许你有时在使用调试版本进行测试?调试版本是使用不同的密钥库签名的... - ottel142
1
我更喜欢生成一个app-debug.keystore。然后使用它来覆盖默认的debug keystore(在build.gradle -> signingConfigs.debug.storeFile中),并将其检入版本控制。这样,所有团队成员都使用相同的debug keystore。 - ottel142
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接