繁体   English   中英

Flutter build appbundle 为暂存和生产应用程序生成错误的环境变量

[英]Flutter build appbundle generate wrong environment variable for staging and production app

我是 Flutter 部署的新手,正在努力解决一些奇怪的问题。 事情一直很顺利,直到有一天,当我发出命令fvm flutter build appbundle时,它生成了两个 .aab 版本,有利于 - 暂存和生产。 我尝试将 staging.aab 文件上传到我在 Play 控制台中的暂存项目。 当我从 Play Store 下载暂存应用程序时,该应用程序指的是生产环境,因此调用了错误的 API。事实证明,无论我如何使用fvm flutter clean清理项目并手动删除构建文件夹,它总是构建暂存应用程序和具有生产变量的生产应用程序。 它在 Android Studio 中使用暂存配置的模拟器中运行良好。 我不确定要提供什么代码片段,我尝试搜索类似的问题但找不到。 如果这是一个糟糕的问题,我深表歉意,我已经尝试构建和上传了几个小时,但它的行为仍然相同。 iOS 虽然工作正常。

代码检测环境与此

  factory Constants.of() {
    if (_instance != null) {
      return _instance!;
    }

    final flavor = EnumToString.fromString(
      Flavor.values,
      const String.fromEnvironment('FLAVOR'),
    );

    switch (flavor) {
      case Flavor.staging:
        _instance = Constants._stg();
        break;
      case Flavor.production:
      default:
        _instance = Constants._prd();
    }
    return _instance!;
  }

在应用程序/build.gradle

    flavorDimensions "environment"
    productFlavors {
        staging {
            dimension "environment"
            applicationIdSuffix ".staging"
            versionNameSuffix "-Stg"
            signingConfig signingConfigs.staging
        }

        production {
            dimension "environment"
            signingConfig signingConfigs.production
        }
    }

不确定是否有帮助

请尝试使用此命令flutter build appbundle --flavor production构建您的 App Bundle。 我认为这个命令解决了你的问题! 或者你可以按照这个博客来设置你的环境https://medium.com/@salvatoregiordanoo/flavoring-flutter-392aaa875f36

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM