前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SDK设计心得之版本号

SDK设计心得之版本号

作者头像
子勰
发布2018-05-22 14:46:27
1K0
发布2018-05-22 14:46:27
举报
文章被收录于专栏:子勰随笔子勰随笔子勰随笔

任何一个产品都有版本,而作为SDK来说,版本会更加重要。游戏会根据你的版本来选择接入的功能,我们定位问题也需要追踪回朔版本号,进而定位代码SVN版本。而区分这些版本的方法就是版本号。

我们的版本号

目前我们的版本只有字符版本,没有数字版本。当有比对版本的需要的时候,我们会把字符版本转化为数字版本号。例如把2.0.0a转化为200,然后用这个数字对比。其实这样是有问题的,1.3系列我们出到了1.3.11a。将来如果有13.1.1a。两个的数字版本号就是1311,会有问题。但是如果我们版本都13.1.1a,还有人用1.3.11a。其实他的版本早就应该更新了。

对于具体的版本,为了方便定位问题,除了对外的版本号,我们还有对内的基线号,或者tag标签。Tag标签(基线号)主要是用来精确定位版本对应的svn记录。我们的tag(基线号)是由Tag_版本号.持续集成build号_SVN版本号组成。例如:Tag_2.7.2.246_55349,我们在持续集成时会按照这个值生成一份svn的tag。定位问题的时候,直接按照tag回朔即可。

需要几个版本号

这里其实我目前也没有想到比较好的解决办法。建议版本号参考Android标准,有两个,一个数字版本号,用于SDK内部,方便比对版本的时候使用。一个是字符版本号,用于标识版本,提供给外部应用调用。

关于字符版本号

目前的主流版本号都是分三段:主版本、特性版本、修正版本。例如:2.0.1这种。主版本号主要用于大版本的发布,特性版本主要用于更新迭代,修正版本号主要用于bug修复。

关于数字版本号

关于数字版本号,可以自己来直接维护,也可以通过一定的规则来生成。如果是自己维护,像SDK存在多个分支同时维护的情况下,维护起来就会很复杂,问题很多。这里给一个个人觉得可行的方法吧。数字版本号由字符版本号生成,同时建议字符版本号中的修正版本号用两位位来围护,例如2.0.00a;或者2.0.01a这种。对应的转化出的数字版本号为2000和2001。

版本号放在哪里

这里还是直接写经验吧:

首先:

  • 代码里面手动写一个。这个用于开发标示和了解当前的版本号。为了防止开发发版本忘了改版本号,建议增加到版本提测的checkList点击查看里面。
  • 自动构建打一个。我们在自动构建时,会通过构建脚本生成一个版本配置相关的文件,在这个文件里面,我们会打上一些对于我们后续定位问题有需要的内容。其中就包括版本号。具体的配置文件事例如下:
  • VERSION=1.3.1
  • SVN_REVISION=55384
  • BASE_LINE=Tag_AGSDK_1.3.1.304_55384
  • DATETIME=2015-04-29 12:23:56.279
  • 应用启动时,进行版本对比,二次确认。虽然我们不想,但是总会有可能出现版本号的错误或者不一致。所以我们在应用启动的时候会比对上面的两个版本号。当版本号不一致时,我们会生成对应的错误日志。最终通过多重方式确保生成一个安全的,可用的版本号。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年04月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我们的版本号
  • 需要几个版本号
    • 关于字符版本号
      • 关于数字版本号
      • 版本号放在哪里
      相关产品与服务
      持续集成
      CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档