如果我使用教程中提供的代码,我会收到以下警告:
警告 CS0618:“FirebaseInstanceIdService”已过时:“此类在此 android 平台中已过时”
警告 CS0672:成员“MyFirebaseIIDService.OnTokenRefresh()”覆盖过时的成员“FirebaseInstanceIdService.OnTokenRefresh()”。将 Obsolete 属性添加到“MyFirebaseIIDService.OnTokenRefresh()”。
警告 CS0618:“FirebaseInstanceId.Token”已过时:“已弃用”
我不明白我是否可以像现在一样使用此代码,或者是否有必要更改某些内容以使代码能够在当前的 Android 设备上运行。
是否需要更改代码?
我的 AndroidManifest.xml 设置:最低 Android 版本 = Android 5.0(API 级别 21),目标 Android 版本 = Android 9.0(API 级别 28)
MyFirebaseIIDService.cs:
using System;
using Android.App;
using Firebase.Iid;
using Android.Util;
namespace Androidproject
{
[Service]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class MyFirebaseIIDService : FirebaseInstanceIdService
{
const string TAG = "MyFirebaseIIDService";
public override void OnTokenRefresh()
{
var refreshedToken = FirebaseInstanceId.Instance.Token;
Log.Debug(TAG, "Refreshed token: " + refreshedToken);
SendRegistrationToServer(refreshedToken);
}
void SendRegistrationToServer(string token) …Run Code Online (Sandbox Code Playgroud) 如果安装 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(开发)