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

Posted

技术标签:

【中文标题】更新到 Xcode 11.3.1 后,在 Xamarin Forms iOS 项目中出现错误“无法解析 AuthenticationServices.IASAuthorizationControllerDelegate”【英文标题】:After update to Xcode 11.3.1, getting error "Failed to resolve AuthenticationServices.IASAuthorizationControllerDelegate" in Xamarin Forms iOS project 【发布时间】:2020-08-16 02:25:39 【问题描述】:

我的 Xamarin Forms 应用程序(使用 Visual Studio 2017 在 Windows 10 上构建,连接到运行 Mojave 的远程 Mac)多年来一直在构建并发布到 androidios 商店。

但是,在将我的远程 Mac 的 Xcode 安装更新到 11.3.1(以遵守 Apple 对应用程序发布的最新强制执行)后,我突然遇到了神秘的构建错误:

Failed to resolve "AuthenticationServices.IASAuthorizationControllerDelegate" reference from "Xamarin.iOS, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065"

我已经阅读过类似的问题,但它们与我的设置无关,在花了一整天的时间后我找不到解决方案 - 所以我很难过;不能再在iOS上构建了。有没有人可以解释这个错误?

【问题讨论】:

【参考方案1】:

如果您更新了 XCode,通常您也需要更新您的 Visual-Studio。

新的 XCode 使用新的 iOS sdk,您需要更新您的视觉工作室以使用新的 Xamarin.iOS sdk。

您也可以尝试将Linker Behavior 设置为Link SDK assemblies only

我建议您使用 Visual Studio 2019 而不是 Visaul-Studio 2017。

【讨论】:

唉,我们已经有了 VS2017 的最新更新,并且已经在使用“仅链接 SDK 程序集”。我们很想开始使用 VS2019,但不幸的是,对于 Xamarin 开发来说,它仍然是一场绝对的车祸,所以在稳定性和错误得到补救之前,我们别无选择,只能留在 2017 年。 您使用的是哪个版本的 Xamarin.iOS? Xamarin.iOS 和 Xamarin.Mac SDK:12.4.0.64 (9c8d8e0) ASAuthorizationControllerDelegate 从 iOS 13 开始存在,您需要在项目中使用 Xamarin.iOS 13+。 Here 是 Xamarin.iOS 的发行说明。 在阅读了您链接的内容并进行了更多实验之后,核心问题是VS1017不支持Xcode 11.3,但是VS2019也不支持它,由于一些Apple 引入的已知错误。这些错误在 Xcode 更新中不存在,但是 11.3 是 MacOS Mojave 支持的最后一个 Xcode 版本,因此我们陷入了不受我们任何平台支持的困境。我将通过将 Xcode 降级到 v11 来做更多的实验,看看是否有帮助。【参考方案2】:

在与 Microsoft 和 Apple 支持人员进行长时间对话后,需要多个步骤来解决此问题:

将 Visual Studio 2017 升级到 Visual Studio 2019,使用最新补丁(2020 年 6 月 2 日发布)。 将远程构建服务器从 Mojave 升级到 Catalina。 将构建服务器上的 Xcode 升级到 11.5。

以下来自 Microsoft 支持的引述总结了我遇到的问题: “在 VS2017 或 VS2019 上,Xcode 11.4 不支持构建 Xamarin iOS 应用程序。您必须升级到 Xcode 11.5(以及 Catalina)才能在 VS2019 中获得无错误的体验。”

【讨论】:

以上是关于更新到 Xcode 11.3.1 后,在 Xamarin Forms iOS 项目中出现错误“无法解析 AuthenticationServices.IASAuthorizationControlle的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 项目更新到 Xcode 到 6.3 后显示错误

为啥我的 Xcode 插件(如 clang 格式)在更新到新版本的 Xcode 后不再工作了?

更新到 Xcode 11.0 后反应本机崩溃

为啥我的 Xcode 插件(例如 clang 格式)在更新到新版本的 Xcode 后,与 Alcatraz 一起安装不再工作?

xcodebuild 更新到 xcode 4.3 后移动

Playground 导入 - 更新到 Xcode 12 后没有这样的模块