2009年7月29日 星期三

開發Android時需要準備的金鑰keystore

在開發Android程式時會有兩種情況會需要用到金鑰
A. 要把程式放到實體Android手機上執行時
B. 使用google API時
以下就這兩種情形來說明準備流程

A. 需要準備一組屬於開發者的專有keystore,
1. 先在eclipse裡在project上按右鍵選android tools -> export unsigned app。
2. 使用java提供的keytools (win上是在java安裝目錄下的bin),

keytool -genkey -v keystore developer.keystore -alias developer.keystore -keyalg RSA -validity 20000

上述的developer.keystore可自訂名稱。
3. 使用java提供的Jarsigner工具來替程式(x.apk)簽署金鑰。

jarsigner -verbose -keystore developer.keystore -signedjar x_signd.apk x.apk developer.keystore

4. 測試程式已上金鑰

jarsigner -verify -verbose -certs x_signed.apk

最後再把程式用usb線傳到手機裡安裝即可。

B.當要使用google API時, 要準備一組金鑰來向google申請API的使用,然後把從google那得來的apiKey填到程式裡。若是準備要放在手機上的程式,則要使用開發者個人的金鑰,若是要在模擬機上使用google map等API,則是要使用模擬機的金鑰keystore來申請google apiKey。以下是使用google map API的流程。

1. 找出模擬機對應的debug.keystore,以用來申請google map apiKey,若是要使用在手機上,則跳過1。 win xp上debug.keystore是放在

documents and setting\local settings\application data\android\debug.keystore


2. 利用java的keytool來取得金鑰keystore的MD5 fingerprint,若是開發者金鑰則通常會需要填產生金鑰時的密碼。

keytool -list -keystore x.keystore

3. 把得到的MD5碼填在申請網頁android maps API Key Signup 中的欄位來獲得apiKey。
4. 把apiKey填在res/layout/main.xml裡,

android:apKey="xxxxxxxxxxxxxxxxxx"

5. 開始開發程式。

參考:
http://code.google.com/intl/zh-TW/android/add-ons/google-apis/mapkey.html#getfingerprint

沒有留言:

張貼留言