[当尝试构建我们的应用程序时,我们目前与AzureDevops托管的构建服务器有关。
这是我们得到的以下错误:
MTOUCH:错误MT2101:无法解析引用'System.VoidObjCRuntime.Runtime :: ReleaseBlockOnMainThread(System.IntPtr)',从方法'System.Void中引用ObjCRuntime.Trampolines / NIDCompletionHandler :: Finalize()中的'Xamarin.iOS,版本= 0.0.0.0,文化=中性,PublicKeyToken = 84e04ff9cfb79065'。[/Users/vsts/agent/2.155.1/work/4/s/Smartphone / ......]
我们已经确定这是与构建服务器使用的Xamarin.iOS SDK版本有关的问题。在Xamarin.iOS SDK 12.14.0.114上本地运行时,构建可以正常完成。
无论如何指定AzureDevOps服务器使用哪个版本?我知道您可以使用类似于:
的东西 /bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 5_18_1"
/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_10.1.app;sudo xcode-select --switch /Applications/Xcode_10.1.app/Contents/Developer"
为了更改Mono版本。我们真正需要的是一种选择iOS SDK版本的方法。
您可以使用Boots工具安装更新的iOS SDK版本。
只需安装它,将步骤添加到管道中,然后放入所需的安装程序uri。
下载uri为https://dl.xamarin.com/MonoTouch/Mac/xamarin.ios-13.8.2.2.pkg(显然切换到所需的Xamarin.iOS版本)。