在测试App的调试版本(通过Fabric测试)时,有几个用户遇到了空白的Google Map(95%的用户没有)。我无法在模拟器或我拥有的6个Android设备中重现它。最终我设法在LG Optimus L70上的AWS Device Farm上重现它,并且通过日志读取它发现SHA1键是不同的。这是我从CERT.RSA文件获得的转储(敏感数据XX输出):
build\outputs\apk>keytool -printcert -file CERT.RSA Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 160d8c0 Valid from: Wed Sep 17 20:41:47 PDT 2014 until: Fri Sep 09 20:41:47 PDT 2044 Certificate fingerprints: MD5: 82:17:27:A9:4B:63:AD:F8:54:AC:94:C2:EB:XX:XX:XX SHA1: 66:76:69:7D:83:4F:8F:8D:01:F6:F9:12:AF:35:16:78:XX:XX:XX:XX SHA256: 91:EF:E0:0E:23:54:6D:C6:48:B8:BA:B4:E2:75:82:D0:A7:9A:49:D9:E5:D2:DA:E8:35:62:37:27:XX:XX:XX:XX Signature algorithm name: SHA256withRSA Version: 3
和SHA1(66:76:69:7D:83:4F:8F:8D:01:F6:F9:12:AF:35:16:78:XX:XX:XX:XX)完全在开发人员控制台中使用我的所有本地设备,然而,在LG Optimus L70的日志中,我得到了一个完全不同的SHA1报告:
Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map. In the Google Developer Console (https://console.developers.google.com) Ensure that the "Google Maps Android API v2" is enabled. Ensure that the following Android Key exists: API Key: AIzaSyA5kvTz4UL********************* Android Application (;): 8D:2E:22:6C:30:4C:DD:85:05:5D:10:67:08:88:75:8A:XX:XX:XX:XX;com.sample.app
这是相同的APK,只是在不同的设备上。是否有某些设备可以获得不同的SHA1?我希望这不会是签名发布APK的问题,但我目前正在测试调试APK,并且不希望将测试切换到发布,除非我必须。此外,我只是对正在发生的事情感到困惑,以及如何发生这种情况?有什么理由我不得不担心有这个问题的签名版本吗?