我想要不同的配置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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
更新
可以awsconfiguration.json通过将不同的文件放入main\res\raw和来使用不同的选项release\res\raw,例如按照这个答案,它可以工作。但我想知道是否可以选择以编程方式执行此操作。
小智 9
这也可以通过在 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) {
}
});
Run Code Online (Sandbox Code Playgroud)
并且 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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在努力实现类似的目标;根据选定的配置文件在运行时选择 AWS 配置。我通过破解 AWS SDK 使其部分工作,但后来偶然发现了 AWS SDK 版本2.11.0 的发行说明。引用:
添加了通过新 API将配置作为内存对象(即
[String: Any]/NSDictionary)而不是默认值传递的选项awsconfiguration.json
我还在此处的放大入门指南中找到了它的记录(!)。
如此以来,2019年9月9日这IS可以选择在运行时的AWS配置。
编辑:刚刚注意到这个问题是针对 Android 而不是 iOS。我不是 Android 开发人员,但在 AWS Android SDK 版本2.13.6(2019 年 6 月 7 日)中快速搜索发现了类似的内容。引用发行说明:
添加
AWSConfiguration(JSONObject)构造函数以AWSConfiguration从通过 JSONObject 传递的配置构造对象
...看起来很有希望。
| 归档时间: |
|
| 查看次数: |
3795 次 |
| 最近记录: |