0

我正在使用这个测试工具Test-Fairy。它的工作方式是:我上传一个 .apk,他们进行了一些更改,然后他们要求下载 .apk 文件并自己签名(以支持我自己的密钥并与 google play 服务保持一致)。为此,我正在做通常的事情:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore debugkey.keystore App.apk android

然后zipalign -f -v 4 App.apk App_Aligned.apk

在此之后,当我使用谷歌地图进行活动时,我的应用程序无法正常工作,即使我的调试 SHA1 密钥已添加到谷歌服务控制台。当我从 Eclipse 安装应用程序时,谷歌地图和所有谷歌相关服务都运行良好。

任何人都知道为什么会这样?我错过了任何步骤吗?

笔记:

  • 我尝试从 JDK 1.7 开始使用 jarsinger,然后从 JDK 1.6 开始,它们都不起作用。

  • 我还尝试使用我用来从 Eclipse 签名以生成 Production .apk 的 release.keystore 进行签名,这种方式生成的也很完美。

4

2 回答 2

3

答案很简单。

在 Test-Fairy 的项目设置中,有一个 SHA1(由他们创建),我需要将其与其他 SHA1 调试密钥一起添加到 Google API Developers Console。

现在它就像一个魅力。

于 2015-04-24T17:11:01.660 回答
3

我为 TestFairy 工作:)

你自己的答案也是正确的。使用 TestFairy/Android 时,您有两种选择:

一,是使用网络上传,然后我们为您的APK创建一个唯一的证书。我们必须重新签名,因为我们做了一些小改动(比如更改 AndroidManifest 文件,并自动添加我们的 SDK。)使用此方法时,您将在 Build Settings 页面中看到新的 SHA1 和 MD5。文档中还解释了如何使用 Google 地图。

其次,是使用我们的上传器之一:命令行、gradle 或 jenkins。这些工具(带有配置)将使用您的本地密钥库,因此您保留与编译器输出相同的签名。建议使用此方法,因为它还允许您的用户从非 testfairy 构建升级到启用 testfairy 的构建。

于 2015-04-25T21:54:45.697 回答