Flutter学习Flutter

Flutter设置APP版本与构建版本

2019-06-17  本文已影响156人  readonly__

  当一个纯Flutter APP开发完成,我们要打包发布到App Store和各大安卓市场,这时候我们需要设置APP的版本号。

  如果我们在使用原生iOS或者Android开发的时,我们会在info.plist中设置versionbuild或是在build.gradle中设置versionNameversionCode,他们分别表示APP的版本和构建版本。

  但是我们在使用Flutter管理APP版本时,打开pubspec.yaml只看到一个version字段。这时候我们应该怎么设置APP的versionbuild呢?

  我们在pub上随便找一个Flutter的组件,例如官方的camera,我们可以看到截止目前为止最新的版本为:camera: ^0.5.2+1。看到这里,我想大家都明白了,Dart采用的是加号式的版本描述方式,+前面是版本号,+后面是当前版本的build号。所以我们设置APP的版本号和build次数,在这里设置即可,例如:version: 1.2.0+1

  当我们新建一个Flutter工程的时候,我们分别使用Xcode和Android Studio打开iOS和Android的工程可以看到,iOS中的 versionbuild的值分别为FLUTTER_BUILD_NAMEFLUTTER_BUILD_NUMBER

    <!-- version -->
    <key>CFBundleShortVersionString</key>
    <string>$(FLUTTER_BUILD_NAME)</string>
    <key>CFBundleSignature</key>
    
    <!-- build -->
    <key>CFBundleVersion</key>
    <string>$(FLUTTER_BUILD_NUMBER)</string>
    <key>LSApplicationCategoryType</key>

同样我们打开Android工程可以看到有如下定义:

    def flutterVersionCode  =  localProperties.getProperty('flutter.versionCode')
    
    if (flutterVersionCode == null) {
        flutterVersionCode = '1'
    }

    def flutterVersionName = localProperties.getProperty('flutter.versionName')
    if (flutterVersionName == null) {
        flutterVersionName = '1.0.0'
    }
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName

  事实上,Flutter在编译的时候会生成ios/Flutter/Generated.xcconfigandroid/local.properties文件。这两个文件由Flutter编译自动生成,不可更改。记录了包含SDK路径或者文件路径,版本信息,环境配置(release/debug)等信息。原生工程获取版本信息的变量就定义在这两个文件里面。

上一篇下一篇

猜你喜欢

热点阅读