最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

gradle+shell實(shí)現(xiàn)自動(dòng)系統(tǒng)簽名

 更新時(shí)間:2019年08月06日 15:43:06   作者:氺灬丶丷  
這篇文章主要介紹了gradle+shell實(shí)現(xiàn)自動(dòng)系統(tǒng)簽名的相關(guān)資料,需要的朋友可以參考下

 前言

有時(shí)候我們的應(yīng)用需要系統(tǒng)級(jí)的權(quán)限來實(shí)現(xiàn)一些功能(如靜默安裝),這時(shí)候需要給應(yīng)用打上系統(tǒng)簽名,常規(guī)操作打包apk,解壓apk,刪除META-INF中CERT.RSA和
CERT.SF,然后壓縮,用系統(tǒng)簽名工具簽名,一頓操作后可能十分鐘過去了,實(shí)在太過繁瑣,因此我們做了一些簡化,用gradle+shell幫我們實(shí)現(xiàn)自動(dòng)化。

準(zhǔn)備

1.android studio

2.系統(tǒng)簽名文件(signapk.jar、platform.x509.pem、platform.pk8)

3.如果是mac系統(tǒng),還需要libconscrypt_openjdk_jni.dylib這個(gè)文件

4.platform.x509.pem和platform.pk8是對(duì)應(yīng)系統(tǒng)的簽名,不同廠家可能有不同的

 簽名文件,我這里的是Google原生的簽名文件。

5.文件在百度網(wǎng)盤

鏈接: https://pan.baidu.com/s/1_wGxfZcpmfmvCGPLSU-XWw 提取碼: d46k

6.本文以mac系統(tǒng)為例,windows的按著這思路,也差不多

編寫系統(tǒng)簽名腳本

#解壓
unzip -q app-release.apk -d ./release
#刪除cert
rm -f ./release/META-INF/CERT.RSA
rm -f ./release/META-INF/CERT.SF
#壓縮
cd ./release
for file in $(ls)
do
zip -r -q app-release-tmp.apk -xi $file;
done
mv app-release-tmp.apk ../
cd ..
#系統(tǒng)簽名
java -jar signapk.jar platform.x509.pem platform.pk8 app-release-tmp.apk app-sign.apk
#清理臨時(shí)文件
rm -f app-release-tmp.apk
rm -rf ./release

保存為sign.sh,與signapk.jar、platform.x509.pem、platform.pk8、libconscrypt_openjdk_jni.dylib放在同一目錄下,我這里是放在項(xiàng)目的

app/release/sign/目錄下

編寫打包和調(diào)用系統(tǒng)簽名腳本

#需注意配置一下路徑
#home 本shell放置絕對(duì)路徑
#debugDir assembleDebug 輸出路徑
#releaseDir assembleRelease 輸出路徑
#signDir 系統(tǒng)簽名文件路徑
home=/Volumes/Samsung_T5/android/Demo/
debugDir=$home/app/build/outputs/apk/debug/
releaseDir=$home/app/build/outputs/apk/release/
signDir=$home/app/release/sign/
#進(jìn)入工作目錄
cd $home
#創(chuàng)建簽名后的輸出目錄$home/out
if [ ! -d out ];then
    echo "create directory out..."
    mkdir out
    echo "create directory out success"
fi
#打release包
echo "assembleRelease..."
./gradlew assembleRelease
echo "assembleRelease success"
#把release包移動(dòng)到系統(tǒng)簽名目錄
mv -f $releaseDir/app-release.apk $signDir/app-release.apk
echo "system sign apk..."
#進(jìn)入系統(tǒng)簽名目錄,執(zhí)行系統(tǒng)簽名
cd $signDir
./sign.sh
#把簽名好的包移動(dòng)到$home/out中,并用時(shí)間重命名
cd $home
mv $quanyuyueSignDir/app-sign.apk ./out/app-sign-`date +%Y%m%d%H%M`.apk
echo "sign success"

保存上面代碼為package.sh,并放在工程目錄下,我的是$home目錄下。

ps:要打release包還需要配置下app/build.gradle

