在中國網路環境下使用 Flutter

為加快 Flutter 在中國的下載以及安裝速度,請考慮使用 映象站點映象

使用 Flutter 映象站點

China Flutter User Group (CFUG) 維護著一個 Flutter 簡體中文網站 https://flutter.cn 以及映象。其他映象可在 本文末尾 找到。

設定你的機器使用映象站點

在中國安裝和使用 Flutter,請使用可信的 Flutter 映象。這需要在你的機器上設定兩個環境變數。

以下所有範例均假定你正在使用 CFUG 的映象。

設定你的機器使用映象站點:

此過程需要使用 Powershell。

  1. 在 Powershell 中開啟新視窗,準備執行指令碼。

  2. PUB_HOSTED_URL 設定為映象站點。

    C:\> $env:PUB_HOSTED_URL="https://pub.dev"
    
  3. FLUTTER_STORAGE_BASE_URL 設定為映象站點。

    C:\> $env:FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
    
  4. 從映象站點下載 Flutter 壓縮封裝。在你常用的瀏覽器中訪問並下載 Flutter SDK 壓縮封裝

  5. 建立一個可以安裝 Flutter 的資料夾,然後將資料夾命名為 Flutter。

    請參考使用這樣的路徑:%USERPROFILE%\dev

    C:\> New-Item -Path '`%USERPROFILE%\dev`' -ItemType Directory; cd `%USERPROFILE%\dev`
    
  6. 從 zip 壓縮文件中解壓提取 SDK。

    本範例假定你下載了 Windows 版本的 Flutter SDK。

    C:\> Extract-Archive: flutter_windows_v3.13.0-stable.zip
    
  7. 將 Flutter 新增到你的 PATH 環境變數中。

    C:\> $env:PATH = $pwd.PATH + "/flutter/bin",$env:PATH -join ";"
    
  8. 執行 Flutter doctor 來驗證安裝。

    C:\> flutter doctor
    
  9. 回傳 Flutter 設定 指南並繼續

在本例中,flutter pub get 會在任何設定了 PUB_HOSTED_URLFLUTTER_STORAGE_BASE_URL 的終端中去獲取 flutter-io.cn 上的 package。

在此過程中使用 $env: 設定的環境變數僅適用於當前會話視窗。

要永久設定這些值,

按照下面的範例設定環境變數:

$newPath = $pwd.PATH + "/flutter/bin",$env:PATH -join ";"
[System.Environment]::SetEnvironmentVariable('Path',$newPath,User)
[System.Environment]::SetEnvironmentVariable('PUB_HOSTED_URL','https://pub.dev',User)
[System.Environment]::SetEnvironmentVariable('FLUTTER_STORAGE_BASE_URL','https://storage.googleapis.com',User)
    

此過程需要使用 terminal。

  1. 在 terminal 中開啟新視窗,準備執行指令碼。

  2. PUB_HOSTED_URL 設定為映象站點。

    $ export PUB_HOSTED_URL="https://pub.dev"
    
  3. FLUTTER_STORAGE_BASE_URL 設定為映象站點。

    $ export FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
    
  4. 從映象站點下載 Flutter 壓縮封裝。在你常用的瀏覽器中訪問並下載 Flutter SDK 壓縮封裝

  5. 建立一個可以安裝 Flutter 的資料夾,然後將資料夾命名為 Flutter。

    請參考使用這樣的路徑:~/dev

    $ mkdir ~/dev; cd `~/dev`
    
  6. 從 zip 壓縮文件中解壓提取 SDK。

    本範例假定你下載了 macOS 版本的 Flutter SDK。

    $ unzip flutter_macos_v3.13.0-stable.zip
    
  7. 將 Flutter 新增到你的 PATH 環境變數中。

    $ export PATH="$PWD/flutter/bin:$PATH"
    
  8. 執行 Flutter doctor 來驗證安裝。

    $ flutter doctor
    
  9. 回傳 Flutter 設定 指南並繼續

在本例中,flutter pub get 會在任何設定了 PUB_HOSTED_URLFLUTTER_STORAGE_BASE_URL 的終端中去獲取 flutter-io.cn 上的 package。

在此過程中使用 export 設定的環境變數僅適用於當前會話視窗。

要永久設定這些值,

將這三條 export 指令附加到首選 shell 使用的 *rc*profile 檔案中。類似於下面這樣:

cat <<EOT >> ~/.zprofile
$ export PUB_HOSTED_URL="https://pub.dev"
$ export FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
$ export PATH="$PWD/flutter/bin:$PATH"
EOT
    

