在中国网络环境下使用 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 在国内维护社区基础设施建设资源的社区和公司,查看 详细致谢名单