簽名打包(命令行)html
一、keytool -genkey -alias android123.keystore -keyalg RSA -validity 20000 -keystore android123.keystoreandroid
二、jarsigner -verbose -keystore android123.keystore -signedjar android123_signed.apk android123.apk(須要簽名的apk) android123.keystoreapp
Android Studio簽名eclipse
一、生成jks文件工具
keytool -genkey -alias android123.keystore -keyalg(與下面key alias名字必須同樣) RSA -validity 20000 -keystore android123.jks(jks文件的名稱,可本身命名)gradle
簽名打包的兩種方式:ui
注:給咱們本身開發的app簽名,就表明着我本身的版權,之後要進行升級,也必需要使用相同的簽名才行。簽名就表明着本身的身份(即keystore),多個app可使用同一個簽名。url
若是不知道簽名是啥意思,請自行百度哦。在eclipse中籤名的方法是:選中工程,郵件選擇"export-android-export android application",spa
一、方式1:經過Android Studio進行簽名:命令行
選中app這個module,選擇菜單欄"Build-Generate signed apk":
彈出以下界面:
上圖中,若是你是第一次使用簽名,就單擊紅框部分建立一個新的簽名;若是你以前有過簽名的文件,就選擇藍框部分進行導入便可。那我就先選擇紅框部分吧:
上圖中,點擊"finish"以後,能夠看到Android Studio的最下方顯示:Gradle正在執行assembleRelease這樣一個任務,以下圖所示:
生成簽名好的apk以後,會彈出提示:
二、方式2:經過命令行的方式進行簽名:
(1)加載Key Store:
咱們先刪掉上面的經過第一種方式所簽名的apk文件。接下來進行第二種方式來簽名,即命令行的方式。
打開Project Stucture圖形化界面:
上圖中,選中app這個module,而後切換到singning標籤欄,緊接着點擊添加,而後生成release簽名信息,緊接着點擊"OK"。接着作以下操做:
上圖中,切換到Build Types標籤,將Signing config選擇爲"release",即將剛剛生成的release簽名信息配置進去。
操做完成以後,咱們能夠看到app這個module的build.gradle文件多出了以下紅框部分的代碼:
而後執行菜單欄的"build-clean Project":
(2)生成realease版本的apk:
緊接着在命令行Terminal輸入以下命令:(AS已經將命令行Terminal集成到了軟件當中)
gradlew assembleRelease
若是運行成功,效果以下:
生成的簽名好的apk在以下位置:
三、爲何要使用gradlew命令而不是gradle命令:
在HelloWorld工程目錄下有一個gradle文件夾,在gradle/wrapper目錄下有一個gradle-wrapper.properties文件,打開它:
上圖表明着HelloWorld這個工程所依賴的gradle的版本信息。上圖的紅線表示,若是咱們的工程中沒有gradle,軟件會根據這個url去下載gradle,終於知道爲啥第一次打開AS時會這麼慢了吧?
若是咱們執行了gradlew命令,其實是執行上面的gradle wrapper,而後找到咱們已經下載好的gradle 2.2.1。若是如今有不少個工程,可是每一個工程的gradle版本都不同,我就必需要將每一個版本的gradle都要配置到環境變量當中,而執行了gradlew命令,就會避免這個麻煩。
eclipse打包
參見官網: http://developer.android.com/tools/publishing/app-signing.html
進入生成工具:
工具幫助:
輸入指令並得到結果:
轉自: http://www.cppblog.com/fwxjj/archive/2010/05/24/116208.html
首先,咱們須要一個keystore,固然已經有了的話就不用這一步了:
cmd下:
進入到jdk的bin目錄,這樣的話,android.keystore文件就會生成在這個目錄下,簽名的時候咱們須要這個文件
C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
輸入keystore密碼:
再次輸入新密碼:
您的名字與姓氏是什麼?
[Unknown]: qiaoling您的組織單位名稱是什麼?
[Unknown]: www.chinaandroid.com
您的組織名稱是什麼?
[Unknown]: www.chinaandroid.com
您所在的城市或區域名稱是什麼?
[Unknown]: haidian
您所在的州或省份名稱是什麼?
[Unknown]: BJ
該單位的兩字母國家代碼是什麼
[Unknown]: 86
CN=qiaoling, OU=www.chinaandroid.com, O=www.chinaandroid.com, L=haidian, ST=BJ, C=86 正確嗎?
[否]: Y
輸入<android.keystore>的主密碼(若是和 keystore 密碼相同,按回車):
其中參數-validity爲證書有效天數,這裏咱們寫的大些10000天。還有在輸入密碼時沒有回顯(儘管輸就是啦) 而且 退格,tab等都屬於密碼內容,這個密碼在給.apk文件簽名的時候須要.
而後簽名:
Eclipse中,右擊須要簽名的工程-->android tools-->export signed application package...
出現下面對話框,選擇須要簽名的工程
next,選擇上面生成的android.keystore文件位置和設置的密碼
next
next,選擇簽名生成文件的位置和名稱