在中國網路環境下使用 Flutter
為加快 Flutter 在中國的下載以及安裝速度,請考慮使用 映象站點 和 映象
使用 Flutter 映象站點
China Flutter User Group (CFUG) 維護著一個 Flutter 簡體中文網站 https://flutter.cn 以及映象。其他映象可在 本文末尾 找到。
設定你的機器使用映象站點
在中國安裝和使用 Flutter,請使用可信的 Flutter 映象。這需要在你的機器上設定兩個環境變數。
以下所有範例均假定你正在使用 CFUG 的映象。
設定你的機器使用映象站點:
此過程需要使用 Powershell。
-
在 Powershell 中開啟新視窗,準備執行指令碼。
-
將
PUB_HOSTED_URL
設定為映象站點。C:\> $env:PUB_HOSTED_URL="https://pub.dev"
-
將
FLUTTER_STORAGE_BASE_URL
設定為映象站點。C:\> $env:FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
-
從映象站點下載 Flutter 壓縮封裝。在你常用的瀏覽器中訪問並下載 Flutter SDK 壓縮封裝。
-
建立一個可以安裝 Flutter 的資料夾,然後將資料夾命名為 Flutter。
請參考使用這樣的路徑:
%USERPROFILE%\dev
。C:\> New-Item -Path '`%USERPROFILE%\dev`' -ItemType Directory; cd `%USERPROFILE%\dev`
-
從 zip 壓縮文件中解壓提取 SDK。
本範例假定你下載了 Windows 版本的 Flutter SDK。
C:\> Extract-Archive: flutter_windows_v3.13.0-stable.zip
-
將 Flutter 新增到你的
PATH
環境變數中。C:\> $env:PATH = $pwd.PATH + "/flutter/bin",$env:PATH -join ";"
-
執行 Flutter doctor 來驗證安裝。
C:\> flutter doctor
-
回傳 Flutter 設定 指南並繼續
在本例中,flutter pub get
會在任何設定了 PUB_HOSTED_URL
和 FLUTTER_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。
-
在 terminal 中開啟新視窗,準備執行指令碼。
-
將
PUB_HOSTED_URL
設定為映象站點。$ export PUB_HOSTED_URL="https://pub.dev"
-
將
FLUTTER_STORAGE_BASE_URL
設定為映象站點。$ export FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
-
從映象站點下載 Flutter 壓縮封裝。在你常用的瀏覽器中訪問並下載 Flutter SDK 壓縮封裝。
-
建立一個可以安裝 Flutter 的資料夾,然後將資料夾命名為 Flutter。
請參考使用這樣的路徑:
~/dev
。$ mkdir ~/dev; cd `~/dev`
-
從 zip 壓縮文件中解壓提取 SDK。
本範例假定你下載了 macOS 版本的 Flutter SDK。
$ unzip flutter_macos_v3.13.0-stable.zip
-
將 Flutter 新增到你的
PATH
環境變數中。$ export PATH="$PWD/flutter/bin:$PATH"
-
執行 Flutter doctor 來驗證安裝。
$ flutter doctor
-
回傳 Flutter 設定 指南並繼續
在本例中,flutter pub get
會在任何設定了 PUB_HOSTED_URL
和 FLUTTER_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。
-
在 terminal 中開啟新視窗,準備執行指令碼。
-
將
PUB_HOSTED_URL
設定為映象站點。$ export PUB_HOSTED_URL="https://pub.dev"
-
將
FLUTTER_STORAGE_BASE_URL
設定為映象站點。$ export FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
-
從映象站點下載 Flutter 壓縮封裝。在你常用的瀏覽器中訪問並下載 Flutter SDK 壓縮封裝。
-
建立一個可以安裝 Flutter 的資料夾,然後將資料夾命名為 Flutter。
請參考使用這樣的路徑:
~/dev
。$ mkdir ~/dev; cd `~/dev`
-
從 tar.xz 壓縮文件中解壓提取 SDK。
本範例假定你下載了 Linux 版本的 Flutter SDK。
$ tar -xf flutter_linux_v3.13.0-stable.tar.xz
-
將 Flutter 新增到你的
PATH
環境變數中。$ export PATH="$PWD/flutter/bin:$PATH"
-
執行 Flutter doctor 來驗證安裝。
$ flutter doctor
-
回傳 Flutter 設定 指南並繼續
在本例中,flutter pub get
會在任何設定了 PUB_HOSTED_URL
和 FLUTTER_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。
-
在 terminal 中開啟新視窗,準備執行指令碼。
-
將
PUB_HOSTED_URL
設定為映象站點。$ export PUB_HOSTED_URL="https://pub.dev"
-
將
FLUTTER_STORAGE_BASE_URL
設定為映象站點。$ export FLUTTER_STORAGE_BASE_URL="https://storage.googleapis.com"
-
從映象站點下載 Flutter 壓縮封裝。在你常用的瀏覽器中訪問並下載 Flutter SDK 壓縮封裝。
-
建立一個可以安裝 Flutter 的資料夾,然後將資料夾命名為 Flutter。
請參考使用這樣的路徑:
~/dev
。$ mkdir ~/dev; cd `~/dev`
-
從 tar.xz 壓縮文件中解壓提取 SDK。
本範例假定你下載了 ChromeOS 版本的 Flutter SDK。
$ tar -xf flutter_linux_v3.13.0-stable.tar.xz
-
將 Flutter 新增到你的
PATH
環境變數中。$ export PATH="$PWD/flutter/bin:$PATH"
-
執行 Flutter doctor 來驗證安裝。
$ flutter doctor
-
回傳 Flutter 設定 指南並繼續
在本例中,flutter pub get
會在任何設定了 PUB_HOSTED_URL
和 FLUTTER_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
的訪問:
-
設定代理。要設定代理,請查閱 Dart 關於代理的文件。
-
確認
PUB_HOSTED_URL
環境變數未設定或為空。$ echo $env:PUB_HOSTED_URL
如果該指令回傳任何值,則取消設定。
$ Remove-Item $env:PUB_HOSTED_URL
-
設定代理。要設定代理,請查閱 Dart 關於代理的文件。
-
確認
PUB_HOSTED_URL
環境變數未設定或為空。$ echo $PUB_HOSTED_URL
如果該指令回傳任何值,則取消設定。
$ unset $PUB_HOSTED_URL
-
設定代理。要設定代理,請查閱 Dart 關於代理的文件。
-
確認
PUB_HOSTED_URL
環境變數未設定或為空。$ echo $PUB_HOSTED_URL
如果該指令回傳任何值,則取消設定。
$ unset $PUB_HOSTED_URL
-
設定代理。要設定代理,請查閱 Dart 關於代理的文件。
-
確認
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 在國內維護社群基礎設施建設資源的社群和公司,檢視 詳細致謝名單。