Flutter客戶端打包

到現(xiàn)在為止,我相信小伙伴都能做出一些漂亮的頁(yè)面了,也有了難道朋友面前顯一顯的沖動(dòng)。想要安裝到手機(jī)上,我們必須要進(jìn)行打包,這節(jié)課我們就學(xué)學(xué)Android客戶端如何打包apk。

配置APP的圖標(biāo)

想配置APP的圖片,你需要找到下面的目錄:

項(xiàng)目根目錄/android/app/src/main/res/

進(jìn)入之后你會(huì)看到很多mipmap-為前綴命名的文件夾,后邊的是像素密度,可以看出圖標(biāo)的分辨率。

  • mdpi (中) ~160dpi
  • hdpi (高) ~240dip
  • xhdpi (超高) ~320dip
  • xxhdpi (超超高) ~480dip
  • xxxhdpi (超超超高) ~640dip

將對(duì)應(yīng)像素密度的圖片放入對(duì)應(yīng)的文件夾中,圖片記得用png格式,記得名字要統(tǒng)一,才能一次性進(jìn)行配置。

AndroidManifest.xml 文件

這個(gè)文件主要用來(lái)配置APP的名稱、圖標(biāo)和系統(tǒng)權(quán)限,所在的目錄在:

項(xiàng)目根目錄/android/app/src/main/AndroidManifest.xml

android:label="flutter_app"   //配置APP的名稱,支持中文
android:icon="@mipmap/ic_launcher" //APP圖標(biāo)的文件名稱

生成 keystore

這里的坑挺多的,小伙伴一定要注意。官方寫的非常簡(jiǎn)單,只要在終端運(yùn)行如下代碼就可以成功,但事實(shí)是報(bào)錯(cuò)。

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

報(bào)錯(cuò)截圖如下:

[圖片上傳失敗...(image-9b15be-1587973524324)]

根本找不到這個(gè)目錄,真的很坑,其實(shí)我們只是沒有配置環(huán)境變量。但是為了一個(gè)包配置環(huán)境變量是不知道的。

這時(shí)候可以用下面的命令找到keytool.exe的位置。

flutter doctor -v

這時(shí)候你直接拷貝命令并進(jìn)行輸入,但這里也有個(gè)坑,就是如果文件夾中間帶有空空,你需要用帶引號(hào)擴(kuò)上。

D:\Program\Android'Android Studio'\jre\bin\keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
這就可以了嗎?那你就太天真了,還是會(huì)報(bào)錯(cuò)。

這個(gè)錯(cuò)誤的主要問題是目錄不存在和沒有寫權(quán)限,所以我們要更換一個(gè)有寫權(quán)限的目錄。我們把命令改成了下面的形式。

 D:\Program\Android\'Android Studio'\jre\bin\keytool -genkey -v -keystore D:\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

這時(shí)候就可以創(chuàng)建成功了。你的D盤下面就會(huì)有一個(gè)Jks的文件,記住這個(gè)文件不能共享給任何人。

有了這個(gè)key.jks文件后,可以到項(xiàng)目目錄下的android文件夾下,創(chuàng)建一個(gè)名為key.properties的文件,并打開粘貼下面的代碼。

storePassword=<password from previous step>    //輸入上一步創(chuàng)建KEY時(shí)輸入的 密鑰庫(kù) 密碼
keyPassword=<password from previous step>    //輸入上一步創(chuàng)建KEY時(shí)輸入的 密鑰 密碼
keyAlias=key
storeFile=<E:/key.jks>    //key.jks的存放路徑

我的文件最后是這樣的:

storePassword=123123
keyPassword=123123
keyAlias=key
storeFile=D:/key.jks

這個(gè)工作中也不要分享出去哦,這個(gè)Key就算生成成功了。

配置key注冊(cè)

key生成好后,需要在build.gradle文件中進(jìn)行配置。這個(gè)過程其實(shí)很簡(jiǎn)單,就是粘貼復(fù)制一些東西,你是不需要知道這些文件的具體用處的。

第一項(xiàng):

進(jìn)入項(xiàng)目目錄的/android/app/build.gradle文件,在android{這一行前面,加入如下代碼:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

把如下代碼進(jìn)行替換

buildTypes {
    release {
        signingConfig signingConfigs.debug
    }
}

替換成的代碼:

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

生成apk

直接在終端中輸入:

flutter build apk

這時(shí)候就打包成功了,剩下的安裝過程我就省略,不作過多的介紹了。

ios打包

1.開發(fā)者賬號(hào),配置證書,描述文件,xcode 打包

?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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