Android studio( build.gradle)打包之后,保存APK和Mapping文件


線上APP出現(xiàn)BUG問題,但是BUG信息是混淆后的類文件路徑,不利于BUG原因的查詢和解決,首先我們要做的就是保存對(duì)應(yīng)線上版本的混淆Mapping文件。


//針對(duì)多渠道,打包后自動(dòng)將對(duì)應(yīng)APP和Mapping文件備份,防止重復(fù)打包覆蓋。(放在APP下的build.gradle)

/執(zhí)行productFlavors 同名任務(wù)的時(shí)候,就會(huì)執(zhí)行
tasks.whenTaskAdded { task ->
    android.productFlavors.all { flavor ->
        if (task.name.equalsIgnoreCase("assemble" + flavor.name)) {
            task.doLast {
                copyFile();
            }
        }
    }
}

void copyFile(){
    String desktopDir = "$rootDir"
    println(desktopDir)
    def dayTime = new java.text.SimpleDateFormat("yy_MM_dd").format(new Date())
    def secondTime = new java.text.SimpleDateFormat("HH-mm-ss").format(new Date())
    File cacheFile = new File(desktopDir + java.io.File.separator + "cache" + java.io.File.separator + dayTime);
    if (!cacheFile.exists()) {
        cacheFile.mkdirs();
    }
    android.productFlavors.all { flavorTow ->
        copy {
            from "$buildDir" + '/outputs/apk'
            //注意通配符
            include "*" + flavorTow.name + "*.apk"
            into cacheFile.getPath()
            rename {
                flavorTow.name + android.defaultConfig.versionName + "_" + secondTime + ".apk"
            }
        }
        copy {
            from "$buildDir" + '/outputs/mapping/' + flavorTow.name + "/release"
            include "mapping.txt"
            into cacheFile.getPath()
            rename {
                flavorTow.name + android.defaultConfig.versionName + "_" + secondTime + ".txt"
            }
        }
    }
}

打開Studio 內(nèi)置的Proguard,還原錯(cuò)誤信息


調(diào)用UI界面工具
***MacBook-Pro:****ketan$/Users/**/Library/Android/sdk/tools/proguard/bin/proguardgui.sh
//采用命令
retrace.bat -verbose mapping.txt stacktrace.txt > out.txt
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,466評(píng)論 25 708
  • Android插件化基礎(chǔ)的主要內(nèi)容包括 Android插件化基礎(chǔ)1-----加載SD上APKAndroid插件化基...
    隔壁老李頭閱讀 7,211評(píng)論 13 48
  • 最近項(xiàng)目有點(diǎn)閑,考慮到以前的項(xiàng)目沒有做過混淆,只是用了加固軟件進(jìn)行加固,為了安全性,準(zhǔn)備給項(xiàng)目加上,這里做個(gè)總結(jié),...
    想你依然心痛閱讀 787評(píng)論 0 4
  • 1 天色漸晚,斜陽已去,微風(fēng)不再,再一次系緊了斗篷,提了那發(fā)著慘白燈火的紅色燈籠,走過燈火通明的碧色長(zhǎng)廊,絲絲入耳...
    周周Elena閱讀 639評(píng)論 0 4
  • 山有木兮木有枝,心悅君兮君不知。 今天是我家竹馬的婚禮,我很開心。這個(gè)從小保護(hù)我到大的竹馬,從現(xiàn)在開始就要屬于另外...
    帥氣吧啦閱讀 283評(píng)論 0 0