我在 Amazon AppStore 上发布了一个 Android 应用程序,并怀疑与 Facebook 的集成。
如果我只使用我的证书来签署应用程序,Facebook 网站上的说明非常清楚。但是,据我了解,亚马逊使用自己的证书签署应用程序,因此,我应该为 Facebook SDK 生成一个新的密钥哈希。
所以我的问题是:如何为 Amazon Appstore 签名的应用程序生成密钥哈希(如果我没有他们的密钥库)?
我在 Amazon AppStore 上发布了一个 Android 应用程序,并怀疑与 Facebook 的集成。
如果我只使用我的证书来签署应用程序,Facebook 网站上的说明非常清楚。但是,据我了解,亚马逊使用自己的证书签署应用程序,因此,我应该为 Facebook SDK 生成一个新的密钥哈希。
所以我的问题是:如何为 Amazon Appstore 签名的应用程序生成密钥哈希(如果我没有他们的密钥库)?
亚马逊为您提供哈希。在“二进制文件”选项卡下,有一个标题为“Appstore 证书哈希”的部分。您只需将 sha1 base 64 哈希复制到 Facebook 应用程序设置。
关于这个问题,我们通过他们的开发者门户(帮助 -> 联系我们 -> 关于应用程序签名的问题)与亚马逊取得了联系。
看起来他们为我们的应用启用了一个标志,让我们可以选择自己签署二进制文件。上传二进制文件时,您可以选择:亚马逊将签署二进制文件或我将签署二进制文件。
如果要对二进制文件进行签名,过程如下所示:
第 1 步:上传未签名的 APK
第 2 步:下载包含注入代码的已处理二进制文件
第 3 步:您使用您的密钥签署处理后的二进制文件并再次上传
这样,您可以重用现有的 Facebook SDK 密钥哈希。
我是这样解决的:
我在没有钥匙的情况下在我的 kindle fire 上运行亚马逊应用程序。当显示无效参数错误时,我记下密钥并在我的 facebook 应用程序描述页面中输入。
关键是'-aQe9Ti2YD9 .....',但它不起作用。
然后我用“+”替换了“-”,瞧,它起作用了。
请确保将 facebook 应用程序显示的密钥字符串中的 '-' 和 '_' 替换为 '+' 和 '/'!(参见http://de.wikipedia.org/wiki/Base64 部分 URL 应用程序)
我通过底部的联系我们与他们取得了联系,并要求提供 facebook connect 的密钥哈希。他们在不到 5 分钟的时间内回复了哈希。在我把问题发给他们之后。完毕!
AFIK,他们用他们的密钥对 apk 进行双重签名,您的签名不会被删除。您可能想查看从亚马逊下载的 apk 以确认。由于您的签名/证书仍然存在,大概它应该可以工作,而您不必为 Android Market 做任何不同的事情。我还没有尝试过(无法从亚马逊下载)。