【问题标题】:Xamarin iOS build error - Native linking failed (Link Framework SDKs Only)Xamarin iOS 构建错误 - 本机链接失败(仅限链接框架 SDK)
【发布时间】:2020-07-19 17:29:32
【问题描述】:

Visual Studio 更新后无法运行 Xamarin iOS 项目。

因为更新的 IDE 需要最新的 Xcode(Xcode 11.4 附带的 iOS 13.4 SDK)

环境详情

  • 操作系统版本:macOS Mojave、OS X 10.14.6
  • IDE:Visual Studio Community 2019 for Mac 版本 8.5.1(内部版本 42)
  • Xamarin.iOS 版本:13.16.0.11(Visual Studio 社区)
  • Xamarin.Mac 版本:6.16.0.11(Visual Studio 社区)
  • Xcode 13.2 版

我尝试了什么

我没有更新 Xcode,而是简单地将 Linker Behaviour 更改为 Link Framework SDKs Only

不走运,我收到以下错误。

Error MT5210: Native linking failed, undefined symbol: ___darwin_check_fd_set_overflow. 
Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in. (MT5210)

Error MT5202: Native linking failed. Please review the build log. (MT5202)

Error: linker command failed with exit code 1 (use -v to see invocation)

参考

是否有其他选项可以在不更新 Xcode 和 macOS 的情况下解决问题?

任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 您可以尝试使用较低的 Xamarin.iOS 版本吗?
  • 能否请您标记我添加的答案,以便我们可以帮助更多有相同问题的人:)。
  • 我最近遇到了同样的问题,无法解决(我无法升级 xcode...)。我注意到的是,在构建日志中它说需要违规符号的文件与调试有关。瞧,项目在发布模式下构建和运行:D。所以这可能是 VS 端的一个错误,也许它会得到修复。
  • 能否请您标记正确的答案,这将帮助更多有同样问题的人:)。

标签: xamarin.forms xamarin.ios linker-errors xamarin-linker


【解决方案1】:

原因:最新的 Visual Studio 需要最新的 Xcode(iOS 13.4 SDK Xcode 11.4 附带)

要解决此问题,请安装最新的Xcode 或使用较低的 Xamarin.iOS版本

 if you are on a mac, you might be able to find the previous installer here:

~/Library/Caches/VisualStudio/[替换为 Visual Studio 版本]/TempDownload

或者,如果您知道之前版本 ios 的版本,您可以从这里下载(更改版本号以适合您的需要:

https://dl.xamarin.com/MonoTouch/Mac/xamarin.ios-13.14.1.39.pkg

Xamarin/xamarin-macios Releases, which contains every version

如果您使用的是 Windows,这篇文章可能会为您提供一些关于在哪里可以找到本地缓存的线索:https://montemagno.com/cleanup-up-space-xamarin-dev-machine/

更多详情:Ans-1 | Ans-2

【讨论】:

  • 在我的 Mac 上下载并安装 xamarin.ios-13.14.1.39.pkg 为我解决了这个问题,但我确实必须重新启动 Visual Studio for Windows 并重新与 Mac 配对才能获得 vs4w意识到它已经改变了。
【解决方案2】:

最新版本的 Visual-Studio 使用最新版本的 Xamarin.iOS,可能不适用于较低版本的 Xcode。

所以使用较低的 Xamarin.iOS 版本可以解决这个问题。

【讨论】:

  • 有没有地方可以下载老版本的VS或者Xamarin.iOS?我可以在 VS 下载页面上返回 1 个版本,但不能更进一步。
  • 如何降低 Xamarin.ios 版本
  • this question查看我的答案。
【解决方案3】:

Apple 似乎在最近的 XCode 中破坏了 -no_weak_imports 的使用(请参阅 https://github.com/mono/mono/issues/19393#issuecomment-606852342https://github.com/mono/mono/issues/19393#issuecomment-607126761 )。 Upstream Mono 似乎已经解决了 https://github.com/dotnet/runtime/pull/36436 的问题,但有人想知道为什么 Apple 在其系统库中引入了对弱符号的硬依赖,同时仍然提供禁用弱符号的选项...

【讨论】:

    猜你喜欢
    • 2021-01-24
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    相关资源
    最近更新 更多