1、環境變量android
因爲衆所周知的緣由,在國內訪問 Flutter 有時可能會受到限制,因此在開發以前,須要先配置環境變量git
MacOS:github
編輯 ~/.bash_profile 文件macos
vim ~/.bash_profile
這裏用的是 vim 來編輯,若是不習慣,能夠將 vim 替換爲 openvim
open ~/.bash_profile
添加如下代碼並保存windows
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
而後執行命令xcode
source ~/.bash_profile
Windows:bash
1. 計算機 -> 屬性 -> 高級系統設置 -> 環境變量,打開環境變量設置框;網絡
2. 在用戶變量下,選擇新建環境變量,添加以下的兩個環境變量和值:app
key | value |
FLUTTER_STORAGE_BASE_URL | https://storage.flutter-io.cn |
PUB_HOSTED_URL | https://pub.flutter-io.cn |
2、搭建 Android 開發環境
若是已經安裝過 Androdi Studio,能夠跳過這一節
首先安裝 Androdi Studio,會自帶 Android SDK,但還須要配置環境變量
打開 AS,選擇 Confiure -> SDK Manager
而後就能查看到 SDK 的地址
而後開始配置環境變量
MacOS:
按上面提到的辦法編輯 ~/.bash_profile 文件,將下面的代碼添加到文件中並保存
export ANDROID_HOME=/Users/{YourUserName}/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
記得把 ANDROID_HOME 設置爲上面的 SDK 地址,這裏只保存文件,不要用 source 命令執行
Windows:
咱們須要添加的代碼爲
(替換成 Android SDK 路徑)/tools;(替換成 Android SDK 路徑)/platform-tools
1. 計算機 -> 屬性 -> 高級系統設置 -> 環境變量,打開環境變量設置框
2. 在用戶變量下,選擇 Path,點擊編輯
若是沒有 Path 變量,則新建一個名爲 Path 的用戶變量,直接添加上面的代碼
若是已經存在 Path 變量,則在原有的值後面先加一個分號 ; ,而後將上面的代碼添加到 Path
記得替換 Android SDK 路徑!!!
而後能夠打開 AS,選擇 Confiure -> AVD Manager,按照提示建立一個模擬器
另外,Flutter 還須要安裝 Git 工具,這是開發人員的標配,就再也不贅述
3、搭建 IOS 開發環境
若是已經安裝過 Xcode,能夠跳過這一節
IOS 只能在 MacOS 上開發,能夠到 App Store 下載一個 Xcode(須要 9.0 及以上版本)
App Store 上只有最新版的 Xcode,若是須要歷史版本,能夠訪問蘋果開發者平臺
而後在終端執行如下命令,簽署 Xcode 協議:
sudo xcodebuild -license
安裝完 Xcode 以後,就能夠將 Flutter 編譯成 iOS 安裝包了
4、下載 Flutter SDK
在 Flutter SDK 的下載頁面選擇合適的版本,若是有須要,也能夠訪問 Flutter 的 GitHub 倉庫
將下載的壓縮包解壓到任意目錄下,而後將 Flutter 目錄添加到 Path 環境變量
MacOS:
按上面提到的辦法編輯 ~/.bash_profile 文件,將下面的代碼添加到文件末尾並保存
export PATH=/`pwd`/flutter/bin:$PATH
記得將 `pwd` 改成 Flutter 文件夾所在到目錄!!!
若是拿不許完整路徑,能夠在終端進入 Flutter 目錄,而後經過 pwd 命令查看完整路徑
而後執行命令
source ~/.bash_profile
Windows:
1. 計算機 -> 屬性 -> 高級系統設置 -> 環境變量,打開環境變量設置框;
2. 在用戶變量下,編輯 Path 變量,在原有的值後面先加一個分號 ; ,而後將 Flutter SDK 的完整路徑添加到 Path
⚠️路徑要指向 bin 目錄,好比 Flutter 的目錄是 D:\work\flutter ,是就須要添加 D:\work\flutter\bin
這裏貼一個我本身的 .bash_profile 文件的內容
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export ANDROID_HOME=/Users/wise.wrong/Library/Android/sdk export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH export PATH=/Users/wise.wrong/work/flutter/bin:$PATH
環境變量配好以後,執行如下命令
flutter doctor
只要沒有報錯 command not found: flutter 就說明環境變量配置成功
若是出現其它錯誤,換一個版本的 SDK 試試
// 最開始配置完環境變量以後,運行 flutter doctor 提示 "No such file or directory",百思不解,最後換了一個版本的 SDK 就行了
在網絡很差的時候,有可能會遲遲獲取不到依賴包,若是這時候結束進程,從新執行 Flutter 命令,可能會遇到這個錯誤:
"Waiting for another flutter command to release the startup lock"
刪除 Flutter 目錄下 /bin/cache/lockfile 文件便可
若是打開了Android Studio,還須要重啓 Android Studio
在執行 flutter doctor 以後,可能會有一些 Flutter 的警告或者報錯,按照提示修復便可
好比 flutter doctor 會檢測 Android Studio 和 VS Code 中是否安裝 Flutter 插件
若是沒有安裝,就在對應 IDE 的擴展商店中搜索「Flutter」而後安裝,會同步安裝 Dart 的插件
5、用 VS Code 建立一個 Flutter APP
打開 VS Code,使用快捷鍵 Shift+cmd+P (MacOS) 打開命令面板,輸入「flutter」
選擇 New Project 新建一個項目
這時可能會提示找不到 Flutter SDK,點擊 Locate SDK,選擇 Flutter SDK 的目錄(不須要選擇 bin 目錄)
而後輸入項目名,選擇項目目錄,建立項目
在 VS Code 的底部工具欄可能會看到這樣的提示
這時候須要鏈接設備或者模擬器,能夠在 Android Studio 或者 Xcode 中建立
若是已經建立了模擬器,直接點擊「No Device」選擇模擬器便可
當前的項目結構如圖:
其中 main.dart 是項目的入口文件,入口函數爲 main()
這個頁面中,有 MyApp, MyHomePage, _MyHomePageState 三個組件,他們都是 Widget
Flutter 中的 Widget 至關於 Android 裏的 View,iOS 裏的 UIView
Widget 的渲染語法相似於 JSX,能夠在 _MyHomePageState 組件中看到示例
嘗試把 Text 中的內容改成「Hello World」,而後編譯項目...
能夠經過 VS Code 的調試器直接編譯項目 (F5),也能夠在終端執行 flutter run 啓動項目
在編譯項目以前,首先檢查一下環境變量,在 VS Code 的終端中輸入 env(MacOS),檢查 PATH 變量是否正確
若是 PATH 變量有誤,能夠執行 source ~/.bash_profile , 而後再編譯項目
// 每次啓動 zsh 的時候都須要 source ~/.bash_profile,後來修改了 ~/.zshrc 搞定
若是編譯出現這個錯誤:
Failed to find target with hash string 'android-XX'
這裏的 XX 是 Android API 版本,出錯是由於沒有對應版本的 SDK
打開 Android Studio,選擇 Confiure -> SDK Manager,下載對應 API 版本的 SDK
若是相應的 SDK 都已經安裝了,仍是報上面的錯誤,打開 /android/app/build.gradle
將 android.compileSdkVersion 和 android.defaultConfig.targetSdkVersion 修改成其它已安裝的版本
參考資料:
Flutter 中文網:https://flutterchina.club/setup-macos/
掘金小冊《Flutter 徹底手冊》:https://juejin.im/book/5c5423ef6fb9a049cd54a213