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:

  1. Update the Nuget Package to 0.4.12-preview3
  2. Restart the IDE
  3. Delete all cached locations of NuGet Packages
  4. Delete bin/obj
  5. 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:

  1. Remove the file provider entry from the '.aar`'s manifest
  2. 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 the aar (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.