Flutter初體驗-安裝與配置(MacOS)

背景

前兩天在安裝flutter的開發(fā)環(huán)境纸俭,搞了挺久吧趣,踩了一些坑和悦,所以寫出來做個總結仁热,希望有意愿學習flutter的小伙伴們在配置開發(fā)環(huán)境的時候能更順利一點榜揖。這里先列出我遇到的幾個坑,若你在安裝過程中也遇到了抗蠢,可以往下看举哟,后文會一一給出解決辦法:

  • APP Store無法下載Xcode
  • pod setup巨慢且失敗
  • flutter run安卓平臺時,遭遇Initializing gradle巨慢且失敗
  • brew update巨慢(但一般只是慢迅矛,能成功)

Flutter的簡單介紹

當下妨猩,一般企業(yè)想開發(fā)一個移動端應用時,必須招聘兩撥人馬(IOS開發(fā)秽褒、Android開發(fā))壶硅,做兩套開發(fā),兼容兩個系統销斟,成本可想而知會有多高庐椒。所以業(yè)界也在尋求一套盡量完善的跨平臺方案能兼容兩個系統。目前主流的跨平臺方案主要是兩種:

  • 基于瀏覽器技術的Hybrid蚂踊;
  • 基于橋接Native組件约谈,如RN、WEEX

當然,這兩種方案開發(fā)出的應用在使用體驗上還遠遠達不到Native的水平窗宇。而Flutter是基于底層統一渲染的措伐,能得到高度一致的跨端效果,其使用體驗直逼Native(網上都這么說军俊,對此本人持保留態(tài)度)侥加。和RN、Weex不同的是粪躬,Flutter并不屬于JS生態(tài)的一個分支担败,它采用的是Dart語言。所以要做Flutter開發(fā)镰官,你還需要學會Dart提前,當然,在初體驗了Dart之后泳唠,發(fā)現其語法還是很簡單的狈网,像Java又像JS,所以笨腥,擁有JS或Java編程能力的話學習Dart應該會比較輕松拓哺。

Flutter安裝(MacOS版)

注:這篇博文會針對安裝過程中遇到的坑做特別說明,安裝過程也可參考Flutter官網脖母。

一士鸥、系統要求

  • 操作系統: macOS (64-bit)
  • 磁盤空間: 700 MB (不包括Xcode或Android Studio的磁盤空間)
  • 工具: Flutter 依賴這些命令行工具:bash, mkdir, rm, git, curl, unzip, which

二、獲取Flutter SDK

  1. 進入Flutter下載渠道:https://flutter.dev/docs/development/tools/sdk/releases?tab=macos#macos下載你所想要安裝的版本(本人下載的v1.5.1_dev)

  2. 解壓安裝包至你想要安裝的目錄

  3. 添加環(huán)境變量谆级,終端進入你的Flutter安裝目錄,輸入pwd以獲取安裝路徑烤礁,繼續(xù)輸入vi ~/.bash_profile,在vim中添加以下文本肥照,{pwd}用你的安裝路徑替代:

export PATH={pwd}/flutter/bin:$PATH
  1. 由于國內墻的限制脚仔,訪問Flutter會有問題,請使用Flutter官方為中國特地搭建的鏡像源建峭,請在上述vim編輯器中繼續(xù)添加:
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

此時~/.bash_profile中的配置如下:


image.png

三玻侥、 終端保存后退出,執(zhí)行flutter doctor命令

doctor.jpg

如上圖亿蒸,flutter會檢查你的配置是否齊全,針對flutter doctor拋出的問題掌桩,我們一個一個解決边锁。

[!] Android toolchain - develop for Android devices
   ? ...
   ? ...

1.根據提示下載Android Studio并安裝
下載地址:https://developer.android.com/studio/index.html

[!] iOS toolchain - develop for iOS devices
   ? ...
   ? ...

2. 下載并安裝xcode波岛,版本要求為v7.2或以上
由于官網安裝教程中給出的鏈接地址是xcode的最新版本茅坛,需要對應新的系統版本,否則不能下載,建議去Apple Developer下載指定版本xcode

