簡體   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