使用 Flutter 開發(fā)桌面應(yīng)用
官方地址?和?中文地址?的關(guān)系(中文網(wǎng)站一般都是以.cn結(jié)尾):
https://flutter.dev/xxx?->?https://flutter.cn/xxx
https://docs.flutter.dev/xxx?->?https://flutter.cn/docs/xxx
https://storage.googleapis.com/xxx?->?https://storage.flutter-io.cn/xxx
環(huán)境準(zhǔn)備
在中國網(wǎng)絡(luò)環(huán)境下使用 Flutter
在開始菜單的搜索功能鍵入env唉堪,選擇編輯系統(tǒng)環(huán)境變量
在 用戶變量的 Path 中增加flutter\bin目錄的完整路徑
運(yùn)行where flutter dart凹嘲,確保flutter\bin目錄在最前面
運(yùn)行flutter doctor,只需要?解決與你需求相關(guān)的問題即可斗这,不需要全部都處理掉
[可選] 創(chuàng)建 Android 模擬器备禀,啟用?硬件加速三件套:GLES、Skia 渲染洪添、Hypervisor
下載?Visual Studio,安裝C++ 桌面開發(fā)工作負(fù)載及其所有默認(rèn)組件
第一個(gè)桌面應(yīng)用
創(chuàng)建新的 Flutter 項(xiàng)目
Flutter build release channels
啟用桌面版支持:flutter config --enable-windows-desktop
[可選] 安裝一個(gè)支持 Flutter 的?IDE干奢,例如 AS,并且需要安裝 Flutter 和 Dart 插件
運(yùn)行flutter devices盏袄,如果有?Windows (desktop)?代表桌面已成功啟用
切換 flutter 到?beta?分支:git checkout -b beta remotes/origin/beta
創(chuàng)建一個(gè) Flutter 項(xiàng)目忿峻,勾選?Windows?平臺,沒有的話代表你的環(huán)境有問題
選擇目標(biāo)設(shè)備后點(diǎn)擊 Run 即可編譯辕羽、運(yùn)行逛尚,頁面代碼在lib/main.dart
bash
flutter upgrade # 更新 Flutter SDK 和依賴包
flutter channel? ? ? ? # 列出所有渠道(分支),并標(biāo)出當(dāng)前使用的渠道
flutter channel beta? ? # 切換到 beta 渠道:master刁愿、dev黑低、beta、stable
flutter create myapp? ? # 在 myapp 目錄中酌毡,創(chuàng)建一個(gè)包含桌面支持的新應(yīng)用
flutter run -d windows? # 構(gòu)建 debug 版本并啟動(dòng)克握,注意:桌面應(yīng)用不支持熱重載
flutter build windows? # 構(gòu)建 release 版本(但是同樣并不會(huì)打包)
發(fā)布桌面應(yīng)用
構(gòu)建壓縮包文件
打包需要的文件在目錄?\module_bqt\build\windows\runner\(Debug or Release)?中,文件結(jié)構(gòu)如下:
bash
Release
│──module_bqt.exe
│──flutter_windows.dll
│──msvcp140.dll? ? ? ? ? # [非必須] 本機(jī)代碼的 C++ 標(biāo)準(zhǔn)庫枷踏,需要從 C:\Windows\System32 拷貝
│──vcruntime140.dll? ? ? # [非必須] 本機(jī)代碼的 C++ 運(yùn)行庫菩暗,需要從 C:\Windows\System32 拷貝
│──vcruntime140_1.dll? ? # [非必須] 本機(jī)代碼的 C++ 運(yùn)行庫,需要從 C:\Windows\System32 拷貝
└──data
│? │──app.so
│? │──icudtl.dat
│? └──flutter_assets? # [非必須] 包括兩個(gè)字體文件旭蠕、版權(quán)說明
將以上所有文件打成一個(gè) rar 后發(fā)給別人停团,別人即可正常運(yùn)行。
生成證書 csr掏熬、crt佑稠、pfx
bash
openssl version # 【OpenSSL 1.1.1h 22 Sep 2020】確保安裝了OpenSSL
where openssl? ? ? # 【\Git\mingw64\bin\openssl.exe】也可以使用 Git 自帶的
openssl genrsa -out bqt_rsa.key 2048? ? ? ? ? ? ? ? # 生成 2048 位的 rsa 私鑰
openssl req -new -key bqt_rsa.key -out bqt_csr.csr? # 生成證書簽名請求(CSR)文件
openssl x509 -in bqt_csr.csr -out bqt_crt.crt -req -signkey bqt_rsa.key -days 9999? # 生成 .crt 文件
openssl pkcs12 -export -out bqt_pfx.pfx -inkey bqt_rsa.key -in bqt_crt.crt? ? ? ? ? # 生成 .pfx 文件
生成 CSR 文件需要輸入的信息
Country:國家代碼,中國為?CN
State or Province Name:州或省名稱旗芬,GuangDong
Locality Name (eg, city):城市舌胶,ShenZhen
Organization Name (eg, company):組織(公司),Tencent
Organizational Unit Name:組織單位(部門)疮丛,IT
Common Name:名字幔嫂,需要輸入與服務(wù)器關(guān)聯(lián)的域名,或者是您服務(wù)器的公共 IP 地址誊薄,baiqiantao.github.io
Email:郵箱履恩,baiqiantao@sina.com
A challenge password:至少 4 位的密碼,1234
生成的幾個(gè)文件簡介
.csr:Certificate?Signing?Request呢蔫,證書簽名請求文件切心,純文本文件,可以?在線驗(yàn)證
.crt:Certificate,證書文件绽昏,純文本文件扬霜,可以雙擊打開查看證書信息(包含.csr中的所有信息)
證書信息:此 CA 根證不受信任。要啟用信任而涉,請將該證書安裝在受信任的根證書頒發(fā)機(jī)構(gòu)存儲(chǔ)區(qū)中
頒發(fā)者著瓶、頒發(fā)給、證書路徑:baiqiantao.github.io
.pfx:Personal Information Exchange啼县,個(gè)人信息交換文件材原,二進(jìn)制文件,可以雙擊打開證書導(dǎo)入向?qū)?/p>
向?qū)Э梢詭椭銓⒆C書季眷、書信任列表從磁盤復(fù)制到證書存儲(chǔ)余蟹。證書存儲(chǔ)是保存證書的系統(tǒng)區(qū)域
由證書頒發(fā)機(jī)構(gòu)頒發(fā)的證書是對你身份的確認(rèn),它包含用來保護(hù)數(shù)據(jù)或建立安全網(wǎng)絡(luò)連接的信息
安裝后子刮,我們的證書就是Trusted 受信任的 Root Certification Authorities 機(jī)構(gòu)頒發(fā)的證書了
發(fā)布桌面應(yīng)用
若要在 Windows 上分發(fā)你的應(yīng)用威酒,則需要一個(gè) Windows 能夠識別的證書簽名。上面我們已經(jīng)生成了一個(gè)自簽名的.pfx證書挺峡,安裝應(yīng)用之前葵孤,我們需要在本地安裝.pfx證書。
這一部分的內(nèi)容太過復(fù)雜橱赠,而且官方文檔已經(jīng)明確說明:......不建議發(fā)布桌面應(yīng)用尤仍!所以僅簡單記錄