溫馨提示:xcode體積較大贡蓖,一般在5.6G左右曹鸠,請保證網絡順暢。

3. 安裝libimobiledevice和ideviceinstaller
根據flutter doctor提示依次執(zhí)行

brew update
brew install --HEAD usbmuxd
brew install --HEAD libimobiledevice
brew install ideviceinstaller

注意斥铺,brew update會非常慢彻桃,請耐心等待,也可以選擇替換Homebrew鏡像源晾蜘,
這是清華大學提供的鏡像:https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/

4. 安裝ios-deploy邻眷,執(zhí)行brew install ios-deploy
5. 安裝CocoaPods
執(zhí)行brew install cocoapods,安裝完成后執(zhí)行pod setup剔交。
注意肆饶,pod setup會很慢,并且一段時間后提示失敗岖常,即使翻墻了也不行驯镊。所以我們需要手動安裝,步驟如下:

  • 5.1 進入CocoaPods的git地址下載或clone竭鞍,若是下載的壓縮文件板惑,請解壓,默認的下載目錄名為Specs-master
  • 5.2 終端執(zhí)行cd ~/.cocoapods/repos進入cocoapods目錄
  • 5.3 另開一個終端笼蛛,cd到你的工程目錄洒放,執(zhí)行pod setup,此時~/.cocoapods/repos目錄下會產生一個master目錄
  • 5.4 Specs-master目錄名字修改為master滨砍,并使用cp命令替換~/.cocoapods/repos下的master目錄

終端再執(zhí)行flutter doctor往湿,發(fā)現關于ios的報錯信息已解決

四. 配置IOS和Android模擬器

  1. IOS
    xcode安裝成功后,在終端輸入open -a Simulator便可打開模擬器惋戏,如圖所示為IOS模擬器截圖:

    image.png

  2. Android
    2.1 Android Studio安裝成功后啟動應用
    2.2 點擊Configure -> AVD Manager -> Create Virtual Device
    2.3 選擇一項設備后點Next
    2.4 為要模擬的Android版本選擇一個或多個系統映像并執(zhí)行download领追,下載成 功后選擇 Next.
    2.5 在 Emulated Performance下, 選擇 Hardware - GLES 2.0 以啟用硬件加速, 完成后點finish,模擬器安裝完成
    2.6 完成后測試模擬器是否正常响逢,雙擊模擬機列表中你安裝的設備绒窑,將彈出模擬器

image.png

image.png

image.png

image.png

image.png

image.png

image.png

五. 配置編輯器(VSCode)

  1. 啟動VSCode
  2. 調用 查看>命令面板
  3. 輸入install, 然后選擇 Extensions: Install Extension
  4. 在搜索框輸入flutter, 在搜索結果列表中選擇 Flutter, 然后點擊 Install
  5. 選擇 OK,重新啟動 VSCode

六. 創(chuàng)建Flutter工程并啟動IOS及Android模擬器

  1. 在VSCode的命令面板中輸入flutter, 選擇 Flutter: New Project舔亭,輸入project name
  2. VSCode會幫你創(chuàng)建一個Flutter項目的骨架些膨,調用 調試 -> 啟動調試
  3. 選擇你要調試的模擬器
  4. 在模擬器中進行調試砖瞧,其中這個骨架的主體業(yè)務代碼在/lib/main.dart

也可以在終端執(zhí)行flutter run進行啟動黔漂,但是要確保VSCode右下角已選擇了一個模擬器設備

如下圖所示:


image.png

image.png
image.png