此過程需要使用 terminal。

  1. 在 terminal 中開啟新視窗,準備執行指令碼。

  2. PUB_HOSTED_URL 設定為映象站點。

    $ export PUB_HOSTED_URL="https://pub.dev"
    
  3. FLUTTER_STORAGE_BASE_URL 設定為映象站點。

    $ export FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
    
  4. 從映象站點下載 Flutter 壓縮封裝。在你常用的瀏覽器中訪問並下載 Flutter SDK 壓縮封裝

  5. 建立一個可以安裝 Flutter 的資料夾,然後將資料夾命名為 Flutter。

    請參考使用這樣的路徑:~/dev

    $ mkdir ~/dev; cd `~/dev`
    
  6. 從 tar.xz 壓縮文件中解壓提取 SDK。

    本範例假定你下載了 Linux 版本的 Flutter SDK。

    $ tar -xf flutter_linux_v3.13.0-stable.tar.xz
    
  7. 將 Flutter 新增到你的 PATH 環境變數中。

    $ export PATH="$PWD/flutter/bin:$PATH"
    
  8. 執行 Flutter doctor 來驗證安裝。

    $ flutter doctor
    
  9. 回傳 Flutter 設定 指南並繼續

在本例中,flutter pub get 會在任何設定了 PUB_HOSTED_URLFLUTTER_STORAGE_BASE_URL 的終端中去獲取 flutter-io.cn 上的 package。

在此過程中使用 export 設定的環境變數僅適用於當前會話視窗。

要永久設定這些值,

將這三條 export 指令附加到首選 shell 使用的 *rc*profile 檔案中。類似於下面這樣:

cat <<EOT >> ~/.zprofile
$ export PUB_HOSTED_URL="https://pub.dev"
$ export FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
$ export PATH="$PWD/flutter/bin:$PATH"
EOT
    

此過程需要使用 terminal。

  1. 在 terminal 中開啟新視窗,準備執行指令碼。

  2. PUB_HOSTED_URL 設定為映象站點。

    $ export PUB_HOSTED_URL="https://pub.dev"
    
  3. FLUTTER_STORAGE_BASE_URL 設定為映象站點。

    $ export FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
    
  4. 從映象站點下載 Flutter 壓縮封裝。在你常用的瀏覽器中訪問並下載 Flutter SDK 壓縮封裝

  5. 建立一個可以安裝 Flutter 的資料夾,然後將資料夾命名為 Flutter。

    請參考使用這樣的路徑:~/dev

    $ mkdir ~/dev; cd `~/dev`
    
  6. 從 tar.xz 壓縮文件中解壓提取 SDK。

    本範例假定你下載了 ChromeOS 版本的 Flutter SDK。

    $ tar -xf flutter_linux_v3.13.0-stable.tar.xz
    
  7. 將 Flutter 新增到你的 PATH 環境變數中。

    $ export PATH="$PWD/flutter/bin:$PATH"
    
  8. 執行 Flutter doctor 來驗證安裝。

    $ flutter doctor
    
  9. 回傳 Flutter 設定 指南並繼續

在本例中,flutter pub get 會在任何設定了 PUB_HOSTED_URLFLUTTER_STORAGE_BASE_URL 的終端中去獲取 flutter-io.cn 上的 package。

在此過程中使用 export 設定的環境變數僅適用於當前會話視窗。

要永久設定這些值,

將這三條 export 指令附加到首選 shell 使用的 *rc*profile 檔案中。類似於下面這樣:

cat <<EOT >> ~/.zprofile
$ export PUB_HOSTED_URL="https://pub.dev"
$ export FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
$ export PATH="$PWD/flutter/bin:$PATH"
EOT
    

下載基於映象站點的 Flutter SDK 壓縮封裝

需要從映象中的 SDK 版本清單 下載 Flutter, 請將 storage.googleapis.com 替換為你信任的映象站點 URL。在瀏覽器或其他應用程式中使用映象站點(如 IDM 或 Thunder)將提高下載速度。

下面的範例展示了如何將下載 Flutter 的 URL,從 Google 更改為 CFUG 的映象。

要下載 Windows 3.13 版本的 Flutter SDK,你需要將原始 URL:

https://storage.googleapis.com/flutter_infra_release/releases/stable/windows/flutter_windows_v3.13.0-stable.zip 

改為映象 URL:

https://storage.googleapis.com/flutter_infra_release/releases/stable/windows/flutter_windows_v3.13.0-stable.zip 

要下載 macOS 3.13 版本的 Flutter SDK,你需要將原始 URL:

https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_v3.13.0-stable.zip 

改為映象 URL:

https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_v3.13.0-stable.zip 

要下載 Linux 3.13 版本的 Flutter SDK,你需要將原始 URL:

https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_v3.13.0-stable.tar.xz 

改為映象 URL:

https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_v3.13.0-stable.tar.xz 

要下載 ChromeOS 3.13 版本的 Flutter SDK,你需要將原始 URL:

https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_v3.13.0-stable.tar.xz 

改為映象 URL:

https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_v3.13.0-stable.tar.xz 

設定你的機器發布 package

你需要能夠訪問 Google Auth 和 pub.dev 網站,才能將 package 發布到 pub.dev

