読者です 読者をやめる 読者になる 読者になる

知行合一

とか言ってみる

【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が急に重くなりエラーになった。
→週明け直っていた。原因なぞ。