合并 Manifest 中的 NetworkSecurityConfig xml 文件

iGo*_*oDa 4 android android-manifest kotlin

在我的应用程序中,我使用以下内容设置了网络安全配置文件:

<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

我在清单中设置如下:

  <application 
             (...)
              android:networkSecurityConfig="@xml/network_security_config">
Run Code Online (Sandbox Code Playgroud)

此外,我添加了一个第三方库,它提供自己的网络安全配置文件和一组域

<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">domainA</domain>
    </domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

他们在我的清单中设置如下:

  <application android:networkSecurityConfig="@xml/network_security_config">
Run Code Online (Sandbox Code Playgroud)

问题是清单合并仅适用于manifest.xml 文件(afaik),因此 netowrk-security-config 文件将始终是应用程序文件,而不是应用程序和第 3 方网络安全配置文件之间的合并,即有办法实现这样的事情吗?

<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">domainA</domain>
    </domain-config>
     <debug-overrides>
        <trust-anchors>
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

Com*_*are 5

没有内置机制可以通过这种方式合并资源。您需要在应用程序模块中拥有组合的网络安全配置文件,您可以在其中手动合并您需要的内容和库请求的内容。