Ich habe ein signiertes APK mit Android Studio erstellt und der SHA1-Fingerabdruck und den relativen API-Schlüsseln in meiner App zur Google Developer Console und Facebook-Konsole hinzugefügt. Alles funktioniert gut, wenn ich meine signierte Apk via USB hochlade, nach der Installation der Karten api und facebook api funktioniert gut. Wenn ich die gleiche APK in den Play Store hochlade, wenn ich versuche, mich mit Facebook anzumelden, heißt es "ungültiger Schlüssel-Hash. Der Schlüssel-Hash blablabla passt nicht zu irgendwelchen gespeicherten ..". Also wenn ich ohne Facebook logge, kann ich nicht einmal meine Google Maps bekommen; Das führt mich zu der Annahme, dass die auf dem Play Store geladene Apk seinen Fingerabdruck oder ähnliches ändert. Ich habe all die Sachen auf Android Developers und Stackoverflow überprüft, aber ich kann es nicht funktionieren lassen, weil die signierte Version so gut funktioniert, bis ich sie in den Play Store geladen habe.Veröffentlichte App im Play Store kann nicht mit Google Maps API und Facebook API kommunizieren
Antwort
ich endlich gelöst wurde das Problem wahrscheinlich, dass die Datei google_maps_api.xml durch die api bereitgestellt wurde nicht in der Release geladen, so dass ich
ich tat so:
buildTypes {
debug {
manifestPlaceholders = [mapsKey: "AIzaSyB8o9KzQ5YN8U8AFS************"]
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
manifestPlaceholders = [mapsKey: "AIzaSyApLacqgkdIR7uEpcf*****************"]
}
}
und dann in meinem AndroidManifest
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${mapsKey}" />
Referenz: https://stackoverflow.com/a/33917692/3235560
dann registriert i 2 verschiedenen Tasten jeweils mit der rechten SHA1-Fingerabdruck, ein Debug und die andere von Google gegeben Konsole Play (nicht der Upload-Zertifikat, aber die anderen von Google erzeugt ein).
Sehr Sehr danke an Zuhad und Andy Developer für Inspiration.
Die Debug- und Release-Build-Typen Ihrer Anwendung sind mit zwei verschiedenen Schlüsseln signiert.
Sie müssen beide Schlüssel in den Google Maps und Facebook registrieren für sie Zugang zu ihren Diensten
Das habe ich gemacht. Ich habe auch das Deployment-Cert von der Play Store-Konsole heruntergeladen und den folgenden Befehl ausgeführt: 'cat deployment_cert.der | openssl sha1 -binary | openssl base64' und es gab mir die API-Taste für Facebook-Login, die jetzt funktioniert, aber ich kann nicht arbeiten Maps. In der Datei unter /app/src/release/res/values/google_maps_api.xml habe ich den Schlüssel aus der Google Maps-Konsole hinzugefügt, in dem ich auch den sha1-Fingerabdruck von meinem eigenen Zertifikat (aus Android Studio) und dem sha1-Fingerabdruck registriert habe aus Play Store-Konsole, aber es funktioniert nicht – exrezzo
Ist Ihr Debug-Build mit einer anderen ApplicationId/Paket als der Release-Build? Abhängig davon, müssen Sie möglicherweise einen anderen Eintrag auf der Google Maps API-Schlüssel Config –
am Generieren Debug-API-Schlüssel seine Arbeit.Wenn ich signedapi Schlüssel für die Veröffentlichung integrieren noch arbeiten bitte helfen Sie mir.nach generieren signes apk und wieder generieren signierten Google maps api key mit signierter Schlüsselspeicherdatei und Alias. – Harsha
Ja zu ermöglichen, Offensichtlich ist die Karte nicht in signierten APK laden.
Lösung:
Wenn Sie API-Schlüssel in Google API-Konsole generieren müssen Sie den Schlüssel mit SHA beschränken Schlüssel
aber nach APk Signed Erzeugen müssen Sie Freigabemodus SHA Schlüssel nehmen und in API-Konsole hinzufügen haben sie für die API
I Bild angeschlossen haben, einen Blick
hoffe, es hilft.
die Sache ist, dass die API-Schlüssel für Debug- und Release unterschiedlich sind, in der Tat ich in der gradle Datei geschrieben 'buildTypes { Debug { manifestPlaceholders = [google_map_key: "AIzaSyB8o9KzQ5YN8U8AFSxbTJLheFiubF ****"] } Mitteilung { minifyEnabled falsch proguardFiles getDefaultProguardFile ('proguard-android.txt'), 'proguard-rules.pro' manifestPlaceholders = [google_map_key: "AIzaSyApLacqgkdIR7uEpcf7EDuGvsQlgh *****"] signingConfig signingConfigs.config } ' – exrezzo
auch wenn ich hinzufügen, wie Sie haben gesagt, für jeden Schlüssel sowohl debug sha1 und release sha1 es funktioniert nicht – exrezzo
Besser erstellen Sie einen neuen API-Schlüssel und versuchen zu implementieren, Nur der API-Schlüssel ist die Lösung, die ich hoffe – Zuhad
Für Facebook-Hash-Schlüssel zu erzeugen, um den folgenden Code verwenden:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"YOUR PACKAGE NAME",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Sobald Sie den Hash-Code erhalten, setzen Sie das gleiche in Facebook Entwickler-Konsole einfügen und vor
bewegen hoffen, es hilft :)
Hier ist die Antwort, warum Sie die Google Map nicht sehen können.
Ich habe vor kurzem Upload der APK im Google Play Store und ich konfrontiert das gleiche Problem nach der Überprüfung der Play Console fand ich die Lösung für dieses Problem.
Sie sind kein Problem mit Ihrem Schlüssel, aber das Problem ist mit Ihrem SHA-1. Du hast dein APK mit deinem SHA-1 unterschrieben, das ist in Ordnung und dann lädst du das APK auch in Ordnung.
Aber nach dem neuen Update für Play Console, als Sie Ihr APK mit SHA-1 signiert und das APK hochgeladen haben, wurde es nur von Ihnen signiert, aber gemäß dem neuen Update wird es auch von Google Play für mehr Sicherheit signiert. Hier ein Teil des Google Play-Bereichs:
Mit Google Play App Signing: Sie signieren Ihre App mit Ihrem Upload-Schlüssel. Dann überprüft Google die Signatur des Upload-Schlüssels und entfernt sie. Endlich, Google signiert die App mit dem ursprünglichen App-Signaturschlüssel, den Sie zur Verfügung gestellt haben und sendet Ihre App an den Nutzer.
Sie verweisen Documentation here.
Nun ist die Antwort auf Ihre Frage Nach einer erfolgreich verlaufenen APK hochladen können Sie die im Abschnitt sehen mit zwei SHA-1 der 1. SHA-1 ist Google erstellt seine eigene und 2. SHA-1 ist seine Ihre.
Kopieren Sie einfach den Google SHA-1 und fügen Sie ihn in Ihre Konsole ein, wo Sie den Google Map API Key generieren.
Danke Mann! Ich habe mir 3 Tage lang den Kopf gebrochen, um das herauszufinden. Obwohl es eine Menge Antworten gab, die den Schlüssel sha1 änderten, war dies klar und klar und auf den Punkt. Danke für Ihre Hilfe. – user669444
@ user669444 willkommen sir :) –
@AndyDeveloper Danke Mann ... wirklich hast du mich gerettet. Ich habe mein Projekt buchstäblich aus Firebase und Google Console gelöscht und es neu erstellt und konfiguriert, aber das macht keinen Unterschied. Heats Off auf Ihre Antwort. –
Inspiriert von @Andy Developer konnte ich die Karte anzeigen, nachdem meine App auf Google Play hochgeladen wurde. Dies waren die Schritte:
- Laden Sie Ihre App bei Google Play (signierte APK-Datei)
- Nachdem die App eingereicht wurde und genehmigt, wählen Sie Ihre App von Google Play Console
- Zum Entwicklungstools ->Release Management ->App Unterzeichnung
- Kopieren Sie das erste SHA-1-Zertifikat, das Google Play nach dem Hochladen der App erstellt hat.
- Gehen Sie zu Google Console und wählen Sie Ihr Projekt.
- Wählen Sie Ihren API-Schlüssel, beschränken Sie Ihren Schlüssel und fügen Sie den SHA-1 nach dem Paketnamen ein.
- Press Speichern, ein paar Minuten warten. und deine App sollte Google Maps anzeigen.
- 1. Bereitstellung im Google Play Store über API
- 2. Camera2 API Kompatibilitätsprobleme mit Google Play Store
- 3. Google plus Anmeldung und Google Maps funktionieren nicht, nachdem die App im Play Store veröffentlicht wurde
- 4. "Google Play-Dienste werden aktualisiert" in Google Maps API
- 5. Authentifizierung erforderlich für Google Play veröffentlichte App
- 6. Aktualisieren meiner App - Apple App Store und Google Play Store
- 7. API-Push-Benachrichtigung analysieren, App-Seite im Play Store öffnen
- 8. Google Play/App Store In-App-Kaufrichtlinien
- 9. DexIndexOverflowException Mit Google Maps API
- 10. Get Play Store Ansichten und installiert wie "Google Play Referral Flow" mit Google Analytics Berichterstattung api
- 11. Google Karte nicht im Play Store apk
- 12. Android Google API Keys
- 13. JQuery und Google Maps API
- 14. Google Play-Entwickler-API version_name
- 15. Android veröffentlichte App nicht angezeigt
- 16. Google Maps API im Vergleich zu Google Maps Engine?
- 17. Meine App-Updates werden im Google Play Store nicht angezeigt
- 18. Veröffentlichen mobile Website im App Store und Google Play
- 19. Google Maps API Autorisierungsfehler
- 20. App im Play Store mit Sicherheitsalarm gestartet
- 21. android: google login api und facebook login api kann nicht in app apk verwenden
- 22. Meine App-Updates werden nicht im Google Play Store angezeigt.
- 23. Google Maps API und IE6
- 24. zombie.js und Google Maps API
- 25. Android Google maps api vs JavaScript Google maps api
- 26. App Veröffentlichung im Play Store
- 27. Google maps api und gMapsLatLonPicker
- 28. Google Maps API asynchron
- 29. Zurücksetzen der Versionsnummer im Google Play Store
- 30. Google Maps API Key Referrer für file: ///
Für Facebook benötigen Sie einen Entwicklerschlüssel-Hash und einen Release-Schlüssel-Hash. Sehen Sie sich diesen Link an: https: //developers.facebook.com/docs/android/getting-started # release-key-hash –
gucken meine antwort für google map. Sie müssen SHA-1, das von Google Play generiert wird, ändern, indem Sie das neue SHA-1 in Ihrer Spielekonsole finden und es in Ihre Google Map API hochladen. Es funktioniert wie ein Zauber. –
Verwenden Sie Firebase? – Gopal