在中国网络环境下使用 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.flutter-io.cn"
-
将
FLUTTER_STORAGE_BASE_URL
设置为镜像站点。C:> $env:FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
-
从镜像站点下载 Flutter 压缩包。在你常用的浏览器中访问并下载 Flutter SDK 压缩包。
-
创建一个可以安装 Flutter 的文件夹,然后将文件夹命名为 Flutter。
请参考使用这样的路径:
%USERPROFILE%dev
。C:> New-Item -Path '`%USERPROFILE%dev`' -ItemType Directory; cd `%USERPROFILE%dev`
-
从 zip 压缩文件中解压提取 SDK。
本示例假定你下载了 Windows 版本的 Flutter SDK。
C:> Expand-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.flutter-io.cn',User)
[System.Environment]::SetEnvironmentVariable('FLUTTER_STORAGE_BASE_URL','https://storage.flutter-io.cn',User)
此过程需要使用 terminal。
-
在 terminal 中打开新窗口,准备运行脚本。
-
将
PUB_HOSTED_URL
设置为镜像站点。export PUB_HOSTED_URL="https://pub.flutter-io.cn"
-
将
FLUTTER_STORAGE_BASE_URL
设置为镜像站点。export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
-
从镜像站点下载 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.flutter-io.cn"
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
export PATH="$PWD/flutter/bin:$PATH"
EOT
此过程需要使用 terminal。
-
在 terminal 中打开新窗口,准备运行脚本。
-
将
PUB_HOSTED_URL
设置为镜像站点。export PUB_HOSTED_URL="https://pub.flutter-io.cn"
-
将
FLUTTER_STORAGE_BASE_URL
设置为镜像站点。export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
-
从镜像站点下载 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.flutter-io.cn"
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
export PATH="$PWD/flutter/bin:$PATH"
EOT
此过程需要使用 terminal。
-
在 terminal 中打开新窗口,准备运行脚本。
-
将
PUB_HOSTED_URL
设置为镜像站点。export PUB_HOSTED_URL="https://pub.flutter-io.cn"
-
将
FLUTTER_STORAGE_BASE_URL
设置为镜像站点。export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
-
从镜像站点下载 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.flutter-io.cn"
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
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.flutter-io.cn/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.flutter-io.cn/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.flutter-io.cn/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.flutter-io.cn/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.flutter-io.cn;
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
在 Windows 上:
$env:PUB_HOSTED_URL="https://pub.flutter-io.cn";
$env:FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
向镜像反馈
#如果你的问题仅在使用 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 在国内维护社区基础设施建设资源的社区和公司,查看 详细致谢名单。
除非另有说明,本文档之所提及适用于 Flutter 的最新稳定版本,本页面最后更新时间: 2024-10-09。 查看文档源码 或者 为本页面内容提出建议。