官方的簽署應用程式APK教學,很長,不想看吧
http://developer.android.com/tools/publishing/app-signing.html
基本上要發佈一個可以安裝到 Android 手機的 APK 是一定要經過簽署(Sign)的。在 Eclipse compile 到手機運行只是 Debug 用的,不能用作發佈。無論是自己私下不經 Play store 發佈或放上 Play store 賣,都必須簽署。至於簽署用的 Key 則可以由自家電腦產生。
1. 先準備兩樣簽署需要的程式 (.exe)
查看 keytool.exe 和 jarsigner.exe,如電腦已經有裝JDK,應該就會放在
C:\Program Files\Java\JDK1.7.0_07\bin 裡頭。
如果沒有keytool.exe 和 jarsigner.exe,就到 http://www.oracle.com/technetwork/java/javase/downloads/index.html 下載JDK 吧。
2. 先在任何地方(如桌面)建立一個文件夾 "keytool",再在 "keytool" 裡建立文件夾 "key"。
3. 在Eclipse 指著Project 點右鍵 Android Tools >Exports unsigned application package,儲存到 keytool 文件夾。此時會有一個未經簽署 (unsigned)的 APK 檔,這刻它是無法被安裝的。
4. 執行 CMD ,並指標 keytool 文件夾位置,如cd C:\users\mrslow\desktop\keytool\
5. 如果已經建立 PATH ,在CMD 打以下Command 產生簽署用的 Key:
keytool -genkey -v -keystore key/my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
然後會詢問輸入密碼,輸入2次確認後還會問一些問題,亂答就好了,不必認真。直到再問
Enter key password for <my-release-key.keystore><RETURN if same as keystore password>:
此時按 Enter 來使用同一組密碼。
你用來 Encrypt 的 Private key 已經產生了,在 key 文件夾內名叫 my-release-key.keystore。
6. 再輸入以下 Command 簽署 APK
jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore key/my-release-key.keystore -signedjar apk_signed.apk my_application.apk alias_name
當中的 my_application.apk 是第3步所產生的 apk 名稱。輸入剛才那組密碼。
7. 簽署好的APK會放在Keytool 內。檢查是否簽署有效可用以下 Command :
jarsigner -verify apk_signed.apk
8. 如果成功會出現 "jar varified" 字樣,如果有 Warning 可以不用理會。
現在把 APK 放進電話裡,應可順利安裝了。
使用過一次後,日後再要簽署 APK 就可在 Eclipse 裡右鍵點選 Android Tools> Export signed application package,然後選回儲存好的 keystore ,就不必再用CMD簽署 APK。
好難懂 如果懂這些的人應該也早就會自己改了..
回覆刪除此留言已被作者移除。
回覆刪除你好,我完成了第4步,而第5步說keytool不是內部命令,請問如何解決?謝謝Sam
回覆刪除謝謝,我試到了,是參考以下與你提示的作比較才了解,所以成功。
刪除keytool -genkey -v -keystore C:\Android\Equator_Bytes.keystore -alias Equator_Bytes -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -keystore C:\Android\Equator_Bytes.keystore C:\Android\Cloudy_Day_unsigned.apk Equator_Bytes
zipalign -v 4 C:\Android\Cloudy_Day_unsigned.apk C:\Android\CloudyDay.apk