我正在使用此测试工具 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,生成这种方式也很完美。
答案 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的版本。