android {
    ...
    //配置簽名文件
    signingConfigs {
      release {
        storeFile file("你的簽名文件")
        storePassword "你的密碼"
        keyAlias "你的keyAlias"
        keyPassword "你的keyPassword"
      }
    }
    buildTypes {
      release {
        signingConfigs.release
        ...
      }
    }

編寫task調(diào)用package.sh腳本

在app/build.gradle中輸入

task getPackage(type: Exec) {
    executable "sh"
    args "-c", "../packge.sh"
}

這樣,我們只要執(zhí)行下這個(gè)task,就可以獲得系統(tǒng)簽名的apk了。

總結(jié)

以上所述是小編給大家介紹的gradle+shell實(shí)現(xiàn)自動(dòng)系統(tǒng)簽名,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • 前端vscode必備插件推薦(開發(fā)必備)

    前端vscode必備插件推薦(開發(fā)必備)

    VSCode是我們前端開發(fā)的一個(gè)強(qiáng)大的IDE,因此選擇趁手好用的插件能事半功倍,也能能更好地編碼以及獲得更絲滑的開發(fā)體驗(yàn),這篇文章主要給大家介紹了關(guān)于前端vscode必備插件推薦的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • csv文件容錯(cuò)處理方法

    csv文件容錯(cuò)處理方法

    這篇文章主要介紹了csv文件容錯(cuò)處理方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 本地私有化部署DeepSeek模型的詳細(xì)教程

    本地私有化部署DeepSeek模型的詳細(xì)教程

    DeepSeek 模型是一種強(qiáng)大的語言模型,本地私有化部署可以讓用戶在自己的環(huán)境中安全、高效地使用該模型,避免數(shù)據(jù)傳輸?shù)酵獠繋淼陌踩L(fēng)險(xiǎn),同時(shí)也能根據(jù)自身需求進(jìn)行定制化配置,本教程將詳細(xì)介紹如何在本地進(jìn)行 DeepSeek 模型的私有化部署,需要的朋友可以參考下
    2025-02-02
  • chatgpt成功解決Access denied 1020錯(cuò)誤問題(最新推薦)

    chatgpt成功解決Access denied 1020錯(cuò)誤問題(最新推薦)

    從前兩天網(wǎng)上開始一直開著的chatgpt網(wǎng)頁突然打不開了,提示1020錯(cuò)誤,嘗試換了不同代理軟件或者代理地點(diǎn)仍然無法解決,這篇文章主要介紹了chatgpt成功解決Access denied 1020錯(cuò)誤,需要的朋友可以參考下
    2023-05-05
  • vscode使用nuget包管理工具

    vscode使用nuget包管理工具

    這篇文章介紹了vscode使用nuget包管理工具的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 一文弄懂字符集編碼

    一文弄懂字符集編碼

    軟件開發(fā)人員經(jīng)常遇到中文亂碼、軟件不能顯示中文等類似問題,本文主要介紹了一文弄懂字符集編碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • VSCode遠(yuǎn)程連接其他主機(jī)的WSL2的問題

    VSCode遠(yuǎn)程連接其他主機(jī)的WSL2的問題

    這篇文章主要介紹了VSCode遠(yuǎn)程連接其他主機(jī)的WSL2的問題,在 Windows 10 上開啟 SSH Server 服務(wù),設(shè)置 SSH 連接使用的默認(rèn) Shell,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-07-07
  • vscode任務(wù)配置之tasks.json用途說明

    vscode任務(wù)配置之tasks.json用途說明

    這篇文章主要介紹了vscode任務(wù)配置之tasks.json的相關(guān)資料,在VSCode中配置任務(wù)主要涉及到編輯task.json文件,可以定義編譯、構(gòu)建、測(cè)試等任務(wù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • OpenManus本地部署實(shí)戰(zhàn)親測(cè)有效完全免費(fèi)(最新推薦)

    OpenManus本地部署實(shí)戰(zhàn)親測(cè)有效完全免費(fèi)(最新推薦)

    文章介紹了如何在本地部署OpenManus大語言模型,包括環(huán)境搭建、LLM編程接口配置和測(cè)試步驟,本文給大家講解的非常詳細(xì),感興趣的朋友一起看看吧
    2025-03-03
  • 程序員的八種境界,你在哪一境?

    程序員的八種境界,你在哪一境?

    這篇文章主要介紹了程序員的八種境界,你在哪一境?本文同時(shí)探討了為什么中國的程序員總被稱為碼農(nóng)的原因,需要的朋友可以參考下
    2014-09-09

最新評(píng)論

措勤县| 卢氏县| 潜江市| 六枝特区| 车致| 定边县| 杭锦后旗| 郑州市| 桐柏县| 手游| 巴青县| 奉化市| 萝北县| 九寨沟县| 三门县| 额济纳旗| 阳东县| 嘉义市| 丽水市| 金溪县| 曲水县| 永靖县| 碌曲县| 淄博市| 海口市| 惠州市| 沈丘县| 南昌市| 电白县| 丹阳市| 白城市| 始兴县| 昭觉县| 应城市| 大庆市| 阜新| 基隆市| 夏邑县| 读书| 安顺市| 多伦县|