I have a Xamarin.iOS solution with a custom binding of Xamarin.iOS, and I can create it locally on my Mac OS in Visual Studio for Mac without any problems. But when I try to create the same solution using F # Fake and create scripts with the same toolkit version on my Mac OS build server, I get the following error:
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.ObjCBinding.CSharp.targets(58.3): the specified task execution location "/Library/Frameworks/Mono.framework/Versions/5.4. 1 / lib / mono / xbuild / Xamarin / iOS / btouch-native.exe "is invalid.
I checked ObjCBinding.CSharp.targets
and I Xamarin.iOS.ObjCBinding.CSharp.props
see that for some reason my Mac OS build host is seen as a non-Unix system:
<BTouchToolPath Condition="'$(OS)' == 'Unix' And '$(TargetFrameworkIdentifier)' == 'Xamarin.iOS' And '$(BTouchToolPath)' == ''">$(MonoTouchSdkRoot)/bin/</BTouchToolPath>
<BTouchToolPath Condition="'$(OS)' != 'Unix' And '$(TargetFrameworkIdentifier)' == 'Xamarin.iOS' And '$(BTouchToolPath)' == ''">$(MSBuildExtensionsPath)\Xamarin\iOS\</BTouchToolPath>
<BTouchToolExe Condition="'$(OS)' == 'Unix' And '$(TargetFrameworkIdentifier)' == 'Xamarin.iOS' And '$(BTouchToolExe)' == ''">btouch-native</BTouchToolExe>
<BTouchToolExe Condition="'$(OS)' != 'Unix' And '$(TargetFrameworkIdentifier)' == 'Xamarin.iOS' And '$(BTouchToolExe)' == ''">btouch-native.exe</BTouchToolExe>
I also searched for the tool BTouchToolExe
and found it here, updated my .prop file with this path (for all platforms) and got a lot of problems, which is why I think I should find the root cause than trying to fix only the symptom:
/Library/Frameworks/Xamarin.iOS.framework/Versions/11.6.1.3/bin/btouch-native
I tried to create the same source code using Visual Studio for Mac on my build host - it works fine, so it seems to be some kind of problem with my F # Fake and build scripts (mostly by default). My setup (last and largest):
- Mac OS Build Host
- Mono
5.4.1
- Visual Studio for Mac
7.3.3
- Xamarin.iOS
11.6.1.3
What configuration might be wrong on my build host?