Flutter 修改生成的 APK 名稱

一、問題場景

我們在開發完 Android 項目後會進行打包操作,如果不進行任何配置的話,生成的包名會是 app-release.apk。我們一般都會配置成我們想要輸出的名稱,但是 Flutter 怎麼配置呢?

二、解決思路

1、如 Android 原生一樣配置

applicationVariants.all { variant ->
    variant.outputs.each{ output ->
        output.outputFile = new File(output.outputFile.parent,output.outputFile.name.replace(".apk","-" + defaultConfig.versionName + ".apk" ))
    }
}

配置完後執行命令:

flutter build apk

...

Gradle build failed to produce an .apk file. It's likely that this file was
generated under /Users/haoyd/proSpace/flutterSpace/driver/build, but the
tool couldn't find it.

報錯 !

2、設置 archivesBaseName

defaultConfig {
    setProperty("archivesBaseName", "driver-v" + flutterVersionName)
}

配置完後執行命令:

flutter build apk

...

Running Gradle task 'assembleRelease'...                                
Removed unused resources: Binary resource data reduced from 728KB to 724KB: Removed 0%
Running Gradle task 'assembleRelease'...                                       
Running Gradle task 'assembleRelease'... Done                     160.6s (!)

Gradle build failed to produce an .apk file. It's likely that this file was
generated under /Users/haoyd/proSpace/flutterSpace/driver/build, but the
tool couldn't find it.

雖然這種方法可以生成指定的 APK 名,但還是會報 Gradle build failed。

三、總結

雖然用第 2 種方法成功生成了 APK 包,但是有錯誤信息的包也不敢輕易使用,在 github 上也調研了一些人提的 issue,總得來說這個算是 Flutter 的一個 bug(要麼不能修改文件名,如果修改完文件名後 tool 就找不到文件了)。

目前 Master 分支可能已經修復這個問題了,但是還沒有出現在穩定版中,只能先手動修改文件名了。

如果什麼時候大家發現這個問題已經修復,或者有什麼其它方法可以解決問題,可以在評論中貼出,我會在文章中做內容更新 !

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章