Flutter - 在构建时更改参数(AdMob ID)

问题描述 投票:0回答:1

我将 Flutter 与 Google AdMob lib 一起使用,并有这个帮助器类

AdManager
(示例的一部分)来管理 ID。

class AdManager {

  static String get bannerAdUnitId {
    if (Platform.isAndroid) {
      return 'ca-app-pub-TEST_ID';
    } else if (Platform.isIOS) {
      // return 'ca-app-pub-MY_APP_ID';
      return 'ca-app-pub-TEST_ID';
    }
    throw UnsupportedError("Unsupported platform");
  }

  static String get nativeAdUnitId {
    if (Platform.isAndroid) {
      return 'ca-app-pub-TEST_ID';
    } else if (Platform.isIOS) {
      // return 'ca-app-pub-MY_APP_ID';
      return 'ca-app-pub-TEST_ID';
    }
    throw UnsupportedError("Unsupported platform");
  }
}

如何在编译过程中更改类的返回。我知道应该只在测试期间使用

ca-app-pub-TEST_ID
并仅在 PROD 版本中切换到真实 ID 'ca-app-pub-MY_APP_ID'。我怎样才能在包构建过程中做到这一点。 现在我只关注 iOS,所以我所做的就是打开 XCode 并手动构建存档。可能有自动构建的 Flutter 命令(是哪些?)以及在编译时定义 ID 的方法,因此我不必手动切换回来。使用 VSCode。

谢谢!

flutter dart admob flutter-dependencies
1个回答
0
投票

您也许可以使用口味来解决它:https://docs.flutter.dev/deployment/flavors

我们的想法是让每个构建都有自己的风格。

然后在运行时,您可以使用

appFlavor
常量检查编译后的风味:https://api.flutter.dev/flutter/services/appFlavor-constant.html

所以在实践中它会是这样的:

flutter build appbundle --flavor id1

然后在运行时您将检查

appFlavor
常量:

if (appFlavor == 'id1') {
  return 'id-for-this-flavor';
}

我想这会解决你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.