我想为 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\raw
和 release\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/