Flutter開發環境搭建-踩坑指南

仲夏的王國發表於2018-07-30

Flutter開發環境搭建-踩坑指南

Flutter開發環境搭建-踩坑指南

相信有不少同學,一開始就被環境搭建噁心到,從而放棄。或者開始抱怨各種坑多,不願再嘗試。

很多同學可能看了太多關於Flutter的文章,都很想上手,但大多數都死在了搭建環境這一步。沒關係,今天就來點不一樣的,帶你們從0開始,搭建你的Flutter環境。

這種文章本來沒有必要出,但既然坑都踩了,方便大家搜尋快速定位問題,就特意記錄下各種深坑,也是為了方便大家快速定位解決問題,歡迎大家圍觀。

Get started: install

  1. 各個操作平臺需要下載的Flutter

    • 坑位

      1. 打不開(你懂的)
      2. 環境配置
      3. 下完了,該幹啥
      4. 選擇編輯器
    • 填坑

      1. 此處可能需要科學上網提醒: 中國的開發者們,請先看一下這篇 wiki,檢視是否需要對網路環境進行特別設定。需要注意的是,其實這一步才是死的人最多的吧。後面大段描述下各種深坑。
      2. 此處的坑,可能就是一勞永逸的命令列環境變數配置,Mac例子: open .bash_profile點到為止。
      3. 甩出中文社群教程:編寫你的第一個 Flutter App
      4. 編輯器當然選擇vs code,誰用誰知道,Configure Editor請跟隨教程指引,下載安裝vs code 所需要的外掛
  2. Install on macOS

    • 甩出官網安裝指南 macOS
    1. 全文一開頭就告訴你要用到的一些東西和命令。(以下都是命令列操作,跟著教程敲就可以)
    2. 他建議你安裝在 ~/development
    3. 他建議你下載成功後設定PATH,這塊是零時的,你可以試著玩一下,後面直接在 cd ~ 後鍵入open .bash_profile開啟後,把你這段 export PATH=~/development/flutter/bin:$PATH加入, 這塊的 ~/development/flutter/bin這段就是你解壓後的真實路徑,很好找吧?除非你忘了你解壓到哪裡了- -!
    4. 如果。以上幾步你都順利完成了,接下來鍵入 flutter doctor檢查下你還缺少哪些,然後痛苦的install各種失敗在向你招手...(後面繼續講,是哪些錯誤)
  3. You need a doctor

    • 好不容易Flutter也下載好了,環境PATH也設定好啦,doctor,接著說,同學,你的Flutter還需要治療。然後丟擲以下體檢結果:
    • For example:
      Doctor summary (to see all details, run flutter doctor -v):
      [✓] Flutter (Channel beta, v0.5.1, on Mac OS X 10.13.6 17G65, locale zh-Hans-CN)
      [!] Android toolchain - develop for Android devices
          ✗ Android SDK is missing command line tools; download from https://goo.gl/XxQghQ
      [!] iOS toolchain - develop for iOS devices
          ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
          Download at: https://developer.apple.com/xcode/download/
          Or install Xcode via the App Store.
          Once installed, run:
              sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
          ✗ ideviceinstaller is not installed; this is used to discover connected iOS devices.
          To install, run:
              brew install --HEAD libimobiledevice
              brew install ideviceinstaller
          ✗ ios-deploy not installed. To install:
              brew install ios-deploy
          ✗ CocoaPods not installed.
              CocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.
              Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.
              For more info, see https://flutter.io/platform-plugins
          To install:
              brew install cocoapods
              pod setup
      複製程式碼
      • 好在,不管你遇到什麼,醫生都會告訴你如何用指令安裝:
      brew update
      brew install --HEAD libimobiledevice
      brew install ideviceinstaller ios-deploy cocoapods
      pod setup
      複製程式碼
      1. 你就每次按醫生說的下載就行了。
      2. 如果你以為能一帆風順那你就大錯特錯了...
  4. Error:

    • 大多數時候會報這個錯:
    remote: Counting objects: 8152, done.
    remote: Compressing objects: 100% (5441/5441), done.
    error: RPC failed; curl 18 transfer closed with outstanding read data remaining
    fatal: The remote end hung up unexpectedly
    fatal: early EOF
    fatal: index-pack failed
    Error: Failed to download resource "libimobiledevice"
    Failure while executing; `git clone --branch master https://git.libimobiledevice.org/libimobiledevice.git /Users/~/Library/Caches/Homebrew/libimobiledevice--git` exited with 128.
    複製程式碼
    Updating Homebrew...
    ==> Cloning https://git.libimobiledevice.org/libimobiledevice.git
    Cloning into '/Users/~/Library/Caches/Homebrew/libimobiledevice--git'...
    remote: Counting objects: 8152, done.
    remote: Compressing objects: 100% (5441/5441), done.
    error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
    fatal: The remote end hung up unexpectedly
    fatal: early EOF
    fatal: index-pack failed
    Error: Failed to download resource "libimobiledevice"
    Failure while executing; `git clone --branch master https://git.libimobiledevice.org/libimobiledevice.git /Users/~/Library/Caches/Homebrew/libimobiledevice--git` exited with 128.
    複製程式碼
    1. git error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
    2. RPC failed; curl 18 transfer closed with outstanding read data remaining
  5. You need calm down

    • 以上錯誤,不知說你一定會遇到,只是有可能會遇到。
    • 也不是特指以上issue裡的某個依賴程式碼,拉取程式碼失敗,因為你可能在不同的情況遇到類似的問題。
    • 所以,答案也許就在上面這些連結中,但這裡也會給你一些建議,若遇到類似報錯,不妨嘗試
    git config http.postBuffer 524288000
    git config https.postBuffer 524288000
    複製程式碼
    • 如果你試了以上辦法真的,還是下載失敗。最後的祕訣當然不是,重啟電腦,應該是多試幾次
    • 多試幾次
    • 多試幾次
    • 多試幾次 - 意思就是多執行幾次 brew install讓他多去 pull 幾次 github的 master
    • 為什麼不是 pip 或者 ruby,因為真的沒遇到過這倆個出問題,幾乎都是brew
    • 說了那麼多,最後還是在執行了 brew install --HEAD libimobiledevice 13次?還是23次,後終於自動成功了。ᔪ(⁰́◊⁰̀)ᔭ OMG

Finally

  1. 這裡提到的只是印象比較深刻的一些,你會發現很多類似的issue裡很多人都遇到了此類問題,然而每個人都解決方法也不同。你會發現,有些issue依然開著,下面都回復也是絡繹不絕。所以,不放棄,才是最後都解決方案,加油。
  2. 看到這裡,真是被現實打敗了。 光是環境就把人折磨的精疲力盡。但是,如果,這道坎你都過了,那後面還不是水到渠成的事嗎!(逃
  3. 後續還會繼續更新,共勉
  4. Flutter官網教程
  5. Flutter中文網

相關文章