当前位置:  开发笔记 > Android > 正文

关于Android SDK SDK的开发和发布关键哈希的问题

如何解决《关于AndroidSDKSDK的开发和发布关键哈希的问题》经验,为你挑选了1个好方法。

我在FB Developer网站上阅读了这些指南.

创建开发密钥哈希

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

并创建一个释放键哈希

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64

我有6个问题:

    那些Key Hashes做了什么?

    为什么有必要建立两个不同的密钥哈希ReleaseDevelopment

    如果我尚未将我的应用程序发布到PlayStore.我可以使用Release Key而不是使用Development key

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

    我应该投入YOUR_RELEASE_KEY_ALIASYOUR_RELEASE_KEY_PATH?有人可以提供样品吗?

    为什么当我们为iOS开发时,不需要那些关键的哈希?

额外的问题是无关的

这个单点登录按钮有什么作用? 在此输入图像描述



1> Umer Kiani..:

问:那些Key Hashes做了什么?

它们唯一地标识您的密钥库和应用程序.它是适合您应用的独特指纹:

签署您的应用程序

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

签名概述

您可以在调试或发布模式下签署应用程序.当您准备好分发应用程序时,您可以在开发期间和发布模式下以调试模式签署应用程序.Android SDK生成证书以在调试模式下对应用程序进行签名.要在发布模式下对应用程序进行签名,您需要生成自己的证书.如需进一步参考,您可以查看关键字的位置

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

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

问:为什么需要为Release和Development创建不同的键哈希?

如你所知,android使用不同的密钥库进行开发和发布,因为两个密钥库在每个方面都不同,它们都有不同的指纹和SHA-1哈希,因此它们被完全区别对待.

问:如果我尚未将我的应用程序发布到PlayStore.我可以使用Release Key而不是使用Development键吗?

是的,您只能使用发布密钥进行APK生成,但如果您处于调试模式,则此密钥根本不起作用.

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

是的,您可以继续使用开发密钥,但不能使用调试密钥.

问:我应该在YOUR_RELEASE_KEY_ALIAS和YOUR_RELEASE_KEY_PATH中添加什么?有人可以提供样品吗?

如果你担心Facebook密钥,附加是图像 在此输入图像描述

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

这是由于平台要求.没有必要,如果一个平台需要一个东西,另一个平台也是如此.

单点登录

单点登录大致是Facebook Connect等服务的扩展(和替代),将您连接到第三方社交应用和服务.如果您已使用手机登录Facebook,则可以使用Facebook凭据登录其他应用.

这是生成fb指纹的代码.

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();
    }




}

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有