我有一个Xamarin.Forms应用程序,基于包含的network_security_config. xml文件,我可以在明文(http)模式下对它进行调试,如下所示:
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
但是,如果我将cleartextTrafficPermitted设置移到debug-overrides标记中,如下所示,我会收到错误"不允许到MYSITE的明文HTTP流量"。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<base-config cleartextTrafficPermitted="true" />
</debug-overrides>
</network-security-config>
我的应用程序正在调试模式下运行。即使应用程序调试已经在工作,并且模式是Debug,以防万一我尝试在AndroidManifest.xml中显式地将debuggable:true添加到应用程序标记中,并且还尝试在主应用程序类声明上的ApplicationAttribute中添加(Debuggable = true)作为参数,但是无论我如何将应用程序设置为可调试,如果base-config标记嵌套在debug-overrides标记中,它似乎都被忽略了。我做错了什么吗?是否有其他方法允许HTTP在调试模式下使用,而在发布模式下不使用?
4条答案
按热度按时间093gszye1#
发生这种情况的原因可能是您引用的是Android的调试模式,而Xamarin在其调试模式中不使用它。
我不能完全确认这一点,但这是我能想到的唯一可能的原因。由于Xamarin不使用Android上的Java虚拟机来运行,它可能无法使用针对此虚拟机的调试。
llew8vvj2#
我建议您使用域特定配置。
debug-overrides标记(如android文档中所述)不采用cleartextTrafficPermitted选项。
but5z9lq3#
按如下方式更改Application类的[Application]属性,使我只能在调试编译期间使用HTTP:
zzwlnbp84#
将此行放在清单文件中应用程序标记中。