美團(tuán)打包工具和v1,v2簽名

公司業(yè)務(wù)渠道較多共有70多個(gè)渠道,打包時(shí)間較長(zhǎng),所以抽時(shí)間研究一下美團(tuán)的多渠道打包,(ps:美團(tuán)打包方案不適合公友盟多渠道統(tǒng)計(jì),如果使用美團(tuán)打包,需要將渠道的名稱寫(xiě)進(jìn)androidMainfest里面meta-data中,Python還在學(xué)習(xí)中,后續(xù)找到好的方案會(huì)更新到博客)


轉(zhuǎn)載出處http://www.itdecent.cn/p/332525b09a88


今天的文章主要介紹的是Android V1、V2簽名包的基本概念和使用場(chǎng)景以及如何十分鐘快速掌握美團(tuán)多渠道打包。

內(nèi)容概覽:

1:美團(tuán)多渠道打包的快速使用和集成

2:Android Studio 2.3版本及以上,V1、V2版本簽名包的相關(guān)說(shuō)明

3:V1、V2版本簽名包的比較以及在本文提供的多渠道打包方案下,兩種簽名包的選擇

準(zhǔn)備工作:

1:Python開(kāi)發(fā)環(huán)境的安裝,美團(tuán)打包工具(下文的準(zhǔn)備鏈接已給大家準(zhǔn)備好了資源,直接下載即可)

2:帶簽名的APK包(也就是我們編寫(xiě)好的代碼,需要生成一個(gè)正式的簽名包)

開(kāi)始體驗(yàn):

說(shuō)起多渠道打包吶,腦海里面最直接的反應(yīng)就是在AS里面直接配置flavor、使用友盟多渠道打包通過(guò)動(dòng)態(tài)替換meta-data里面的value值去實(shí)現(xiàn)等等。

美團(tuán)點(diǎn)評(píng)技術(shù)團(tuán)隊(duì)開(kāi)源的多渠道打包著實(shí)可謂業(yè)界良心、精品楷模。通過(guò)使用Python直接批量修改,1秒打上百個(gè)包那真是So easy。

首先,需要下載給大家提供的準(zhǔn)備連接。下載完畢以后,解壓出來(lái)會(huì)有2個(gè)包,一個(gè)是Python的安裝環(huán)境,一個(gè)是美團(tuán)打包的工具。其中,美團(tuán)的打包工具是一個(gè)壓縮包,解壓之后,有如下文件。

image.png

美團(tuán)打包工具

下載無(wú)誤之后,即可開(kāi)始快速集成美團(tuán)多渠道集成步驟:

步驟1:配置Python環(huán)境

A:首先,我們需要安裝Python的環(huán)境(注意:Python2.X和3.X版本的都可以!兩個(gè)版本都可以!雖然兩個(gè)版本的差異和語(yǔ)法不一樣,但是這里是為了配置打包環(huán)境,所以開(kāi)發(fā)者暫時(shí)先不要糾結(jié)使用那個(gè)版本的問(wèn)題)筆者使用的是python-3.6.3這個(gè)版本,該文件已上傳百度云盤(pán),下載即可。

下載之后,點(diǎn)擊這個(gè)exe文件,點(diǎn)擊之后,Windows下的界面是這樣的(窮逼買(mǎi)不起MAC,見(jiàn)諒)

image.png

記住,下面的 Add Python 3.5 to PATH (紅色箭頭)一定要勾選,一定要勾選。

勾選之后,點(diǎn)擊 Install Now,等待幾秒。OK,安裝完成!

B:打開(kāi)CMD,輸入 python,有以下提示則安裝成功

image.png

但是還是可能會(huì)安裝失敗,如下圖

image.png

沒(méi)事,出現(xiàn)安裝失敗的情況,可能是沒(méi)有勾選Add Python 3.5 to PATH 沒(méi)有勾選或者部分電腦勾選了還是安裝失?。üP者的筆記本就遇到了這種問(wèn)題,勾選了依舊沒(méi)用)

解決辦法:

I:重新安裝Python環(huán)境,記得勾選Add Python 3.5 to PATH。

II:I步驟如果還是不行,那我們需要去環(huán)境變量里面,配置python的環(huán)境變量即可。想快速解決環(huán)境變量的可以點(diǎn)擊下面鏈接當(dāng)然自己百度也行。配置Python環(huán)境

步驟2:

集成好Python的環(huán)境配置以后,打開(kāi)下載好的美團(tuán)打包工具。也就是本文第一張圖,首先,有一個(gè)JavaUtil,這個(gè)是獲取渠道信息的代碼(可以自己Copy到項(xiàng)目,根據(jù)項(xiàng)目需求去集成使用);還有一個(gè)PythonTool文件夾,這個(gè)就是美團(tuán)打包的核心,點(diǎn)進(jìn)這個(gè)文件夾之后,如圖:

image.png

我們只需要把生成好的正式簽名包,copy在這里。(這里只是演示,也就是app-release.apk這個(gè)文件)我們只需要把寫(xiě)好的正式簽名包,copy在這里。注意:必須是同級(jí)目錄。

image.png

然后,點(diǎn)擊MultiChannelBuildTool這個(gè)python文件,點(diǎn)擊一下即可!

image.png

點(diǎn)擊之后,會(huì)生成一個(gè)紫色框的文件夾,我們點(diǎn)進(jìn)去該文件夾,

image.png

MMP,一瞬間生成了這么多個(gè)apk,耗時(shí)半秒不到。

基本的多渠道打包使用就已經(jīng)完成了。

