Xamarin Android: network_security_config. xml только для отладки - PullRequest
1 голос
/ 28 мая 2020

У меня есть проект Xamarin. Android (как часть проекта Xamarin.Forms), в котором я использую network-security-config. xml, чтобы разрешить трафик c на / с тестового сервера с использованием http.

Интересно, есть ли способ исключить это из релизной сборки.

Я обнаружил два подхода, но ни один из них, похоже, не применим к моей ситуации:

  • Если бы я использовал Android Studio, у меня могло бы быть два разных файла в разных папках, один для отладки, а другой для выпуска. Я думаю, что это не поддерживается в Visual Studio / Xamarin.

  • В network_security_config есть директива. xml, "", но я думаю, что это применимо только к сертификатам CA.

Есть подсказка?

Спасибо!

1 Ответ

1 голос
/ 28 мая 2020

В своем проекте Android вы можете создать свой собственный класс Application и расширить класс Android.App.Application. Таким образом, вы также можете включить / отключить отладку приложения. Теперь сборка будет выглядеть как узел Application вашего манифеста, если вы примените к нему ApplicationAttribute следующим образом:

#if DEBUG
    [Application(Debuggable = true, NetworkSecurityConfig = "@xml/network_security_config")]
#else
    [Application(Debuggable = false)]
#endif
    public class MainApplication : Android.App.Application
    {
    }

Где network_security_config - ваш файл конфигурации.

...