集成Firebase的Analytics功能

来源:互联网 发布:java返回类型是什么 编辑:程序博客网 时间:2024/04/29 14:00

新浪微博:东门兜

1、下载Firebase工程包

翻个墙,登录Firebase官方说明文档的网址
你可以使用cocoapods集成,也可以手动下载工程包。
cocoapods集成的比较简单,而我是手动下载:
Firebase集成包

2、下载GoogleService-Info.plist

进入Firebase Console
注册一个测试的demo,填入相应的bundle id:

测试的demo

从这个测试的demo里面下载GoogleService-Info.plist。
GoogleService-Info.plist

3、Firebase工程包集成

外部条件准备好了之后,在工程里集成。
如果你使用的是Xcode 7创建的工程,那么将工程包和plist文件放入工程中就可以正常使用了。但是如果你的工程有一定历史了,那么就要做一些处理了。

将Firebase工程包拷贝到工程的文件夹中
Firebase工程包

链上链接,加入工程
Firebase工程包

4、GoogleService-Info.plist集成

将GoogleService-Info.plist加入工程
GoogleService-Info.plist

5、编译错误

运行之后发现报错了
ABAddressBook错误
在Build Phases的Link Binary With Libraries中加入AddressBook.framework
AddressBook.framework
再次运行,还是有错,以相同的方式加入
ibc++.tbd、libsqlite3.tbd
就可以编译成功了。

6、子工程加入Firebase的framework

一般的工程到这边就差不多了,而我的主工程A中的framework中又包含了另外一个子工程B,然后要在子工程B中调用主工程A的Firebase,有点难度。
找到子工程B,在Build Phases的Link Binary With Libraries中加入Firebase的工程包,使用Add Other…添加,找到上面加入到主工程A文件夹的Firebase工程包
Firebase工程包
将除了.h外的framework文件都加进去。

7、子工程加入Firebase的Firebase.h

在子工程B文件目录中加入Firebase.h文件,找到上面加入到主工程A文件夹的Firebase工程包
Firebase.h

8、Firebase初始化

编译的时候发现一切正常,那么开始使用Firebase的Analytics功能。你可以参考官方文档适用于 iOS 的 Firebase Analytics 使用入门
在子工程B头部加入

#import "Firebase.h"

applicationDidFinishLaunchingWithOptions方法中加入

[FIRApp configure];

发现报错了,问题是:
Use of undeclared identifier ‘FIRApp’
这是因为子工程B的Framework Search Paths没有指向新加入的工程包路径,解决办法在Build Setting中找到Framework Search Paths,输入

$(SRCROOT)/../BPProject/ExternalLibrary/Firebase

具体路径具体分析,因为BPProject是主工程A,所以指向这里。
再次编译,就发现没有问题了。

9、Firebase事件调用

在basecontroller基类控制器头部加入

#import "Firebase.h"

在viewDidLoad方法中加入

[FIRAnalytics logEventWithName:NSStringFromClass(self.class)                    parameters:@{                                 @"viewController_name":NSStringFromClass(self.class),                                 }];

或许你也可以使用方法转换:jrswizzle 来完成相应的功能。
以上介绍的是事件调用,你还可以看看属性调用的相关内容。

10、打开日志

在Edit Scheme…中的Arguments Pressd On Launch中加入字段
-FIRAnalyticsDebugEnabled

日志开关

11、大功告成

可以看到一些控制台日志。
控制台日志
注意,iOS的日志并不是马上上传到Firebase官网,而是在24小时之内某个时间上传。还有如果控制台报了一些请求超时的错误,这可能是你没有翻墙造成的。

0 0
原创粉丝点击