I’m working on a personal project where I need to use different AndroidManifest.xml
files for different brands of the app. Each brand has its own manifest file located in a separate directory. However, despite configuring the .csproj
to include the correct AndroidManifest.xml
for the active brand, the build process only includes the base AndroidManifest.xml
, and the brand-specific manifest is not being merged.
Project Setup:
- Base Manifest Location:
Platforms/Android/AndroidManifest.xml
- Brand-Specific Manifest Location:
Stuff/Brand1/Android/AndroidManifest.xml
- Development Environment: Visual Studio 2022, .NET MAUI
What I’ve Tried:
-
Several variations of modifying the
.csproj
file as such:<ItemGroup> <None Remove="Platforms/Android/AndroidManifest.xml" /> <AndroidManifest Include="Stuff/Brand1/Android/AndroidManifest.xml"> <LogicalName>Platforms/Android/AndroidManifest.xml</LogicalName> </AndroidManifest> </ItemGroup>
OR
<ItemGroup Condition="$(cfg.Contains('-Brand1'))"> <None Remove="Platforms/Android/AndroidManifest.xml" /> <AndroidManifest Include="Stuff/Brand1/Android/AndroidManifest.xml"> <LogicalName>Platforms/Android/AndroidManifest.xml</LogicalName> </AndroidManifest> </ItemGroup>
Conditionals do work in
.csproj
as I am using them for other brand-specific settings. -
Clean and Rebuild: I’ve performed a clean build multiple times, but the brand-specific manifest is still not being merged.
-
Checked Merged Manifest: After the build, I checked the
obj/Debug/android/manifest/AndroidManifest.xml
, and it only contains the base manifest. -
Build Output Logs: I reviewed the build logs but didn’t see any obvious errors or warnings related to the manifest merging process.
The Problem:
Despite these efforts, the brand-specific AndroidManifest.xml
isn’t being picked up or merged during the build. As a result, 3rd party configurations, which are specific to the brand, are missing in the final build.
Questions:
- How can I ensure that the brand-specific
AndroidManifest.xml
is correctly included and merged during the build process? - Is there something I might be missing in the
.csproj
configuration that could be causing this issue? - Are there any additional steps or settings in .NET MAUI that I need to configure to support brand-specific manifests?
Any insights or suggestions would be greatly appreciated!
Thank you in advance for your help.
BONUS
Would also be nice to know if:
<meta-data
android:value="${ApplicationId}.MYCLASS"/>
is valid syntax within the AndroidManifest.xml
.