问题
I would like to trust certificate only in one build-variant. How to make it?
回答1:
Create a source for the variant. Create a res/xml/
directory in that source set, and put your network security configuration XML in there. Create other stuff in that source set as needed (e.g., res/raw/
and your certificate). In that source set, create an AndroidManifest.xml
file, with an <application>
element that just has the android:networkSecurityConfig
attribute and nothing else.
And you should be done.
Builds for this variant will include your source set, merge in the android:networkSecurityConfig
attribute, and leverage the resources tied to it. Builds for other variants will ignore this source set, leaving you without a network security configuration.
回答2:
Just create 'n' number of customized network security XML for your 'n' number of build variant, and then you can inject exact network security XML file to your Android Manifest XML depend on the Environment. see here for examples https://developer.android.com/studio/build/manifest-build-variables
回答3:
You can create build_variant folder inside src and your network_config file inside that
below is some sample for different icon for different build_variant. same way we can do for network_config file
/src/build_variant/res/xml/network_security_config.xml
来源:https://stackoverflow.com/questions/46302058/how-to-have-different-network-security-config-for-different-build-variants