十分鐘不到吧應(yīng)該。是的,已經(jīng)打包完畢了。

問(wèn)題1:如何配置其他的渠道?

info文件夾,目錄下的channel就是用來(lái)存放打包渠道的,注意:多個(gè)渠道之間請(qǐng)用換行隔開(kāi)、多個(gè)渠道之間請(qǐng)用換行隔開(kāi)(不建議使用Windows下面的txt直接打開(kāi),強(qiáng)烈建議使用notepad++等第三方文字編輯工具使用編輯?。。。?/p>

問(wèn)題2:如何獲取渠道信息?

在前面說(shuō)到了,給大家準(zhǔn)備的下載鏈接里面,解壓縮后有個(gè)JavaUtil的包,這里面就是獲取渠道信息的代碼,開(kāi)發(fā)者可以根據(jù)這個(gè)工具類,去獲取渠道號(hào)?;蛘吒鶕?jù)開(kāi)發(fā)需要自己集成使用即可。

關(guān)于V1、V2簽名包的說(shuō)明:

說(shuō)完了美團(tuán)多渠道打包,我們?cè)谡f(shuō)說(shuō)V1、V2簽名包。

如果我們升級(jí)到最新的AS(筆者的是3.0),點(diǎn)擊打包選項(xiàng),細(xì)心的你會(huì)看到這樣的打包界面:

[圖片上傳中...(image-bb78cb-1526440935783-3)]

老版本的AS,只有V1選擇,也就是紫色的框框。但是新版本的AS,默認(rèn)勾選的是V2版本(筆者的AS默認(rèn)是勾選的V2版本)。如果只勾選V2版本,打出來(lái)的簽名包,很多機(jī)型會(huì)直接提示安裝失敗。解決辦法下面會(huì)說(shuō)。

概述:

在Android 7.0中引入了APK Signature Scheme v2,v1是jar Signature來(lái)自JDK。

V1:應(yīng)該是通過(guò)ZIP條目進(jìn)行驗(yàn)證,這樣APK 簽署后可進(jìn)行許多修改,這樣可以移動(dòng)甚至重新壓縮文件。

V2:驗(yàn)證壓縮文件的所有字節(jié),而不是單個(gè) ZIP 條目,因此,在簽名后無(wú)法再更改(包括 zipalign)。正因如此,現(xiàn)在在編譯過(guò)程中,我們將壓縮、調(diào)整和簽署合并成一步完成。好處顯而易見(jiàn),更安全而且新的簽名可縮短在設(shè)備上進(jìn)行驗(yàn)證的時(shí)間(不需要費(fèi)時(shí)地解壓縮然后驗(yàn)證),從而加快應(yīng)用安裝速度。

剛才說(shuō)了,如果只勾選V2版本,打出來(lái)的簽名包,很多機(jī)型會(huì)直接提示安裝失敗。下面就給大家提供兩種解決方案

解決方案一:

V1和V2的簽名使用:

1)只勾選V1簽名并不會(huì)影響什么,但是在7.0上不會(huì)使用更安全的驗(yàn)證方式

2)只勾選V2簽名7.0以下會(huì)直接安裝完顯示未安裝,7.0以上則使用了V2的方式驗(yàn)證

3)同時(shí)勾選V1和V2則所有機(jī)型都沒(méi)問(wèn)題。

解決辦法二:

還有一種快速高效的代碼解決方式,我們可以直接在app的build.gradle的android標(biāo)簽下,加入以下代碼也可以解決只勾選V2版本簽名包部分機(jī)型會(huì)提示安裝失敗的問(wèn)題。

image.png

想說(shuō)的話:

V2簽名包是從Android7.0系統(tǒng)出現(xiàn)的新的簽名機(jī)制,這個(gè)新機(jī)制使得apk的簽名方式更加安全。首先我們應(yīng)該嘗試把V1和V2兩個(gè)選項(xiàng)全部勾選,并盡可能的去使用他們,但是如果全部勾選完畢出現(xiàn)了問(wèn)題,那么我們可以忽略這種新的簽名機(jī)制,只勾選第一個(gè)選項(xiàng)(V1),依舊使用我們之前老的簽名機(jī)制,也就是說(shuō),V1版本更加快速方便。

為什么這里會(huì)提到V1、V2的區(qū)別。因?yàn)檫@里的美團(tuán)多渠道打包只能適用于V1版本的簽名包!??!但是筆者公司的運(yùn)營(yíng)上周五將apk上架應(yīng)用寶(在打包同時(shí)勾選V1、V2且沒(méi)有使用多渠道打包)還是會(huì)提示:

image.png

應(yīng)用寶暫時(shí)不支持V2簽名包

所以,個(gè)人還是推薦使用V1打包方式。因?yàn)榉€(wěn)定,所以放心。

在提一嘴,前不久美圖技術(shù)點(diǎn)評(píng)也實(shí)現(xiàn)了V2版本包的功能,想了解的請(qǐng)移步:新一代美團(tuán)快速打包。集成起來(lái)會(huì)相對(duì)復(fù)雜一些,在一些講究效率和快速開(kāi)發(fā)的團(tuán)隊(duì),正常使用V1簽名包和上面的美團(tuán)打包方式,依舊可以快速高效滿足開(kāi)發(fā)需求保證產(chǎn)出以及安全。

兩者如何取舍,全在開(kāi)發(fā)者個(gè)人主觀能動(dòng)性了。


有問(wèn)題和想法,歡迎私信或者評(píng)論留言,一起學(xué)習(xí),一起進(jìn)步!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容