首页 > 解决方案 > nuget 包 Xamarin.Firebase.iOS.CloudMessaging 3.1.2 的问题

问题描述

如果我安装 Xamarin.Firebase.iOS.CloudMessaging 3.1.2 nuget 包,我会收到许多错误消息。

错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

错误 MT5210:本机链接失败,未定义符号:_FIRLogBasic。请确认所有必要的框架都已被引用,并且本地库已正确链接。

错误 MT5211:本机链接失败,未定义的 Objective-C 类:FIROptions。在与您的应用程序链接的任何库或框架中都找不到符号“_OBJC_CLASS_$_FIROptions”。

错误 MT5211:本机链接失败,未定义的 Objective-C 类:GULAppEnvironmentUtil。在与您的应用程序链接的任何库或框架中都找不到符号“_OBJC_CLASS_$_GULAppEnvironmentUtil”。

错误 MT5201:本机链接失败。请查看构建日志和提供给 gcc 的用户标志:-ObjC

错误 MT5202:本机链接失败。请查看构建日志。

我尝试卸载并重新安装 nuget 包,但仍然遇到相同的错误。

我使用 Visual Studio Community for Mac 8.1.5(内部版本 9)。

我需要 Xamarin.Firebase.iOS.CloudMessaging 因为我遵循本教程:https ://www.robbiecode.com/setup-push-notifications-with-firebase-in-xamarin-forms-for-ios/

我的项目有什么问题?我能做些什么?

我的解决方案中有以下两个项目:InapppurchaseTest.iOS、MonoGame.Framework.iOS(开发)

在此处输入图像描述

标签: c#xamarin.iosfirebase-cloud-messaging

解决方案


好吧,这是 Firebase 和 Xamarin 的一个众所周知的问题,这里基本上发生的是旧的 bin 和 obj 文件,同时与新数据交互会覆盖 iOS 在部署时合成 IPA 所需的一些现有文件,因此结束抛出链接相关错误,请按照以下步骤操作,它将清除这个混乱。

  • 清理 bin 和 obj
  • 删除 MAC 机器以下路径中的构建 - ~/Library/Caches/Xamarin/mtbs/builds/ ProjNAME其中“ProjName”是您当前正在处理的项目的名称
  • 完成上述两个步骤后,添加Xamarin.Firebase.iOS.CloudMessaging包并将链接器设置更改为“不链接”(暂时是这样
  • 安装这些软件包后,请注意构建项目依赖项,这意味着首先是 PCL 和 .Net 标准,然后是本机 iOS 项目。
  • 如果它不适用于第一次构建,请再次清理 bin 和 obj...

如果它不重复上述过程,这应该可以解决您的问题。

编辑

如果您在这里查看 SotoiGhost 的 GitHub 评论,它会说在您的项目中的任何位置添加以下行应该可以解决此问题...

var foo = Firebase.Core.Configuration.SharedInstance;

如有问题,请随时返回

祝你好运!


推荐阅读