【Android】Google Maps Android API
不覚にもデバック用とリリース用のキーが違うことに全然気づけなかった。。
【原因】
プロジェクトのreleseディレクトリの中のgoogle_maps_api.xmlにもkeyを追加していなかったのが原因でした。
◼︎表示されない原因
バージョンアップのために以前別のMacで作られたkeystoreを使う必要が有る
↓
別のkeysotreのためフィンガープリントが違うことにより
APIキーが有効ではなくなってしまっている
↓
以前のkeystoreのフィンガープリントをAPIキーで追加しても変化がなかった。。
↓
新しくキーを以前のフィンガープリントで作っても変化なし。
結局、
以前のkeystoreに入ってるフィンガープリントで異なるフィンガープリントの
Macで地図を表示させる方法が不明...
memo
・アプリを実機にインストールする際には必ずデジタル署名をしなければいけない。
・アプリのデジタル署名を変更することはできない。
→アプリはパッケージ名で識別され、パッケージ名に対して
デジタル署名で紐付けがされる。(現状紐付けは後から変更できない)
・このデジタル署名に使われるのがデジタル証明書
・keystoreはデジタル証明書を保持しているDBのこと
・apk書き出すときに以前のkeystore
googleはどのアプリがAPIを利用しているか把握する必要がある。(課金にも関わるため)
しかし、ユーザーの手元に置かれるアプリの場合、APIキーを含んだアプリをユーザーは
自由に解析できてしまう。つまりAPIキーを盗まれる可能性がある。
キーを盗まれないようにするのは難しいので、代わりに
そのAPIキーに紐付けられたアプリである証拠
を求めることになった。それが「証明書のフィンガープリント」と「パッケージ名」
あと、
MapActicityでonStopの時に
位置情報の更新をやめるようにしないと
起動中ずっと取得する処理しちゃうよ。
protected void onStop() { super.onStop(); mLocationManager.removeUpdates(listener); }
(2016/1/25)androidのgoogleMapが急に重くなりエラーになった。
→週明け直っていた。原因なぞ。