Flutter Android IOS 三端共用同一份配置文件

前言

Flutter 是 Google 使用 Dart 语言开发的一套移动应用开发框架,介绍Flutter开发的文章已经汗牛充栋, 所以这里我们主要不是来讨论怎么去开发一个Flutter应用,而是来解决在开发过程中遇到的问题。

现状

环境配置

在应用开发过程中, 我们往往是有很多配置的,比如开发环境,一般我们分为线上和测试,在不同的环境中链接不同的服务器,也可能根据不同的环境本地加载不同的代码,以前我们做Android或者IOS 在本地创建一个配置文件,比如我们在Android下面创建一个config.properties

# env, switch
ENV=ONLINE
#ENV=TEST

应用在打包的时候读取配置,注入BuildConfig自动调整环境:

def configProperties = new Properties()
def versionPropertiesFile = rootProject.file('../config.properties')
if (versionPropertiesFile.exists()) {
   
    versionPropertiesFile.withReader('UTF-8') {
   
        reader -> configProperties.load(reader)
    }
}
def evn = configProperties.getProperty("ENV")
if (evn == null) {
   
    evn = 'TEST'
}

// 在应用的build.grade的defaultConfig节点根据环境注入我们的需要的配置,也可以同时注入BuildConfig
defaultConfig {
   
    applicationId "xxxxxx"
    minSdkVersion 21
    targetSdkVersion 28
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

    ndk {
   
        abiFilters 'armeabi-v7a', 'arm64-v8a'
    }

    manifestPlaceholders = [COM_NETEASE_NIM_APP_KEY: evn == 'ONLINE' ? onlineKey : testKey]
}

上述方式就需要Android一份配置,IOS一份配置,每次有变更,两边都需要配置和修改。

版本配置

我们知道在Android中我们配置版本号,在应用的build.gradle的defaultConfig节点配置versionCode和versionName:

android {
   
    compileSdkVersion 28

    sourceSets {
   
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
   
        disable 'InvalidPackage'
    }

    defaultConfig {
   
        applicationId "xxxxx"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 5
        versionName 1.0.0
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        ndk {
   
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

而在IOS中我们需要在Info.plist中进行配置CFBundleShortVersionString与CFBundleVersion,一般我们在xcode的runner-General手动配置或者脚读取:
在这里插入图片描述
上面只是Android端和IOS端,目前我们已经采用Flutter来进行开发,在Flutter中很多时候我们也有需要读取当前的版本号,这时我们怎么办? 我们一般都采用读取平台的版本来实现,这里我们可以采用在pubspec中添加dependencies:

dependencies:
  flutter:
    sdk: flutter
    
  package_info
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值