我正在使用Firebase Auth集成的Xamarin.Forms应用程序。我已经为Android和iOS设置了Dependency Service,以便在出现提示时创建新用户。 Android依赖项工作正常,但每当我在iOS依赖项中调用任何“Auth”方法时,应用程序在启动时崩溃,并从我的委托文件中的“Firebase.Core.App.Configure()”行抛出以下错误:
已抛出Foundation.MonoTouchException
抛出Objective-C异常。名称:NSInvalidArgumentException原因: - [FIRApp setGetTokenImplementation:]:无法识别的选择器发送到实例0x282d3d1a0
......然后是一英里长的堆栈跟踪
我目前的iOS依赖关系代码如下:
using System;
using Xamarin.Forms;
using ActNearMe; //name of my app
using Firebase.Auth;
using Firebase.InstanceID;
using Firebase.Core;
using System.Collections.Specialized;
using System.Net;
using System.Threading.Tasks;
[assembly: Dependency(typeof(IFirebaseInterface))]
namespace ActNearMe.iOS
{
public class FirebaseInterface : IFirebaseInterface
{
WebClient client = new WebClient();
NameValueCollection sendingData;
public void CreateNewUser(string email, string password, NameValueCollection userData)
{
//sendingData = userData;
//Anytime I call anything with Auth here, the app won't even load.
Console.WriteLine(Auth.CurrentVersion);
//Auth.DefaultInstance.CreateUser(email, password,(authResult, error) => {
/*client.UploadValuesCompleted += (sender, e) =>
{
Console.WriteLine("it's done!");
};
client.UploadValuesAsync(new Uri("http://www.cvx4u.com/anm_web_services/create_user.php"), sendingData);
*/
//});
}
}
}
这是我的错误日志:
2019-04-15 10:18:53.724 ActNearMe.iOS[6964:1670900] +[FIRApp registerAsConfigurable:]: unrecognized selector sent to class 0x1060d1bb8
2019-04-15 10:18:53.724 ActNearMe.iOS[6964:1670900] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[FIRApp registerAsConfigurable:]: unrecognized selector sent to class 0x1060d1bb8'
*** First throw call stack:
(0x22401c518 0x2231f79f8 0x223f3e2c4 0x224021d60 0x2240239fc 0x2231f9ffc 0x2231fbe54 0x106626390 0x106638314 0x106637370 0x10663742c 0x1066266d8 0x10662b2a0 0x106625044)
libc++abi.dylib: terminating with uncaught exception of type NSException
Application 'com.russjowell.actnearme' terminated.
Launched application 'com.russjowell.actnearme' on 'iPhone (2)' with pid 6964
更新所以我一直在玩弄开关,省略某些代码行等等。我也在使用Firebase Analytics和我的应用程序,当我从我的Xamarin.iOS项目中删除Firebase iOS NuGet Analytics软件包时,一切正常,但是当您同时使用Google Analytics和Auth软件包时,崩溃就会重新开始。所以我想我的新问题是:是否可以在同一个项目中同时使用Firebase iOS Auth和Firebase iOS Analytics?任何见解都会有所帮助。
该错误表示应该处理应该处理该消息的对象。
这可能是绑定的问题,也可能是向Firebase提供回调的方式。
无法仅从您的代码段中诊断问题,因此快速解决方法是执行以下操作:
无论将C#对象传递给Firebase的对象是什么,都可能需要保存在静态全局变量上。这将确保它不会被处置。
问题在于NuGet包。
该内部方法存在于v5.1.8中,但不存在于v5.2.0中。
现在,请降级到5.1.8
https://github.com/xamarin/GoogleApisForiOSComponents/issues/245