啟用對 pub.dev 的訪問:

  1. 設定代理。要設定代理,請查閱 Dart 關於代理的文件

  2. 確認 PUB_HOSTED_URL 環境變數未設定或為空。

    $ echo $env:PUB_HOSTED_URL
    

    如果該指令回傳任何值,則取消設定。

    $ Remove-Item $env:PUB_HOSTED_URL
    
  1. 設定代理。要設定代理,請查閱 Dart 關於代理的文件

  2. 確認 PUB_HOSTED_URL 環境變數未設定或為空。

    $ echo $PUB_HOSTED_URL
    

    如果該指令回傳任何值,則取消設定。

    $ unset $PUB_HOSTED_URL
    
  1. 設定代理。要設定代理,請查閱 Dart 關於代理的文件

  2. 確認 PUB_HOSTED_URL 環境變數未設定或為空。

    $ echo $PUB_HOSTED_URL
    

    如果該指令回傳任何值,則取消設定。

    $ unset $PUB_HOSTED_URL
    
  1. 設定代理。要設定代理,請查閱 Dart 關於代理的文件

  2. 確認 PUB_HOSTED_URL 環境變數未設定或為空。

    $ echo $PUB_HOSTED_URL
    

    如果該指令回傳任何值,則取消設定。

    $ unset $PUB_HOSTED_URL
    

瞭解關於發布 package 的更多訊息,請查閱 關於發布 package 的 Dart 文件

已知可信的社群映象站點

Flutter 團隊無法保證任何映象的長期可用性。如果其他映象可用,你可以使用它們。


Flutter 社群 (CFUG)

Flutter 社群 (CFUG) 維護著 flutter-io.cn 映象。它包括 Flutter SDK 和 pub package。

設定你的機器使用映象

請使用以下指令,設定你的機器使用該映象。

macOS、Linux 或 ChromeOS:

export PUB_HOSTED_URL=https://pub.dev;
export FLUTTER_STORAGE_BASE_URL=https://storage.googleapis.com

Windows:

$env:PUB_HOSTED_URL="https://pub.dev";
$env:FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"

向映象反饋

如果你的問題僅在使用 flutter-io.cn 映象時才會出現,請向他們的 反饋


上海交通大學 *nix 使用者組

上海交通大學 *nix 使用者組 維護著 mirror.sjtu.edu.cn 映象。它包括 Flutter SDK 和 pub package。

設定你的機器使用映象

請使用以下指令,設定你的機器使用該映象。

macOS、Linux 或 ChromeOS:

export PUB_HOSTED_URL=https://mirror.sjtu.edu.cn/dart-pub;
export FLUTTER_STORAGE_BASE_URL=https://mirror.sjtu.edu.cn

Windows:

$env:PUB_HOSTED_URL="https://mirror.sjtu.edu.cn/dart-pub";
$env:FLUTTER_STORAGE_BASE_URL="https://mirror.sjtu.edu.cn"

向映象反饋

如果你的問題僅在使用 mirror.sjtu.edu.cn 映象時才會出現,請向他們的 反饋


清華大學 TUNA 協會

清華大學 TUNA 協會 維護著 mirrors.tuna.tsinghua.edu.cn 映象。它包括 Flutter SDK 和 pub package。

設定你的機器使用映象

請使用以下指令,設定你的機器使用該映象。

macOS、Linux 或 ChromeOS:

export PUB_HOSTED_URL=https://mirrors.tuna.tsinghua.edu.cn/dart-pub;
export FLUTTER_STORAGE_BASE_URL=https://mirrors.tuna.tsinghua.edu.cn/flutter

Windows:

$env:PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub";
$env:FLUTTER_STORAGE_BASE_URL="https://mirrors.tuna.tsinghua.edu.cn/flutter"

向映象反饋

如果你的問題僅在使用 mirrors.tuna.tsinghua.edu.cn 映象時才會出現,請向他們的 反饋

主動提出託管新的映象站點

如果你有興趣建立自己的映象,請聯絡 flutter-dev@googlegroups.com 尋求幫助。

社群執行的映象站點

如下清單為目前在國內提供映象的社群以及其映象設定,由於映象的實現方式有所不同,可能會導致資料的滯後等問題。我們製作了一個 映象可用性監控頁面 供參考。

其他已知問題

  • 所有 Flutter 映象目前均不支援/也不應支援上傳 packages 到 pub.dev 網站。這個過程通常需要登入谷歌賬號,而這將是一個無法繞開且複雜的挑戰。
  • 上海大學的映象 暫時只允許校內訪問,故暫未展示,感謝上海大學 Linux 使用者組的同學。
  • 騰訊雲開源映象站使用 TUNA 開源指令碼製作,每天同步一次,經測試,其資料延遲較大並尚未設定有效的回源策略,有待於社群成員進一步驗證。
  • 任何其他與映象相關的問題,請透過 Issue 向我們反饋
  • 部分映象的問題已經特別標識,待映象修復之後移除。

致謝

本頁面列出的映象由提供者分別維護,我們確保上述列出的映象提供方不會對資料進行惡意修改,因為國內網路情況的複雜性和特殊性,我們無法保證映象長期穩定性和訪問速度,請諒解。

如果在映象使用中有任何問題,歡迎透過郵件與我們聯絡:cfug-dev@googlegroups.com。非常感謝所有幫助 Flutter 在國內維護社群基礎設施建設資源的社群和公司,檢視 詳細致謝名單