注:第一次啟動安卓模擬器時,會提示Initializing gradle...這個操作如果不進行翻墻冕杠,可能會失斆础(事實上洼哎,我翻了墻也是失敗的),下載會非常慢。如果你也遇到這個問題噩峦,請按照以下步驟進行配置鏡像:

  1. 進入你的工程目錄锭沟,打開/android/gradle/wrapper/gradle-wrapper.properties,查看distributionUrl配置

    image.png

  2. 手動下載對應的gradle(如上圖的話是gradle-4.10.2-all.zip)并解壓识补,下載地址:http://services.gradle.org/distributions/

  3. 打開Macintosh HD -> 用戶 -> 選擇自己的用戶名族淮,按shift+command+.組合鍵顯示隱藏文件夾,進入.gradle目錄
    :如果你的Finder左側欄沒有Macintosh HD李请,可以點進下載瞧筛,然后按三次command + ??組合鍵,Finder就會進入Macintosh HD导盅,可以把Macintosh HD拉進左側欄中

image.png
  1. 進入.gradle -> wrapper -> dists较幌,可以看到這里有gradle-4.10.2-all目錄了,再進入會有一個挺長的類似hash值的一個目錄白翻,進入此目錄乍炉,將步驟2中解壓的目錄拷貝進來


    image.png
image.png

image.png
  1. 設置Flutter SDK的鏡像
    打開你的Flutter SDK的安裝目錄,進入flutter -> packages -> flutter_tools -> gradle滤馍,打開flutter.gradle文件岛琼,在buildscript > repositories對象下注釋掉google()jcenter(),添加如下鏡像:
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }

如圖:


image.png
  1. 設置工程中的鏡像
    打開你的工程目錄巢株,打開android/build.gradle文件槐瑞,如上個步驟,在buildscript > repositories和allprojects > repositories兩個對象下添加鏡像源阁苞,如圖:


    image.png
  2. 再次嘗試啟動調試困檩,成功!


    image.png

七. Flutter初體驗
Flutter可以通過熱重載進行快速的代碼調試那槽,如果你做過webpack工程悼沿,它就和webpack的熱重載是一樣的。打開lib/main.dart骚灸,修改MyApp類下build方法的home page title糟趾,command + s進行保存后你發(fā)現了什么?無需重新構建甚牲,模擬器上立即出現了效果:

image.png

至此义郑,MacOS上的Flutter安裝和環(huán)境配置已經完成了,我們已經可以開發(fā)Flutter項目并在模擬機上進行調試了丈钙,如果想要在真機上調試魔慷,請參考Flutter官網

PS. 如果你在安裝過程中遇到了更多的問題著恩,或者上述解決方案沒有成功,歡迎和我討論。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末喉誊,一起剝皮案震驚了整個濱河市邀摆,隨后出現的幾起案子,更是在濱河造成了極大的恐慌伍茄,老刑警劉巖栋盹,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異敷矫,居然都是意外死亡例获,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門曹仗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榨汤,“玉大人,你說我怎么就攤上這事怎茫∈蘸荆” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵轨蛤,是天一觀的道長蜜宪。 經常有香客問我,道長祥山,這世上最難降的妖魔是什么圃验? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮缝呕,結果婚禮上澳窑,老公的妹妹穿的比我還像新娘。我一直安慰自己岳颇,他們只是感情好照捡,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著话侧,像睡著了一般栗精。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瞻鹏,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天悲立,我揣著相機與錄音,去河邊找鬼新博。 笑死薪夕,一個胖子當著我的面吹牛,可吹牛的內容都是我干的赫悄。 我是一名探鬼主播原献,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼馏慨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了姑隅?” 一聲冷哼從身側響起写隶,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讲仰,沒想到半個月后慕趴,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡鄙陡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年冕房,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趁矾。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡耙册,死狀恐怖,靈堂內的尸體忽然破棺而出愈魏,到底是詐尸還是另有隱情觅玻,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布培漏,位于F島的核電站溪厘,受9級特大地震影響,放射性物質發(fā)生泄漏牌柄。R本人自食惡果不足惜畸悬,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望珊佣。 院中可真熱鬧蹋宦,春花似錦、人聲如沸咒锻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惑艇。三九已至蒿辙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滨巴,已是汗流浹背思灌。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恭取,地道東北人泰偿。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像蜈垮,于是被迫代替她去往敵國和親耗跛。 傳聞我的和親對象是個殘疾皇子裕照,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344