2011-07-21

在 Android 裡使用 Google Maps - 取得 API Key

在 Android 裡使用 Google Maps 和在 Web 上使用一樣,都需要 Google Maps API Key,不同的地方在於取得的方式,Web 只要用網址就可以取得,Android 需要 MD5。

MD5 來自於 certificate,certificate 就是一個檔案,這個檔案除了用來取得 MD5 外,它還有另外一個重要的功能,就是簽證 APK 檔,APK 檔就是 Android project 最後輸出的檔案,要經過 certificate 簽證之後才能安裝到 Android 系統上,不管是真正的機器或是 Android Emulator 上。

在開發時,只要按個 Run as Android Application 就完成安裝,事實上 Android plugin 幫我們做掉很多事,包括打包 project 成 apk 檔,再用 certificate 簽證,最後安裝到 Emulator 上。

在安裝 Android plugin 時,它就已經幫我們產生一個開發專用的 certificate 檔案,可以從 Eclipse > Window > Preferences > Android > Build > Default debug keystore 這裡找到這個檔案的位置。


然後在 debug.keystore 所在的目錄執行以下的指令,就可以取得這個 certificate 檔案的 MD5。
keytool -list -alias androiddebugkey -keystore <path of debug.keystore> -storepass android -keypass android
最後到 http://code.google.com/intl/zh-TW/android/maps-api-signup.html 輸入 MD5, 就可以取得 Google Maps API Key。

最後三件事:

第一,certificate 檔案是有期限的,當 certificate 到期後,用它取得的 API Key 也會過期而失效。

第二,別拿開發用的 certificate 來簽證 production 上的 apk 檔,要另外產生一個 production 專用的 certificate 檔案,而且要好好的保存它,因為 Android project 的更新就是認這個 certificate 檔案,如果搞丟原 certificate 檔案而用不同的 certificate 來簽證新版本的 Android project,那可是沒辦法 update 舊版本的。

第三,產生 production 用的 certificate 檔案時,期限要抓的夠久,久到這個 Android project 從世界上消失為止,千萬別只用幾個月或一兩年,否則當期限到期後,只能產生新的 certificate 檔案,這樣的話,舊版的 Android project 再也無法更新到新版本,只能移除重新安裝。

沒有留言:

張貼留言