(Xamarin): Bitrise using **project** config setting instead of **solution** config setting?

I’ve got a solution config setting called “QA” and a solution config setting called “Test” in my Xamarin solution.

They both map to all project configurations named “QA” … except for one project, my IoC project. The “Test” solution maps to the “Test” IoC project (injecting different environment values, etc as you can imagine).

| (1) xamarin-archive@1.3.3 |
| id: xamarin-archive |
| version: 1.3.3 |
| collection: https://github.com/bitrise-io/bitrise-steplib.git |
| toolkit: go |
| time: 2017-04-25T00:46:46-07:00 |
| |
e[34mINFOe[0m[00:46:46] * e[32;1m[OK]e[0m Step dependency (go) installed, available.


  • XamarinSolution: Foo.Atmo.sln
  • XamarinConfiguration: Test
  • XamarinPlatform: iPhone
  • ProjectTypeWhitelist: android
    e[34;1mExperimental Configs:e[0m
  • AndroidCustomOptions:
  • IOSCustomOptions:
  • TvOSCustomOptions:
  • MacOSCustomOptions:
  • ForceMDTool: no
    e[34;1mOther Configs:e[0m
  • DeployDir: /Users/vagrant/deploy

e[34;1mBuilding all projects in solution: Foo.Atmo.slne[0m

e[34;1mBuilding project: Foo.Atmo.Droide[0m
e[32;1m$ “/Library/Frameworks/Mono.framework/Commands/xbuild” “/Users/vagrant/git/Sky/Foo.Atmo.Droid/Foo.Atmo.Droid.csproj” “/target:PackageForAndroid” “/p:SolutionDir=/Users/vagrant/git” "/p:Configuration=QA"e[0m

XBuild Engine Version 14.0
Mono, Version
Copyright © 2005-2013 Various Mono authors

You can see in the log snippet above that my Configuration flag is being set to QA … but it should be Test (From XamarinConfiguration).

This is only happening on Android builds. When building for iOS, I get the expected result.

Is this a bug in the Android Archive Step (xamarin-archive@1.3.3) or am I doing something else wrong?


  • Lee

Hi @leeflannery,

all of the xamarin steps (which builds your project), uses solution configuration + platform as step inputs and our shared xamarin builder tool, maps your solution configuratio + platform to the desired project configuration + platform.

So the project build commands are called with the mapped project configuration + platform params (based on your projects solution - project config, platform mapping).