问题描述
目前,我们在 AppCenter.Configure 方法中提供了App Secret key。这对于所有不同的环境都是一样的。
我们如何配置App Secret Key,以便我可以针对不同的环境输入不同的App Secret Key?
例如如果我需要根据配置为 UAT 和生产使用不同的应用密钥。
解决方法
您必须创建两个文件,其中包含您对应用中心的机密。不要忘记将构建操作设置为嵌入资源。
appsettings.debug.json
appsettings.release.json
这些文件将包含以下内容:
{
"AppCenterKey": "super secret key"
}
然后您可以使用此方法加载有关构建配置的文件:
private static void LoadAppSettings()
{
#if RELEASE
var appSettingsResourceStream = Assembly.GetAssembly(typeof(AppSettings)).GetManifestResourceStream("AppSettingsPoC.Configuration.appsettings.release.json");
#else
var appSettingsResourceStream = Assembly.GetAssembly(typeof(AppSettings)).GetManifestResourceStream("AppSettingsPoC.Configuration.appsettings.debug.json");
#endif
if(appSettingsResourceStream == null)
return;
using (var streamReader = new StreamReader(appSettingsResourceStream))
{
var jsonString = streamReader.ReadToEnd();
appSettings = JsonConvert.DeserializeObject<AppSettings>(jsonString);
}
}
您的 AppSettings 将存储密钥,它可能如下所示:
public class AppSettings
{
public string AppCenterKey { get; set; }
}
我在我的项目 following this article 中做了同样的事情。