Android 命令行構(gòu)建和簽署APK

image

環(huán)境

1.JDK

2.SDK

3.Gradle

本文主要是不需要通過 AndroidStudio 完整編譯打包簽名生成apk的過程,可以通過sdk中的apksigner工具完成镣煮,也在和使用Gradle來完成。

首先使用 keytool 生成一個私鑰持搜,keytool 位于 JDK 中的 bin/ 目錄中,打開命令行輸入:

keytool -genkey -v -keystore ruomiz-release-key.jks
-keyalg RSA -keysize 2048 -validity 10000 -alias ruomiz

會在當前目錄生成一個ruomiz-release-key.jks的文件 采用的RSA非對稱加密,標志名為ruomiz,有效期為10000天拍冠。
image

構(gòu)建并簽署APK

命令行形式

1.構(gòu)建apk

打開命令行,切換到項目根目錄簇抵,或者在項目根目錄下打開命令行

gradlew assembleRelease
//gradlew assembleDebug 構(gòu)建調(diào)試的APK

執(zhí)行完成后會在 module 的 build/outputs/apk 中創(chuàng)建一個未簽名的 apk庆杜。這個 apk 暫未簽名,需要用私鑰簽名正压。

image

2.對齊未簽署的APK

使用 zipalign 對齊 APK欣福,在 sdk 的 build-tools 下面,需要把上面生成的 APK 拷貝進去:

zipalign -v -p 4 app-release-unsigned.apk app-release-unsigned-aligned.apk
image

為了方便查看我將 APK 改了名字

image

運行成功以后會生成一個對齊的 APK

3.使用私鑰簽署 APK

apksigner 和 zipalign 都在 sdk 的 build-tools 目錄下焦履,將 keytools 生成的簽名文件( jks 文件)拷貝進來:

apksigner sign --ks ruomiz-release-key.jks --out ruomiz-app-release.apk ziptest-release-unsigned-aligned.apk

最后會生成一個 ruomiz-app-release.apk 文件

image

可以驗證apk是否簽署成功:

apksigner verify ruomiz-app-release.apk

按照上述步驟已經(jīng)生成簽名的APK拓劝。

Gradle簽署 APK

首先需要配置jks的簽名文件,然后將生成的簽名文件(jks)拷貝到項目 module下

在項目模塊 build.gradle 下添加

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("生成的簽名文件.jks")
            storePassword "密鑰庫密碼"
            keyAlias "密鑰標志名"
            keyPassword "密鑰密碼"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            ...
        }
    }
}

簽名文件需要和build.gradle文件在同一目錄嘉裤。

編譯

進入項目所在根目錄shift+鼠標右鍵 郑临,以命令行形式打開,執(zhí)行:

gradlew assembleRelease
image

將會在項目 module 的 build/outputs/apk/ 中生成一個 app-release.apk (module_name-release.apk)的 APK屑宠。這個 APK 文件已經(jīng)使用 build.gradle 文件中指定的私鑰簽署和對齊厢洞。

驗證:

可以將生成的 APK 解壓 然后 META-INF 中 有 CERT.RSA 文件,命令行切換目錄到解壓目錄,執(zhí)行:

keytool -printcert -file META-INF/CERT.RSA

會出現(xiàn)jks的簽名信息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末躺翻,一起剝皮案震驚了整個濱河市丧叽,隨后出現(xiàn)的幾起案子总珠,更是在濱河造成了極大的恐慌狡忙,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镶苞,死亡現(xiàn)場離奇詭異陕靠,居然都是意外死亡迂尝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門剪芥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來垄开,“玉大人,你說我怎么就攤上這事税肪「榷悖” “怎么了?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵寸认,是天一觀的道長签财。 經(jīng)常有香客問我,道長偏塞,這世上最難降的妖魔是什么唱蒸? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮灸叼,結(jié)果婚禮上神汹,老公的妹妹穿的比我還像新娘。我一直安慰自己古今,他們只是感情好屁魏,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捉腥,像睡著了一般氓拼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抵碟,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天桃漾,我揣著相機與錄音,去河邊找鬼拟逮。 笑死撬统,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的敦迄。 我是一名探鬼主播恋追,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼凭迹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苦囱?” 一聲冷哼從身側(cè)響起嗅绸,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沿彭,沒想到半個月后朽砰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尖滚,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡喉刘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了漆弄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片睦裳。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖撼唾,靈堂內(nèi)的尸體忽然破棺而出廉邑,到底是詐尸還是另有隱情,我是刑警寧澤倒谷,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布蛛蒙,位于F島的核電站,受9級特大地震影響渤愁,放射性物質(zhì)發(fā)生泄漏牵祟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一抖格、第九天 我趴在偏房一處隱蔽的房頂上張望诺苹。 院中可真熱鬧,春花似錦雹拄、人聲如沸收奔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坪哄。三九已至,卻和暖如春势篡,著一層夾襖步出監(jiān)牢的瞬間翩肌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工殊霞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留摧阅,地道東北人。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓绷蹲,卻偏偏與公主長得像棒卷,于是被迫代替她去往敵國和親顾孽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361