在中国网络环境下使用 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.flutter-io.cn"
  3. FLUTTER_STORAGE_BASE_URL 设置为镜像站点。

    C:> $env:FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
  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.flutter-io.cn',User)
[System.Environment]::SetEnvironmentVariable('FLUTTER_STORAGE_BASE_URL','https://storage.flutter-io.cn',User)

此过程需要使用 terminal。

  1. 在 terminal 中打开新窗口,准备运行脚本。

  2. PUB_HOSTED_URL 设置为镜像站点。

    export PUB_HOSTED_URL="https://pub.flutter-io.cn"
  3. FLUTTER_STORAGE_BASE_URL 设置为镜像站点。

    export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
  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.flutter-io.cn"
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
export PATH="$PWD/flutter/bin:$PATH"
EOT

此过程需要使用 terminal。

  1. 在 terminal 中打开新窗口,准备运行脚本。

  2. PUB_HOSTED_URL 设置为镜像站点。

    export PUB_HOSTED_URL="https://pub.flutter-io.cn"
  3. FLUTTER_STORAGE_BASE_URL 设置为镜像站点。

    export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
  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.flutter-io.cn"
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
export PATH="$PWD/flutter/bin:$PATH"
EOT

此过程需要使用 terminal。

  1. 在 terminal 中打开新窗口,准备运行脚本。

  2. PUB_HOSTED_URL 设置为镜像站点。

    export PUB_HOSTED_URL="https://pub.flutter-io.cn"
  3. FLUTTER_STORAGE_BASE_URL 设置为镜像站点。

    export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
  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.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 的访问:

  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.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 在国内维护社区基础设施建设资源的社区和公司,查看 详细致谢名单