How to deal with "${applicationid}" in Xamarin?
According to Microsoft team, Xamarin.Build.Download (0.4.12-preview) finally fixes this bug.
So, you should follow these steps:
- Update the Nuget Package to 0.4.12-preview3
- Restart the IDE
- Delete all cached locations of NuGet Packages
- Delete bin/obj
- Rebuild
The current Xamarin.Android
manifest merge build task, up to and including
version 7.1.0.19
, does not provide any bundeID/ApplicationID (${}
} substitution in the merged manifest like gradle
does.
This is just a limitation in the manifest processing/merge task, thus you are ending up with dollar_openBracket_applicationId_closeBracket
in your final manifest and will have to correct both manifests yourself.
The only current solution know to me to avoid the manifest merge task and it's limitation is to:
- Remove the file provider entry from the '.aar`'s manifest
- Add the complete file provider entry your app's manifest
Note: You have to do both steps
Depending upon how often the .aar
is changing and where you are sourcing the .aar
file from:
- Manually unzip the
aar
, remove the entry and re-zip theaar
(the quickest way) - Automated this in a build step via a shell script using bash or powershell cmds
- Write a MSBuild C#-based Task to do it.
- Request that the
aar
manifest be changed upstream (not likely to happen ;-) since it works fine w/gradle
)
FYI: Personally I have seen the ${applicationId}
issue you are having a few times. I have written build scripts (bash/.ps1
) to do the manifest fix-up as it seems to always be some special case in the .arr
's manifest that I am dealing with.