公開用のapkでマップを表示する方法を記載します。
7.0用署名付きapk作成のためにV2(Full APK Signature)が登場したことで今までと若干変わったようです。
自分はそのために2週間ほどドハマリしておりました。。。
#1.アプリケーションの署名ファイルを作成する
署名付きビルドを実行して、自アプリケーションのKeyStoreファイル(.jks)を作成します。このときSignature Versionsにて「V2(Full APK Signature)」を選択すると後々登場するフィンガープリントに設定するSHA1の値が違ってくるようです!
今回の投稿では「V2(Full APK Signature)」を選択したバージョンで説明をしております。
#2.apkをGoogole Playにアップする
署名付きビルドを実施後、作成されたapkをGoogle Playへアップします。
アップした時に「アプリの署名」を確認する。
ここで、後々に登場するAPIの設定時に登場するSHA1フィンガープリントですが、keytoolで取得した値ではなくて、Google Playの画面で確認できる「アプリへの証明書」から取得する値を使用すること!
ここでドハマリしました、巷ではAPI取得時のフィンガープリントはKeytoolで取得したものを設定することとなっていましたが、自分の所ではまったくもって駄目でした。公開apkをインストールした時のエラーログをみると求められるフィンガープリントの値が違うらしいことに気づけました。。
#3.APIの取得
Google APIs でGoogle Map用のAPIを取得する。
Android Studio のgoogle_maps_api.xmlのリリース用ファイルに記載されているURLからAPI取得のページにいけます。
google_maps_api.xmlはデバック用、リリース用で別れているので注意すること。
Android Studioの標準設定ではgoogle_maps_api.xml(debug)しか表示されておりません。ちなみに、上記URLはリリース用のファイルにて取得できます。
キーの制限でAndroidを設定。
次にパッケージ名とSHA1証明書のフィンガープリントを設定します。
パッケージ名はAndroid StudioのManifestに記載されているpackage=com.java.xxx.xxxx.xxx.みたいな所ですので、それをコピって下さい。
そして、フィンガープリントですが、これは上記2で記載した値を設定して下さい。Google Playで確認したアプリ署名です。
自分が使いたいAPIの種類を選択します。
今回はGoogle Maps Android APIを選択です。
これで、公開apkでも問題なくGoogle APIが使えるようになっているはずです。
皆さんのご健闘を祈ります!