无法构建 Xamarin.Forms iOS 项目

Posted

技术标签:

【中文标题】无法构建 Xamarin.Forms iOS 项目【英文标题】:Cannot build Xamarin.Forms iOS project 【发布时间】:2019-10-31 17:30:44 【问题描述】:

我正在尝试在 Azure DevOps 上构建我们的 Xamarin.Forms 应用程序,但它在 ios 上失败并出现以下错误:

Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk/System/Library/Frameworks/Photos.framework/Headers/PHImageManager.h(18,2):错误 GB12A9FDE:“照片需要 C++11 或更高版本”[/Users/runner/runners/2.159.2/work/1/s/My_MobileApp/My_MobileApp.iOS/My_MobileApp.iOS.csproj]

该应用最初是在 VS 2017 上创建的,然后迁移到 VS 2019。它可以工作,但由于某种原因昨天停止了构建。

我能做些什么来解决它?

【问题讨论】:

你的xcode版本是多少,好像是Xcode 11 beta的问题,可以参考github.com/xamarin/xamarin-macios/issues/6716 @Leo Zhu - MSFT 请问如何才能找到 xCode 版本? 如果我在 PC 上使用 Visual Studio,如何更改 XCode 版本? 我们不直接使用Xcode来构建。我们使用 xamarin.ios 构建任务:docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/… 【参考方案1】:

好的,解决了:

我们使用以下内联脚本在 xamarin.ios 构建任务之前添加了一个命令行任务:

/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'$(xcode.root);sudo xcode-select --switch $(xcode.root)/Contents/Developer"

并将名为 xcode.root 的变量设置为 /Applications/Xcode_10.3.app 以覆盖构建代理上的错误版本的 xcode 这有点骇人听闻,所以一旦上游解决了问题,我们将需要删除该覆盖。

【讨论】:

以上是关于无法构建 Xamarin.Forms iOS 项目的主要内容,如果未能解决你的问题,请参考以下文章

无法调试在 Xamarin.Forms 中制作的 IOS 应用程序

在现有 Xamarin Forms 项目中添加新的 Android 项目[IOS]

在Xamarin.Forms项目中加载缺少程序集的问题

无法解析 ObjCRuntime.TrampolineBlockBase

更新到 Xcode 11.3.1 后,在 Xamarin Forms iOS 项目中出现错误“无法解析 AuthenticationServices.IASAuthorizationControlle

Xamarin Forms Android 项目图像未显示但在 iOS 上正确显示