如何在 Xamarin 表单中针对不同环境在 android 和 iOS 项目上配置 APP CENTER 应用程序密钥?

问题描述

目前,我们在 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 中做了同样的事情。