打包分為兩種方式:
- 手動打包
- 自動打包
- 手動打包主要就是全程靠按鈕去點擊下一步下一步歪今,如圖所示
這樣打包如果是單個包沒什么問題嚎幸,如果是多渠道,就需要打很多次寄猩,很累嫉晶,效率低下。
- 再來看看自動打包田篇,簽名替废,一鍵完成多個渠道包。
- 配置簽名信息
在項目的Project Structure 里面新建一個Signing項
Name:自己定義一個名字泊柬,Key Alias:簽名證書的別名 Key Password:別名對應(yīng)的密碼椎镣。Store File: 簽名證書文件,我這里是用AS創(chuàng)建的jks文件兽赁。Store Password:證書對應(yīng)的密碼状答。點擊OK之后,build.gradle里面就會生成對應(yīng)的代碼:
signingConfigs {
mySignConfig {
keyAlias 'xiong'
keyPassword 'lyan2015'
storeFile file('../key/cb_keystore.jks')
storePassword 'lyan2015'
}
}
storeFile 后面的路徑刀崖,如果點擊后面的文件選擇則是絕對路徑惊科。我這里把它改成了相對路徑,是為了方便多臺設(shè)備協(xié)作開發(fā)亮钦。
- 為buildType配置所用簽名
完成之后馆截,build.gradle 里面會生成這樣的代碼:
buildTypes {
release {
、蜂莉、蜡娶、
、映穗、窖张、
、男公、荤堪、
signingConfig signingConfigs.mySignConfig
}
}
這就表示合陵,打包release的時候使用的是 mySignConfig 這個簽名配置。也就意味著我們可以增加多個簽名配置澄阳,隨意選擇使用拥知。同樣我們也可以有多個buildTypes。
-
開始正式打包操作
如上述配置完成之后碎赢,我們build一下我們的項目代碼低剔,然后在AS右上角點開
image
可以看到這里有很多操作,其中 build目錄就是打包的操作肮塞,assemble這個詞是組裝的意思襟齿。我們點擊 assembleRealease
就是打包 buildType 為 release 的版本,雙擊之后 枕赵,會在項目app/build/output/apk/ 目錄下生成release版本的apk文件猜欺。
image
好了,至此已經(jīng)完成了apk的打包簽名拷窜,可以把a(bǔ)pp-release.apk拿去耍了开皿。 多渠道打包
首先在AndroidManifest.xml文件中配置meta-data,添加渠道表示標(biāo)簽篮昧。
<meta-data android:name="CHANNEL" android:value="${CHANNEL_VALUE}" />
這是以變量的形式占位赋荆,然后去build.gradle文件中給這個變量賦值
android{
、懊昨、窄潭、
、酵颁、嫉你、
productFlavors {
xiaomi {}
qihu360 {}
wandoujia {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
}
}
上面代碼表示,我們配置了三個渠道躏惋,xiaomi均抽,qihu360,wandoujia其掂。然后build項目,看右邊的gradle projects 視圖
里面多了三個渠道的打包項潦蝇,assembleQihu360, assembleWandoujia, assembleXiaomi款熬。
我們可以分別雙擊某一個來生成對應(yīng)渠道的apk,如雙擊 assembleQihu360,分別生成debug,release兩個版本攘乒。
在大多數(shù)的情況下贤牛,我么需要同時打包所有渠道的release包,那么就直接雙擊
assembleRelease
至此则酝,整個多渠道一鍵打包殉簸,自動簽名過程就講完了
簽名證書修改別名及密碼
jdk的bin目錄下有個 keytool.exe, 如果我們配置了jdk環(huán)境變量闰集,那么隨便在哪個路徑都可以使用 keytool命令。
進(jìn)入簽名證書文件 jks 所在的目錄
- 修改別名 alias
keytool -changealias -keystore cb_keystore.jks -alias sadfsaf -destalias xiong
把別名 由 sadfsad 改成 xiong
- 修改alias的密碼
keytool -keypasswd -keystore cb_keystore.jks -alias xiong
這一步執(zhí)行后會提示輸入keystore密碼(即秘鑰庫口令)般卑,alias 新密碼武鲁。
- 修改keystore密碼
keytool -storepasswd -keystore cb_keystore.jks
這一步同樣會先提示輸入 秘鑰庫口令,就是原keystore密碼蝠检,然后會提示輸入新的原keystore密碼沐鼠。