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

Posted

技术标签:

【中文标题】由于 Xamarin iOS SDK 版本,AzureDevops 构建失败【英文标题】:AzureDevops Build fails due to Xamarin iOS SDK version 【发布时间】:2019-08-12 10:15:10 【问题描述】:

我们目前在尝试构建我们的应用程序时遇到了与 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 版本的方法。

【问题讨论】:

docs.microsoft.com/en-us/azure/devops/pipelines/agents/… ? 这个我已经看过了,这是改Mono SDK版本,不是Xamarin.iOS SDK版本。 【参考方案1】:

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

只需安装它,将步骤添加到您的管道并放入您需要的安装程序 uri。

下载 uri 是 https://dl.xamarin.com/MonoTouch/Mac/xamarin.ios-13.8.2.2.pkg(显然切换到您需要的任何 Xamarin.iOS 版本)。

【讨论】:

【参考方案2】:

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

请参阅James Montemagno's blog entry 了解此内容。

【讨论】:

以上是关于由于 Xamarin iOS SDK 版本,AzureDevops 构建失败的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin iOS构建错误-本地链接失败(仅链接框架SDK)

Xamarin IOS绑定微信SDK

使用 Admob SDK 版本 6.12.0 的 Xamarin iOS 应用程序上的 Admob 问题

Xamarin.ios引用第三方SDK

由于 HEALTHKIT 参考,Xamarin.ios 构建被拒绝

由于 HEALTHKIT 参考,Xamarin.ios 构建被拒绝