如何升级现有的 Flutter 应用程序?

use*_*884 5 flutter

我有一个半年前构建的现有 Flutter 应用程序。我检查了 pubspec.lock,它有这一行:

sdks:
  dart: ">=2.10.0-110 <2.11.0"
  flutter: ">=1.16.0 <2.0.0"
Run Code Online (Sandbox Code Playgroud)

所以我假设该应用程序是为 Flutter v1.16 构建的。

  1. 如何升级此应用程序以使用最新的 Flutter 版本?运行“flutter doctor”给了我[?] Flutter (Channel stable, 1.22.3, on Microsoft Windows [Version 10.0.19041.630], locale en-US),所以我的SDK已经更新到最新版本了。

  2. 有趣的是,当我从头开始创建一个新应用程序时,pubspec.lock 没有关于 Flutter 版本的任何信息。同一部分现在仅包含以下内容:sdks: dart: ">=2.10.0-110 <2.11.0"。将来,我如何知道此应用程序运行的是哪个版本?

我曾尝试在我的应用程序中运行“flutter upgrade”,但那是升级 SDK,而不是应用程序的 Flutter 版本。那么如何升级我的应用程序以使用最新的 Flutter 版本?还是始终使用最新版本的 SDK 构建?我不能将我的应用程序定位为使用特定版本的 Flutter 构建吗?

Zac*_*ndo 50

以下步骤需要 dart2.19工具或更低版本,因为 dart 迁移工具在版本 3 中已被删除:

要将项目更新为空安全,请按照下列步骤操作:

旁注:更改 flutter 版本pubsec.yaml,创建新项目并复制以下行:

sdk: ">=2.19.6 <3.0.0"
Run Code Online (Sandbox Code Playgroud)

然后按照以下步骤操作:

  1. flutter upgrade在终端中运行来升级Flutter
  2. 运行dart migrate以运行 dart 迁移工具。
  3. 解决迁移工具显示的所有错误。
  4. 运行flutter pub outdated --mode=null-safety以打印所有过时的包。
  5. 运行flutter pub upgrade --null-safety自动升级所有包。
  6. 检查代码是否有错误并解决它们(非常重要)。
  7. 再次运行dart migrate,现在应该成功了。点击链接查看建议的更改。
  8. 按“应用迁移”按钮。
  9. 再次检查代码是否有错误并修复它们。

您的项目现在应该已更新。参考自本网站

  • 最佳答案,因为这是描述的最简单、最容易的方法。 (2认同)

Chi*_*rya 8

进入 flutter 项目的根目录并运行flutter Upgrade。这会将您现有的 flutter 项目和 flutter SDK 升级到最新版本。

运行命令:

flutter upgrade
Run Code Online (Sandbox Code Playgroud)

仅用于升级到最新稳定版本的附加内容

如果您只想升级到最新版本,请先检查您当前的 flutter 频道

第 1 步:检查稳定通道

flutter channel
Run Code Online (Sandbox Code Playgroud)

您将得到如下输出:

  beta
  dev
  master
* stable
Run Code Online (Sandbox Code Playgroud)

如果输出不是这样,请继续步骤 2 或直接继续步骤 3

步骤2:切换到flutter stable通道

flutter channel stable
Run Code Online (Sandbox Code Playgroud)

现在你将得到如下输出:

  beta
  dev
  master
* stable
Run Code Online (Sandbox Code Playgroud)

步骤3:运行以下命令升级到flutter的最新稳定版本

flutter upgrade
Run Code Online (Sandbox Code Playgroud)

  • 我明白这一点。但这不是升级SDK吗?应用程序本身怎么样?我有 .NET 背景,应用程序可以针对它想要构建的框架版本。Flutter 不是这样工作的吗?它总是针对 SDK 版本构建吗?可以使用特定版本构建吗? (11认同)
  • @user1491884 我也想知道这个。 (2认同)
  • 我有同样的问题。我想更新应用程序本身而不接触flutter SDK。我来自 Angular 背景,您可以更新应用程序的本地 Angular 版本,同时保持全局安装的版本不变。 (2认同)