首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于为Android开发和发布Facebook的关键哈希的问题

关于为Android开发和发布Facebook的关键哈希的问题
EN

Stack Overflow用户
提问于 2015-12-23 10:37:52
回答 4查看 3.9K关注 0票数 8

我在FB开发者网站上阅读了指南。

创建开发键散列

代码语言:javascript
运行
复制
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

并创建一个释放键散列。

代码语言:javascript
运行
复制
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64

我有6个问题:

  1. 那些密钥哈希是做什么的?
  2. 为什么需要为ReleaseDevelopment创建不同的键散列?
  3. 如果我还没有在上发布我的应用程序的话,就会发布到PlayStore上。我可以用Release Key代替Development key吗?
  4. 如果我的应用程序是 in PlayStore,我可以继续使用Development键吗?
  5. 我应该把什么投入到YOUR_RELEASE_KEY_ALIASYOUR_RELEASE_KEY_PATH中?有人能提供样品吗?
  6. 为什么当我们为iOS开发时,不需要那些密钥散列?

不相关的额外问题

这个按钮上的单一标志是做什么的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-12-23 10:55:56

问:那些密钥散列是做什么的?

  • 它们唯一地标识您的密钥存储库和应用程序。这是您的应用程序的独特指纹:

为您的应用程序签名

  • Android要求所有的应用程序在安装前都要用证书进行数字签名。Android使用此证书来识别应用程序的作者,并且证书不需要由证书颁发机构签名。Android应用程序通常使用自签名证书。应用程序开发人员持有证书的私钥。

签名概述

  • 您可以在调试或发布模式下对应用程序进行签名。在开发期间,您可以在调试模式下对应用程序进行签名,在准备分发应用程序时,您可以在发布模式下对应用程序进行签名。Android生成一个证书,用于在调试模式下对应用进行签名。要在发布模式下签署应用程序,您需要生成自己的证书。作为您的进一步参考,您可以查看keyhashes在

http://developer.android.com/tools/publishing/app-signing.html

https://developers.facebook.com/docs/facebook-login/android

Q:为什么需要为发行版和开发创建不同的键散列?

正如您所知,android在开发和发布时都使用不同的密钥存储,因为这两个密钥存储在每个方面都不同,它们都有不同的指纹和SHA-1散列,因此它们被完全不同的对待。

问:如果我还没有向PlayStore发布我的应用程序的话。我可以使用发布键而不是开发密钥吗?

是的,您只能为APK生成目的使用发布密钥,但是,如果您处于调试模式,则此键根本无法工作。

问:如果我的应用程序是在PlayStore中运行的,我可以继续使用开发密钥吗?

是的,您可以继续使用开发键,但不能使用调试键。

问:我应该把什么放进YOUR_RELEASE_KEY_ALIAS和YOUR_RELEASE_KEY_PATH?有人能提供样品吗?

附件是图片,如果你关心facebook的密钥

问:为什么当我们为iOS开发时,不需要那些密钥哈希?

这是由于平台的需求。没有必要,如果一个平台需要一件事,另一个平台也需要。

单符号在上的实现

单点登录大致是Facebook Connect等服务的延伸(和替代),将您连接到第三方社交应用程序和服务。如果你已经在你的手机上登录到Facebook,你就可以使用你的Facebook凭证登录到其他应用程序。

这里是生成fb指纹的代码.

代码语言:javascript
运行
复制
public void generateFbFingerPrint() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.group3amd.gc.activity",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String sign = Base64
                    .encodeToString(md.digest(), Base64.DEFAULT);
            Log.e("KEYHASH:", sign);
            Toast.makeText(getApplicationContext(), sign, Toast.LENGTH_LONG)
                    .show();
        }
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }




}
票数 7
EN

Stack Overflow用户

发布于 2015-12-23 10:54:39

那些密钥哈希是做什么的?

  • Android要求所有的应用程序在安装前都要用证书进行数字签名。Android使用此证书来识别应用程序的作者,并且证书不需要由证书颁发机构签名。所以这两个键都用来对你的应用程序进行数字签名。

为什么需要为发行版和开发创建不同的键散列?

  • 在开发过程中,您可以使用Development key在调试模式下对应用程序进行签名&当您准备在Google上分发应用程序时,可以使用release key

如果我还没有把我的应用程序发布到上的话,那就用PlayStore吧。我可以使用发布键而不是开发密钥吗?

  • 此时您必须使用release key

如果我的应用程序是在PlayStore中,我可以继续使用开发密钥吗?

  • Google不允许使用调试键上传APK,所以必须使用release key

,我该把什么放进YOUR_RELEASE_KEY_ALIAS和YOUR_RELEASE_KEY_PATH?有人能提供样品吗?

  • YOUR_RELEASE_KEY_ALIAS :使用任何你喜欢的名字(只是为了记住keystore的名字)
  • YOUR_RELEASE_KEY_PATH :您希望保存密钥存储文件的路径(供将来使用)

警告:将您的密钥存储库和私钥保存在一个安全可靠的位置,并确保它们的备份是安全的。如果你在Google Play上发布了一个应用程序,然后丢失了你签署应用程序的密钥,你将无法发布对你的应用程序的任何更新,因为你必须始终用相同的键对所有版本的应用进行签名。

为什么当我们为iOS开发时,不需要那些密钥哈希?

  • ios开发人员还要求苹果开发团队生成用于开发和发布的证书。我们必须在开发和发布时间使用它。

最重要的是关于android应用程序和Google play for FACEBOOK,您必须生成不同的key hash以进行开发和关联。

how to generate keyhash for facebook

票数 3
EN

Stack Overflow用户

发布于 2015-12-23 10:56:07

这就是你的答案。

  1. 开发密钥哈希-这只是为了测试,直到你还没有发布播放商店。发布密钥哈希-这是原始哈希键,没有这个键哈希,Facebook不是在游戏商店工作。
  2. 如果创建发布密钥哈希,则不需要创建开发密钥散列.,则不需要创建2 haseh键。
  3. 是的,如果没有发布密钥,facebook就不会在游戏商店工作。
  4. 没有开发密钥哈希仅用于测试哈希键。
  5. 是的他们能做到。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34433765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档