我有一個 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,以防萬一我嘗試將 debuggable:true 顯式添加到我的 AndroidManifest.xml 中的應用程式標記,并且還嘗試添加 (Debuggable = true) 作為 ApplicationAttribute 中的引數超過我的主應用程式類宣告,但無論我如何將應用程式設定為可除錯,如果 base-config 標記嵌套在 debug-overrides 標記內,它似乎會被忽略。難道我做錯了什么?是否有其他方法允許在除錯模式下允許 HTTP 而不允許在發布模式下?
uj5u.com熱心網友回復:
這可能是因為您指的是 Android 的除錯模式,而 Xamarin 不在其除錯模式下使用它。
我不能完全證實這一點,但這是我能想到的唯一可能的原因。由于 Xamarin 在 Android 上不使用 Java 虛擬機來運行,因此它可能無法使用針對此虛擬機的除錯。
uj5u.com熱心網友回復:
如下更改我的 Application 類上的 [Application] 屬性允許我僅在除錯編譯期間使用 HTTP:
#if(DEBUG)
[Application(UsesCleartextTraffic=true)]
#else
[Application]
#endif
uj5u.com熱心網友回復:
android:usesCleartextTraffic="true"
將此行放在清單檔案的應用程式標記中。

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/313161.html
