我正在与Firebase Auth集成的Xamarin.Forms应用程序上工作。我已经为Android和iOS设置了依赖服务,以便在出现提示时创建新用户。 Android依赖项工作正常,但是每当我在iOS依赖项中调用任何“ Auth”方法时,应用程序启动时就会崩溃,并从委托文件中的“ Firebase.Core.App.Configure()”行引发以下错误:< / p>
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程序包时,一切正常,但是当同时使用Analytics和Auth程序包时,崩溃将继续。所以我想我的新问题是: 是否可以在同一项目中同时使用Firebase iOS Auth和Firebase iOS Analytics?任何见解都会有所帮助。
答案 0 :(得分:0)
该错误表明应该处理该消息的对象已被处置。
这可能是绑定问题,或者是向Firebase提供回调的方式。
无法仅通过您的代码片段来诊断问题,因此快速解决方法是执行以下操作:
无论将C#对象传递给Firebase的任何对象,都可能需要保留在静态全局变量上。这样可以确保它不会被处置。
答案 1 :(得分:0)
问题在于NuGet软件包。
该内部方法在v5.1.8中存在,但在v5.2.0中不存在。
目前,请降级至5.1.8
https://github.com/xamarin/GoogleApisForiOSComponents/issues/245