Android Studio 打包、生成jks密钥、签名Apk、多渠道打包
一、生成jks簽名文件
1、選擇Build > Generate Signed APK…
2、選擇Create new…
3、選擇簽名文件的路徑,這些信息和eclipse一樣了,填完點擊OK
即可在自定義的路徑中找到jks簽名文件
二、打包簽名APK
1、繼續選擇Build → Generate Signed APK…
選擇之前生成好的jks簽名文件,輸入密碼,點擊“next”
2、選擇APK存放路徑,點擊“finish”,等待打包完成
三、多渠道打包和一鍵完成(全部產品)打包并簽名
1、添加渠道表示標簽
<!-- UMeng 配置--> <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>2、添加渠道
productFlavors {xiaomi {}qihu360 {}baidu {}wandoujia {}}productFlavors.all {flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]}3、添加完之后我們在點擊一下Gradle 的構建按鈕重新構建一下
4、我們通過Java代碼獲取到meta標簽中的value來測試是否成功實現了多渠道打包:
public class MainActivity extends AppCompatActivity {TextView tv_channel;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv_channel= (TextView) findViewById(R.id.main_tv_channel);tv_channel.setText(getApplicationMetaValue("UMENG_CHANNEL"));}private String getApplicationMetaValue(String name) {String value= "";try {ApplicationInfo appInfo =getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);value = appInfo.metaData.getString(name);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return value;} }5、測試代碼添加完畢之后,我們現在點擊AS右側的Gradle,我們此時就可以看到我們剛才添加的xiaomi、qihu360、baidu、wandoujia都出現了,如下圖
6、此時我們雙擊[installBaiduDebug],然后就可以看到如下結果:
7、這說明你沒有鏈接手機,鏈接上手機繼續重新雙擊一下,結果如下
8、這就說明你成功的安裝到你的手機上了
9、到這里我們來做一個小結,這里我們在ManiFest中添加了meta標簽、在gradle(app)中添加了渠道產品對應的渠道名稱 ,最后我們測試多渠道打包,這里還最重要的一點就是我這里沒有讓大家去運行什么命令,全部是讓大家點擊來實現的,其實點擊就是在運行命令:./gradew installXiaomiDebug 效果如下:
10、一鍵完成打包(全部產品)并簽名
我們如果要打包所有的產品,肯定不能像剛才一樣一個一個來打,那么現在來使用另外一個按鈕(命令)assemble
11、然后切換項目到Project視圖,找到app>build>outputs>apk,結果如下我們看到所有版本的apk都有了,有debug版的,debug沒有簽名的,release沒有簽名的。
12、如果我們現在只想打包所有的release版本怎么辦呢?看下面的圖,如果想打release版就雙擊[assembleRelease] ,如果想打所有的debug版本就雙擊[assembleDebug]
13、小測試(我現在把apk目錄下的所有apk都刪除掉,然后只打所有release版本),效果如下:
14、問題(所有的apk生成了,但是沒有簽名是發布不了的,腫莫辦?)
點擊項目架構按鈕,如下:
15、然后點擊app>Signing>+,然后填寫上簽名信息,最后點擊OK
16、我們做的上述操作其實就是在gradle文件中添加如下信息,不信你打開你的gradle看看:
signingConfigs {release {keyAlias '測試程序'keyPassword '證書密碼'storeFile file('/Users/zsl/Downloads/android/appkey/test.keystore')storePassword '簽名密碼'}}17、此時我們把apk下面的apk文件刪掉,然后雙擊[assembleRelease],結果發現還是沒有簽名啊
18、這是因為我們只是配置了簽名信息,但是我們沒有給產品(apk)指定,我們只需要在Gradle文件中添加如下的代碼就 ok了,我們來試試看看
//指定簽名為release signingConfig signingConfigs.release19、我們現在刪掉apk文件夾下所有的apk,然后選擇[assembleRelease]然后點擊run按鈕,如下圖,這里的run會記錄我們最近使用的run腳本名稱,
20、現在我們來看看apk目錄下的安裝包是否簽名:
21、總結
開始我們在manifast文件中添加了meta渠道標簽,然后修改了gradle的文件添加了不同的渠道產品,最后我們在代碼中讀取了meta標簽的value并且顯示在一個textview上,我們做了測試。
接下來我們又添加了簽名配置,最后我們指定了給release版本的簽名,簽名的名稱是release,最后我們終于搞定了一鍵多渠道打包簽名,下一篇給大家分享AS生成jks簽名證書,并且apk簽名。
總結
以上是生活随笔為你收集整理的Android Studio 打包、生成jks密钥、签名Apk、多渠道打包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Android Studio里的Gr
- 下一篇: 用命令行方式获取打包签名文件的SHA1和