一、環境變量
由於眾所周知的原因,在國內訪問 Flutter 有時可能會受到限制,所以在開發之前,需要先配置環境變量
MacOS:
編輯 ~/.bash_profile 文件
vim ~/.bash_profile
這里用的是 vim 來編輯,如果不習慣,可以將 vim 替換為 open
open ~/.bash_profile
添加以下代碼並保存
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
然后執行命令
source ~/.bash_profile
Windows:
1. 計算機 -> 屬性 -> 高級系統設置 -> 環境變量,打開環境變量設置框;
2. 在用戶變量下,選擇新建環境變量,添加如下的兩個環境變量和值:
key | value |
FLUTTER_STORAGE_BASE_URL | https://storage.flutter-io.cn |
PUB_HOSTED_URL | https://pub.flutter-io.cn |
二、搭建 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 工具,這是開發人員的標配,就不再贅述
三、搭建 IOS 開發環境
如果已經安裝過 Xcode,可以跳過這一節
IOS 只能在 MacOS 上開發,可以到 App Store 下載一個 Xcode(需要 9.0 及以上版本)
App Store 上只有最新版的 Xcode,如果需要歷史版本,可以訪問蘋果開發者平台
然后在終端執行以下命令,簽署 Xcode 協議:
sudo xcodebuild -license
安裝完 Xcode 之后,就可以將 Flutter 編譯成 iOS 安裝包了
四、下載 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 的插件
五、用 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