【Android】リリースしたアプリのGoogle MAPが表示されない問題解決【フィンガープリント】
この記事について
先日、AndroidアプリをリリースしてみたらGoogleMAPが表示されない問題に陥りました。
解決方法を探っていく中で色々勉強になったので備忘録として書きます。
同じ問題に直面している方へ参考になれば嬉しいです。
開発初心者向けです。
解決方法
単刀直入にいうと、
GCP上のAPIキーに対して、.aabのフィンガープリント値を設定していたのが原因でした。
GooglePlayConsole上のアプリ署名鍵のフィンガープリント値を設定したらマップが表示されました。
★ アプリ署名鍵のフィンガープリント確認方法
「リリースアプリのフィンガープリント」
★ GCP上のフィンガープリント設定画面
「2. Android アプリに使用を限定に項目を追加する」
ビルド~リリースまでの署名工程
「.aabのフィンガープリントはリリースされた後も同一値なのか?」
「.aabへの署名は、Playストアへアップロード後に変更されていないか?」
そんな疑問を持っていたところに、こんな記事を見つけました。
開発者はアップロード鍵でAAB (Android App Bundle)に署名します。そしてGoogle PlayがAABから最適化された配布用APKを生成してアプリ署名鍵で署名し、その配布用APKをストア上で配布します。
なるほど..。
これをちょっとまとめてみます。
①開発者が「アップロード鍵」で.aabファイルに署名
②.aabをPlayStoreにアップロード
③PlayStoreが.aabから.apkを生成。その際.apkに対して「アプリ署名鍵」で署名
④PlayStoreにて.apkをリリース
①のアップロード鍵による署名が、.keystoreファイルによる署名のことで、
③のアプリ署名鍵で上書きされ、フィンガープリント値も変わる..。
最終的にその署名で世にリリースされるんですね。
(PlayStoreによる署名があるなんて知らなかった)
なので、
GCPへ設定するのは、アプリ署名鍵の署名フィンガープリント値が正解なんですね。
最後に
Androidアプリは2段階の署名方式を採用していることがわかりました。
署名について学べる良い機会でした。
(これがなければたぶんまだ知らない..恥)
わかると楽しいですよね。
そういえば余談ですけど、年々エンジニアをしてきて勉強内容が変わってきたなーと感じてます。
1,2年目は主にフロント機能の実装方法
3,4年目は加えてバックエンドの実装方法&処理速度やセキュリティ意識
5,6年目の今、リリース業務の一部やソース管理について勉強させてもらってます。
個人的にはガリガリコーディングするのが好きなんですけど、いろんなことを身につけると話についていきやすかったりするのでいいかなと思ってます。
Discussion