2016年11月27日 星期日

[android] 透過android studio sign apk

為了在google 商店上架apk, 必須使用簽署過的apk,
在Android Studio 上面有提到過如何build出簽署過的apk,
但似乎沒有提到如何簽署現有的apk.
方法很簡單 ,只有兩個步驟
1. 在windows執行cmd進入控制台模式,執行以下命令
keytool -genkey -alias guangyawli -keyalg RSA -validity 40000 -keystore mykey.keystore
這支程式通常放在Android Studio安裝目錄底下的 \jre\bin,
如果還是找不到,就必須要安裝JDK了.
執行將依序詢問以下問題:
================================================================
輸入金鑰儲存庫密碼:
您的名字與姓氏為何?
  [Unknown]:  guangyaw li
您的組織單位名稱為何?
  [Unknown]:  personal
您的組織名稱為何?
  [Unknown]:  personal
您所在的城市或地區名稱為何?
  [Unknown]:  Taiwan
您所在的州及省份名稱為何?
  [Unknown]:  Taiwan
此單位的兩個字母國別代碼為何?
  [Unknown]:  TW
CN=guangyaw li, OU=personal, O=personal, L=Taiwan, ST=Taiwan, C=TW 正確嗎?
  [否]:  y

輸入 的金鑰密碼
        (RETURN 如果和金鑰儲存庫密碼相同):
===============================================================
填寫完之後就會產生個人的簽署用的key

參數說明:
-genkey: 產生key
-alias: 別名,在範例中使用guangyawli
-keyalg RSA: 生成文件使用RSA演算法
-validity 40000: 表示有效期限4000天
-keystore : 後面接著就是檔案名稱,沒有指定路徑,就是產生在執行目錄中

2. 接著執行
jarsigner -verbose -keystore mykey.keystore -signedjar sign_target.apk target.apk guangyawli
-verbose: 簽署過程的資訊都會顯示在控制台視窗中
-keystore: 指定使用的簽署文件
-signedjar: 在此範例中就是簽署target.apk後產生sign_target.apk,
guangyawli: 最後面填寫的是此文件的別名,對應到產生key時-alias參數

經過簽署之後的apk就能夠正式在google商店上架了





沒有留言: