先運(yùn)行下,看當(dāng)前flutter 是否支持web項(xiàng)目, 如果沒(méi)有enable-web: true 則輸入 flutter config --enable-web
創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供曲江企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為曲江眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
這時(shí)候項(xiàng)目中就包含了web文件夾.
輸入 flutter build web 就可以在build文件夾中生成web文件, 將它放到到tomcat或者其他容器就能訪問(wèn)了!
附上項(xiàng)目的測(cè)試連接:
參考:
android打包教程:
1、在AndroidManifest中確定app的名字:
2、在app/build.gradle中設(shè)置安卓兼容版本targetSdkVersion和最低版本minSdkVersion,還有編譯版本compileSdkVersion,還有設(shè)置包名applicationId,一般不用設(shè)置,除非你是要變更
4、添加啟動(dòng)圖標(biāo),圖標(biāo)資源文件的位置如下:
看到這個(gè)文件的時(shí)候,就說(shuō)明創(chuàng)建證書(shū)成功了
6、配置項(xiàng)目證書(shū)
在android目錄下新建一個(gè)file文件key.properties,然后填寫(xiě)證書(shū)的信息如下:
7、啟用混淆
在app路徑中添加proguard-rules.pro文件(這個(gè)百度下就好了)
8、構(gòu)建flutter build apk
Flutter 項(xiàng)目雖說(shuō)是跨平臺(tái)項(xiàng)目,但是項(xiàng)目的名稱(chēng)還是需要在不同的平臺(tái)設(shè)置,不同平臺(tái)的設(shè)置位置是:
1、 Android 項(xiàng)目名字配置是在 android/app/src/main/AndroidManifest.xml 文件中的 application 下的 android:label 。如下圖所示:
2、 iOS 項(xiàng)目名字配置是在 ios/Runner/Info.plist 文件中的 dict 下的 keyCFBundleName/key stringtestapp/string 。如下圖所示:
Flutter 項(xiàng)目雖說(shuō)是跨平臺(tái)項(xiàng)目,但是項(xiàng)目的 Logo 圖標(biāo)還是需要在不同的平臺(tái)設(shè)置,不同平臺(tái)的設(shè)置位置是:
1、 Android 項(xiàng)目 Logo 配置是在圖片放置在 android/app/src/main/res 下的對(duì)應(yīng)目錄下:
mipmap-mdpi : 48 _ 48
mipmap-hdpi : 72 _ 72
mipmap-xhdpi :96 _ 96
mipmap-xxhdpi :144 _ 144
mipmap-xxxhdpi :192 * 192。如下圖所示:
然后,在 android/app/src/main/AndroidManifest.xml 路徑下的 AndroidManifest.xml 文件中的 android:icon 。如下圖所示:
2、 iOS 項(xiàng)目 Logo 的配置是在 ios/Runner/Assets.xcassets/AppIcon.appiconset 文件下,直接更換圖片,名字不要改動(dòng) 。如下圖所示:
1、使用 cd 指令進(jìn)入項(xiàng)目(testapp)的根目錄(方便后面操作),如下圖所示:
填寫(xiě)對(duì)應(yīng)的值,如下圖所示:
1、 build.gradle 文件的位置,如下圖所示:
2、在 build.gradle 中配置 key.propreties 的全局變量,
如下圖所示:
3、 build.gradle 文件中進(jìn)行簽名配置。
如下圖所示:
注意: buildTypes 中的 signingConfig signingConfigs.debug 可以變更為 signingConfig signingConfigs.release ,這樣在打包的時(shí)候,直接可以 flutter build apk ,否則就執(zhí)行 flutter build apk --release 。如圖所示:
1、 cd 進(jìn)入功能(testapp) 的根目錄,如下圖所示:
2、執(zhí)行 flutter build apk 指令,如下圖所示:
我們打包成功, 生成的 apk 包在 build/app/outputs/apk/release/app-release.apk 目錄下,如下圖所示:
1、將真機(jī)通過(guò) USB 鏈接到電腦上,如下圖所示:
2、然后,在項(xiàng)目的根目錄執(zhí)行 flutter install , 如果出現(xiàn)電腦同時(shí)有多個(gè)設(shè)備時(shí),就執(zhí)行 flutter install -d deviceid 。如下圖所示:
3、設(shè)備的安裝過(guò)程如下:
1、必須一個(gè) Xcode 開(kāi)發(fā)工具
2、如果是 Window 的電腦,請(qǐng)安裝 Mac 虛擬系統(tǒng),進(jìn)行安裝 Xcode .
1、打開(kāi)目錄下的 Runner.xcworkspace 工程。
如下圖所示:
2、在 ios 工程中配置 Signing Capabilities , 如下圖所示:
1、進(jìn)入項(xiàng)目的根目錄
2、打包指令 flutter build ios --release
如圖所示:
3、使用 Xcode 工具進(jìn)行打包
如圖所示:
注意:進(jìn)行該步驟,必須執(zhí)行 flutter build ios --release 否則會(huì)報(bào)錯(cuò)。
打包成功,如下圖所示:
基于flutter版本1.9.1,低版本區(qū)別對(duì)待。
lib目錄,libflutter.so文件,三個(gè)目錄armeabi-v7a,x86_64和x86,支持arm平臺(tái)32和x86的32和64。
asset目錄,新增flutter_asset目錄,三個(gè)文件,dart產(chǎn)物。
lib目錄,libflutter.so文件,兩個(gè)目錄armeabi-v7,arm64-v8a,支持arm平臺(tái)32和64。
asset目錄,新增flutter_asset目錄。
在release模式,libapp.so替代flutter老版本的一些dart產(chǎn)物,如下。
flutter命令打包生成產(chǎn)物,flutter命令腳本會(huì)調(diào)用dart命令。
dart的編譯模式:
kernel snapshot 模式,開(kāi)發(fā)階段,isolate_snapshot_data,vm_snapshot_data,kernel_blob_bin是業(yè)務(wù)數(shù)據(jù)。
core jit,
生產(chǎn)階段,dart的一種二進(jìn)制模式,這是一種aot模式,vm和isolate。
任重而道遠(yuǎn)