由于Xamarin iOS SDK版本,AzureDevops构建失败

时间:2019-08-12 10:15:10

标签: xamarin xamarin.ios azure-devops

在尝试构建我们的应用程序时,AzureDevops托管的构建服务器当前存在问题。

这是我们得到的以下错误:

  

MTOUCH:错误MT2101:无法解析引用'System.Void   ObjCRuntime.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版本的方法。

2 个答案:

答案 0 :(得分:0)

您可以使用Boots工具安装更新的iOS SDK版本。

只需安装它,将步骤添加到您的管道中,然后放入所需的安装程序uri。

下载uri为https://dl.xamarin.com/MonoTouch/Mac/xamarin.ios-13.8.2.2.pkg(显然可以切换到所需的Xamarin.iOS版本)。

答案 1 :(得分:0)

通过上面的Bash脚本(select-xamarin-sdk.sh)选择Mono版本,您还可以设置相应的Xamarin.iOS SDK版本。如果使用最新的Mono版本(在撰写本文时为6.8.0),请同时设置最新的Xamarin.iOS SDK版本。

有关此问题,请参见James Montemagno's blog entry