在Android中为Facebook SDK 3.0创建发布密钥

在Android中为Facebook SDK 3.0创建发布密钥,android,facebook,Android,Facebook,我有一个奇怪的问题。我正在尝试将Facebook集成到我的应用程序中。功能部分工作正常,但问题是它只有在直接从我的PC连接时才能工作,即如果将我的手机连接到eclipse并发送应用程序,它工作正常。如果我提取apk并直接从手机安装,应用程序不会让我登录,也不会创建会话等 有人能告诉我这里出了什么问题吗 更新1: 按照SK9的建议,按照facebook开发者的官方网站创建密钥 C:\Java\jdk1.7.0_10\bin>keytool-exportcert-alias myAppfull-ke

我有一个奇怪的问题。我正在尝试将Facebook集成到我的应用程序中。功能部分工作正常,但问题是它只有在直接从我的PC连接时才能工作,即如果将我的手机连接到eclipse并发送应用程序,它工作正常。如果我提取apk并直接从手机安装,应用程序不会让我登录,也不会创建会话等

有人能告诉我这里出了什么问题吗

更新1:

按照SK9的建议,按照facebook开发者的官方网站创建密钥

C:\Java\jdk1.7.0_10\bin>keytool-exportcert-alias myAppfull-key store myAppfull | C:\openssl-0.9.8k_X64\bin\openssl sha1-binary | C:\openssl-0.9.8k_X64\bin\openssl base64我得到密码提示。我输入了在eclipse中导出时使用的密码,它给出了一个代码。我进入了开发者页面

其中:myAppfull是我使用eclipse导出时使用的别名和密钥库

还是一样的问题吗?有什么我遗漏的吗

谢谢

更新2:


成功了!谢谢可能对其他人有用。检查下面我的答案

检查APK和Facebook开发者帐户上注册的签名证书是否匹配。看起来他们没有


看。将您的释放密钥哈希添加到列表中。

我很久以前就面临着完全相同的问题。当您在一行中混合使用两个命令(结果键已损坏)时,问题似乎会出现(仅在Windows中)。 我所做的是分别运行这些命令。我不记得我做这件事的确切方式,但我发现了这件事,看起来和我发现的很相似

Exporting keystore cert
keytool -exportcert -alias <insert the name of your alias here> -keystore <insert the route of your key here> -storepass android -keypass android > namefile.bin

Converting to sha1
<insert the route of your \bin\openssl here > sha1 -binary namefile.bin > namefile.sha1

Converting to base64
<insert the route of your \bin\openssl here > base64 -in namefile.sha1 -out namefile.base64

Done, Android hash key for Facebook app is:
<insert the route of your \bin\openssl here > base64 -in namefile.sha1
导出密钥库证书
keytool-exportcert-alias-keystore-storepass-android-keypass-android>namefile.bin
转换为sha1
sha1-二进制namefile.bin>namefile.sha1
转换为base64
base64-in-namefile.sha1-out-namefile.base64
完成,Facebook应用程序的Android哈希键为:
base64-在namefile.sha1中

来源:

感谢SK9和Vizz。我做了更多的研究,找到了解决这个问题的方法

这对于使用ECLIPSE创建密钥库以供发布的人很有用

1) 打开命令提示符并给出我的案例中JDK Bin文件夹的路径(C:\Java\jdk1.7.0_10\Bin)

2) 复制此代码keytool-exportcert-alias“YourAliasNamethatWileExportineClipse”-keystoreYourKeystoreHatSavedHileExportineClipse>c:\openssl\bin\release.txt

3) 现在您需要输入password,password=“创建KeyStoreInEclipse时输入的相同密码”

4) 请参阅openssl Bin文件夹,您将获得一个名为release.txt的文件

5) 现在,在我的示例中,将目录更改为openssl文件夹:C:\openssl-0.9.8k_X64\bin\

6) 复制以下代码并粘贴openssl sha1-binary release.txt>release_sha.txt

7) 您将在openssl bin文件夹中获得release_sha.txt

8) 再次复制以下代码并粘贴openssl base64-在release_sha.txt>release_base64.txt中

9) 您将在openssl bin文件夹中获得release_base64.txt

10) 打开release_base64.txt文件-宾果你有hashkey-复制密钥


将此粘贴到facebook开发者网站中的调试密钥旁边。它应该开始工作了

你能详细解释一下吗?是的,在某个时候你做了这件事:,见#5。再次访问此链接。我遵循了此链接中的设置:请遵循Facebook的官方步骤。我无法使其工作?请检查我的更新问题。以上是调试版本。类似地,我们必须在发布版本中使用它,唯一的区别是我们使用的密钥库与使用eclipse发布时创建的密钥库相同。我准确地改进和概括了答案。在未来,最好遵循官方文档:Android文档(keygen)和Facebook SDK文档涵盖此内容。keytool错误:java.lang.Exception:密钥库文件不存在:myfile获取此错误,密钥库文件是否需要位于特定文件夹中?不是必需的,但在keytool上使用它时,您必须给出确切的文件夹名称。。按照上述答案中的说明逐步操作,您将成功创建释放密钥。