美文网首页iOS随记
FireBase爬坑记

FireBase爬坑记

作者: valiant_xin | 来源:发表于2017-10-25 16:04 被阅读108次

    昨天老大发来一个网页链接,说是要让对接一下一个SDK。跑去一看,是FireBase的,之前没听过,是做统计一类的,听说数据统计还算可以,这里是GitHub上项目地址。既然老大都已经说了,那么就继续往下做吧。

    1.导入firebase库

    下了一个VPN,跑去看了看文档,还行,上面说步骤不多。那就直接来吧,因为不是使用cocopads直接集成的,那就直接在官网手动下载SDK,然后拖进去。

    按照最简单的,直接导入头文件,进行Firebase注册。

    Firebase简单使用 打开调试,不需要的时候可以写-noFIRAnalyticsDebugEnabled

    当然,在Other Linker Setting中添加-ObjC,否则无法正常使用。

    2.项目出问题

    然后,让人崩溃的事情就来了,项目报错了。报错不可怕,可怕的是我们要去找错误,然后更改。好吧,这就是日常生活必须的。

    因为项目中集成的有谷歌广告,而Firebase中也是有谷歌广告的部分,我最开始想会不会他们之间起冲突。然后把firebase中的谷歌广告部分的库给去掉了,然而并没有什么卵用。

    忙活了一阵,也不知道具体在忙啥,然后就到晚上八点半了。暂时住在朋友家里,距离公司差不多有两个小时左右到路程,没办法,只能第二天来了重新搞呗。

    3.新建新项目,过流程

    今天来了公司,接着搞昨天没做完的事情。怀疑可能跟之前的项目有冲突,既然这样的话,那就直接开一个新的空项目,集成sdk。

    然后……还是报错,好吧,你赢了。运行后会说

    URL scheme needed for Google Sign-In not included in your app's Info.plist.

    这里说info.plist中没有谷歌登陆的URL scheme,怎么搞?郁闷了半天,看到东门兜的集成Firebase的Analytics功能这篇blog,在这篇文章的第五步中有一个需要添加系统库:AddressBook.framework、libc++.tbd、libsqlite3.tbd。

    好吧,既然需要添加,那就添加进去。错误变少了,不过对于之前的错误并没有什么帮助。后来在stack overflow上看到一个类似的问题:Google Sign-In crashes on iOS 9 attempting to call canOpenURL,在其中看到一个人的回答,需要将GoogleService-info.plist文件中的REVERSED_CLIENT_ID对应的value和App的bundle Id添加到URL scheme,好吧,到此为止,终于知道需要添加谁进入scheme中了。

    感谢josh的提问以及Eran Marom提供的回答

    按照这个步骤来,项目基本上能够正常跑起来,没有什么问题了。

    OK,正常的话,大家到这一步已经结束了。不过,因为我的项目中有一些其他的第三方存在,所以,爬坑的历程还没有结束。

    4.转回原项目,解决冲突

    我在项目中集成firebase之后,如果不在other link中写入-ObjC,那么项目不报错,但是firebase无法真正的集成进去。一旦打开之后,一片错误。没有办法,只能一点点解决了。

    首先,在CSDN上看到了yinxin2745154的博客,在其中介绍的

    "_GCControllerDidDisconnectNotification", referenced from:

    -[GCControllerConnectionEventHandler observerConnection:disconnection:] in libcocos2dx iOS.a(CCController-iOS.o)

    跟我其中一项报错一致,当我按照步骤将MediaPlayer.framework、GameController.framework添加进项目中后,果然这一条报错消失了。

    但是还是有很多错误存在:

    Facebook的广告部分出问题了,该怎么改?问了一下朋友,具体什么原因也不好多做猜测,没办法,还是只能靠自己查找答案了。

    在CSDN中xiaotian9959的博客看到一篇文章,跟我的报错类型比较类似。根据他的解决方法,添加了libxml2之后,这些错误都没有了。

    5.自己的作死

    基本上到这里,大家的问题应该都解决了,剩下的就是我自己的作死了。我在接入极光推送的时候,不知道怎么多拉进来一个.a库……在这里打开-ObjC之后,发现好多提示重复的东西。解决办法很简单,把多余的东西都删除掉,然后一切OK!

    6.集成完毕

    OK,到这里一切问题都解决了,就等着老大安排其他任务了。简单的写了一遍自己的爬坑记录,希望能够帮助到大家。

    相关文章

      网友评论

        本文标题:FireBase爬坑记

        本文链接:https://www.haomeiwen.com/subject/wvpqpxtx.html