关于flutter pubspec.yaml动态版本号问题

13 篇文章 0 订阅

2021.3.25 update:

今天看到一段关于NPM的包管理的版本号说明,感觉和flutter package这块比较像。

版本号

使用NPM下载和发布代码时都会接触到版本号。NPM使用语义版本号来管理代码,这里简单介绍一下。

语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。

  • 如果只是修复bug,需要更新Z位。
  • 如果是新增了功能,但是向下兼容,需要更新Y位。
  • 如果有大变动,向下不兼容,需要更新X位。

版本号有了这个保证后,在申明第三方包依赖时,除了可依赖于一个固定版本号外,还可依赖于某个范围的版本号。例如"argv": "0.0.x"表示依赖于0.0.x系列的最新版argv。

NPM支持的所有版本号范围指定方式可以查看官方文档

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

问题:

拉出老的release库的代码,发现flutter部分的代码无法编译通过,打不出老的release包。

 

问题分析:

develop分支flutter库代码中的pubspec.yaml中的版本号都是动态模式。

加了^符号,会默认指向a.b.c 版本号中c的最高位置。

例如: ^0.1.2

如果远端的pub库上的最新版本是0.1.3,那么本地使用的实际最终会是0.1.3。

在自动对齐的过程中,有可能出现一些三方库的api变更,导致flutter编译的时候第三方库指向了最新版本的不同的代码。

 

解决办法:

把host入口工程的pubspec.lock文件加入到git 版本管理中。打release分支的时候,跟随代码带过去。flutter pub get 会导致pubspec.lock override,所以jenkins上构建,直接flutter build bundle。

 

关于工程中什么地方应该pubspec.lock ignore?

application packages工程保留。

library packages工程git ignore。

https://stackoverflow.com/questions/16136739/in-dart-and-pub-should-i-add-pubspec-lock-to-my-gitignore

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值