从Test-Fairy下载后签署.APK以避免Google服务器错误

时间:2015-04-24 16:51:48

标签: android google-api apk jarsigner zipalign

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

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中的jarsinger,它们都没有用。

  • 我还尝试使用release.keystore签名,我用它来签署Eclipse生成生产.apk,生成这种方式也很完美。

2 个答案:

答案 0 :(得分:3)

答案很简单。

在Test-Fairy中,在项目设置中,有一个SHA1(由他们创建),我需要将其与其他SHA1调试密钥一起添加到Google API开发人员控制台。

现在它就像一个魅力。

答案 1 :(得分:3)

我为TestFairy工作:)

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

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

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