按Xamarin Firebase iOS指南调用Firebase.Core.App.Configure()遇配置失败求助
我之前在Xamarin.iOS集成Firebase Cloud Messaging时也碰到过一模一样的问题,给你整理几个亲测有效的排查和解决步骤:
检查GoogleServices-Info.plist的Build Action
一定要确认你的GoogleServices-Info.plist文件的Build Action设置为BundleResource。在Visual Studio里右键这个文件→属性,就能看到这个选项。如果设置不对,文件不会被打包到应用的bundle里,Firebase找不到配置信息自然会报ID无效的错误。核对GOOGLE_APP_ID的准确性
直接打开GoogleServices-Info.plist,找到GOOGLE_APP_ID字段,和Firebase控制台里对应iOS应用的配置信息对比一下(控制台下载plist的页面也能看到这个ID)。有时候不小心下载了其他应用的plist,或者手动修改过这个字段,都会导致ID不匹配。清理缓存并重建项目
Xamarin的缓存偶尔会搞事情,导致资源文件没正确更新。试试这几步:- 右键解决方案→清理
- 手动删除项目里的bin和obj文件夹
- 重启Visual Studio
- 重新生成整个解决方案
确保Firebase NuGet包版本统一
如果你同时安装了多个Firebase相关的NuGet包(比如Xamarin.Firebase.iOS.Core和Xamarin.Firebase.iOS.CloudMessaging),一定要保证它们是同一大版本的。版本不兼容很容易引发配置失败,建议在NuGet包管理器里把所有Firebase包都更新到最新的稳定版本。尝试手动初始化Firebase
如果上面的方法都没用,可以试试绕开plist读取,手动传入配置信息初始化:var firebaseOptions = new Firebase.Core.Options("你的GOOGLE_APP_ID", "你的GCM_SENDER_ID"); Firebase.Core.App.Configure(firebaseOptions);这两个值都能从正确的
GoogleServices-Info.plist里找到,这样能直接验证你的ID是否有效,也能排除plist读取的问题。
小提醒:如果是Xamarin.Forms的iOS项目,记得把初始化代码放在
AppDelegate的FinishedLaunching方法里,而且要在其他Firebase服务初始化之前执行哦。
内容的提问来源于stack exchange,提问作者ClintL

