android - 如何使用 AWSMobileClient 设置不同的配置(awsconfiguration.json)以进行调试和发布构建类型

标签 android aws-sdk

我想为 debug 设置不同的配置和 release构建。所有配置都存储在awsconfiguration.json中,例如我有两个不同的配置文件,我该如何设置应该使用哪个文件。

使用 AWSMobileClient.getInstance() 时它从文件 awsconfiguration.json 中获取默认配置

配置文件示例:

{
  "Version": "1.0",
  "CredentialsProvider": {
    "CognitoIdentity": {
      "Default": {
        "PoolId": "DIFFERENT_VALUES",
        "Region": "DIFFERENT_VALUES"
      }
    }
  },
  "IdentityManager": {
    "Default": {}
  },
  "CognitoUserPool": {
    "Default": {
      "AppClientSecret": "DIFFERENT_VALUES",
      "AppClientId": "DIFFERENT_VALUES",
      "PoolId": "DIFFERENT_VALUES",
      "Region": "DIFFERENT_VALUES"
    }
  }
}

更新
可以选择使用不同的awsconfiguration.json通过将不同的文件放入 main\res\rawrelease\res\raw ,例如通过关注 answer它有效。
但我想知道是否可以选择以编程方式进行。

最佳答案

这也可以通过在 AWSConfiguration 中设置配置值然后初始化 AWSMobileClient 来实现。

    AWSConfiguration awsConfiguration = new AWSConfiguration(context);
    awsConfiguration.setConfiguration("Stage"); // BuildConfig can be used here.

    AWSMobileClient.getInstance().initialize(context, awsConfiguration,  new Callback<UserStateDetails>() {

        @Override
        public void onResult(UserStateDetails userStateDetails) {
        }

        @Override
        public void onError(Exception e) {
        }
    });
并且 awsconfiguration.json 文件可以如下更新
{
 "Version": "1.0",
 "CredentialsProvider": {
    "CognitoIdentity": {
        "Default": {
            "PoolId": "DIFFERENT_VALUES",
            "Region": "DIFFERENT_VALUES"
        },
        "Stage": {
            "PoolId": "STAGE_VALUES",
            "Region": "STAGE_VALUES"
        }
    }
 },
 "IdentityManager": {
    "Default": {},
    "Stage": {}
 },
 "CognitoUserPool": {
    "Default": {
        "AppClientSecret": "DIFFERENT_VALUES",
        "AppClientId": "DIFFERENT_VALUES",
        "PoolId": "DIFFERENT_VALUES",
        "Region": "DIFFERENT_VALUES"
    },
    "Stage": {
        "AppClientSecret": "STAGE_VALUES",
        "AppClientId": "STAGE_VALUES",
        "PoolId": "STAGE_VALUES",
        "Region": "STAGE_VALUES"
    }
 }
}

关于android - 如何使用 AWSMobileClient 设置不同的配置(awsconfiguration.json)以进行调试和发布构建类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56771885/

相关文章:

java - 将模块添加到我的 Android 应用程序时出现 DuplicateFileException

android - 如何使用android中的默认可用应用程序在android中打开下载的文件

android - 如何自定义处理for Fragment的BackPressed键?

android - 使用 Cache Uri 作为 MediaStore.EXTRA_OUTPUT 时相机无法工作/保存

c# - 如何检索用于启动 Fargate 任务的子网列表?

node.js - Lambda 中的 NodeJS AWS KMS 解密

android - 为什么我的命令行android列表目标什么都没显示?

.net-core - 我的 Lambda 在启动和第一行之间做什么?

.net - AmazonSimpleNotificationServiceClient 线程安全吗?

amazon-web-services - AWS 预签名 url acl 公共(public)读取无效签名