Flutter 版本约束误解

Flutter version constraints missunderstanding

这意味着如果我使用包版本 ^2.0.1 这意味着如果这个特定包的开发者将他的包更新到 3.0.0,我的应用程序,包括这个包将会丢失尽管我的申请已发布?

  1. 不,依赖关系只在编译时解决。一旦您的应用程序发布,这些显然不会改变。
  2. 不,如果您的 pubspec.yaml 和 运行 中有 ^2.0.1pub get 最新版本将被锁定到 pubspec.lock - 假设您的依赖项已发布版本 2.0.4 然后 pubspec.lock 将包含该信息。因此,对于应用程序,建议您将 pubspec.lock 添加到您的版本控制中。随后的 pub get 将始终获取锁定的 2.0.4,直到您更改 dependencies 或 运行 pub upgrade 中的某些内容。如果您 运行 pub upgrade 并且软件包作者发布了 2.3.0 则将包含此新版本。另一方面,如果包作者发布 3.0.0 它仍然不会被使用,因为 ^2.0.1>=2.0.1 <3.0.0
  3. 的意思相同