04、cordova-安卓版本簽名

weixin_34308389發表於2017-03-21

參考:http://stackoverflow.com/questions/26449512/how-to-create-a-signed-apk-file-using-cordova-command-line-interface

一、刪除console外掛:

cordova plugin rm cordova-plugin-console --save

二、修改 platforms/android/AndroidManifest.xml

android:debuggable 屬性改成 false
或 直接刪除 debuggable 屬性

<application android:debuggable="false" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">...</application>
<application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">...</application>

三:獲取未簽名的apk:

android-release-unsigned.apk

cordova build --release android

四、利用keytool工具生成金鑰:

keytool -genkey -v -keystore <keystoreName>.keystore -alias <Keystore AliasName> -keyalg <Key algorithm> -keysize <Key size> -validity <Key Validity in Days>

keytool -genkey -v -keystore test.keystore -alias alias_test -keyalg RSA -keysize 2048 -validity 10000
金鑰庫口令 123456
您的名字與姓氏是什麼?
  [Unknown]:  a
您的組織單位名稱是什麼?
  [Unknown]:  b
您的組織名稱是什麼?
  [Unknown]:  c
您所在的城市或區域名稱是什麼?
  [Unknown]:  shanghai
您所在的省/市/自治區名稱是什麼?
  [Unknown]:  shanghai
該單位的雙字母國家/地區程式碼是什麼?
  [Unknown]:  cn
CN=gu, OU=30wish, O=30wish, L=shanghai, ST=shanghai, C=cn是否正確?
  [否]:  Y

正在為以下物件生成 2,048 位RSA金鑰對和自簽名證書 (SHA256withRSA) (有效期為 10,000 天):
         CN=a, OU=b, O=c, L=shanghai, ST=shanghai, C=cn
輸入 <alias_test> 的金鑰口令
        (如果和金鑰庫口令相同, 按回車):654321
再次輸入新口令:654321
[正在儲存test.keystore]

五、移動 test.keystore

test.keystore(生成目錄 即 執行cmd命令時的目錄)
移動到 platforms\android\build\outputs\apk

六、簽名:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <keystorename <Unsigned APK file> <Keystore Alias name>

D:\projects\Phonegap\Example\platforms\android\build\outputs\apk> 
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore test.keystore android-release-unsigned.apk alias_test

此時android-release-unsigned.apk已經是簽名後的了,重新命名即可。

相關文章