当前位置:主页 > 书籍配套资源 > iOS配套资源
《iOS全埋点解决方案》源码

《iOS全埋点解决方案》源码

  • 更新:2022-01-28
  • 大小:5.08 MB
  • 类别:iOS
  • 作者:王灼洲
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

内容简介

本书从实战角度全面讲解了iOS全埋点技术和解决方案,为基于iOS系统的各种数据采集场景提供详尽的指导。

本书由神策数据官方出品,总结了他们过去为1000余家企业客户提供服务的实践经验。执笔人是神策数据合肥研发中心负责人,在Android & iOS等领域有10年的研发经验,对各种数据采集技术和解决方案都有深入研究,开发和维护着国内第一个商用的开源 Android & iOS 数据埋点 SDK。
全书一共14章:

第1~2章介绍了数据采集SDK框架的搭建,以及应用程序的退出和启动,这是实现iOS全埋点的基础;

第3~6章依次详细讲解了页面浏览事件、控件点击事件、UITableView和UICollection View点击事件、手势采集等场景的全埋点技术和解决方案;

第7~14章分别讲解了用户标识、时间相关、数据存储、数据同步、采集崩溃、App 与 H5 打通、App Extension React Native等场景的全埋点技术和解决方案。

所有的解决方案都提供了完整的项目源代码,具有极强的实操性。

大部分互联网行业的从业人员可能都比较熟悉埋点这个概念,即通过嵌入第一方或者第三方 SDK,采集用户在产品上的操作,也就是采集用户的行为数据。埋点一般可以分为客户端埋点和后端埋点。客户端埋点由于更加贴近业务,更加直观,因此成为目前市面上的主流数据采集手段。其中,Android与iOS端的埋点更是得到了广泛应用。对于iOS端的埋点,目前市面上主要流行代码埋点与全埋点两种技术方案。其中,代码埋点即显式地调用数据采集SDK提供的接口来采集数据,在采集能力上有比较大的优势,但是需要做额外的开发,易用性较为欠缺;全埋点则不需要额外写代码,使用方便快捷,但是在采集能力上有所欠缺,并且存在比较多的兼容性问题。两种方案说不上孰优孰劣,各自有适用的应用场景。根据服务客户所积累的最佳实践,我们推崇两种方案综合使用。

灼洲以及他所负责的SDK团队,在公司内部一直负责客户端与服务端的数据采集SDK的研发工作,不仅为客户提供了完整的数据采集方案,而且解决了客户在数据采集过程中碰到的各种疑难问题。在整个研发与服务客户的过程中,灼洲团队积累了丰富的经验,并且通过开源数据采集SDK、持续举办各种技术沙龙,为整个数据采集的技术社区做出了一些贡献。在这个过程中,团队也希望能够通过这本书的出版,给读者讲明白“iOS全埋点”这一之前看起来有点像“黑科技”的技术方案的实现细节,以及各种实现方式的优缺点。同时,也希望读者在读了本书之后,能够对数据采集有更多的认识,能够结合自己的实际业务场景,设计出更好的数据采集方案。

封面图

目录

  • 推荐序
  • 前言
  • 第1章数据采集SDK1
  • 1.1数据采集SDK简介1
  • 1.2搭建SDK框架3
  • 1.2.1新建Cocoa Touch Framework3
  • 1.2.2新建Workspace4
  • 1.2.3新建Demo工程7
  • 1.2.4添加依赖关系10
  • 1.2.5编写埋点SDK10
  • 1.2.6Demo集成埋点SDK18
  • 第2章应用程序退出和启动20
  • 2.1全埋点简介20
  • 2.2应用程序退出21
  • 2.2.1应用程序状态21
  • 2.2.2实现步骤22
  • 2.3应用程序启动24
  • 2.3.1实现步骤24
  • 2.3.2优化26
  • 2.4被动启动28
  • 2.4.1Background Modes29
  • 2.4.2实现步骤30
  • 2.4.3优化33
  • 第3章页面浏览事件36
  • 3.1UIViewController 生命周期36
  • 3.2Method Swizzling37
  • 3.2.1Method Swizzling基础37
  • 3.2.2实现Method Swizzling的相关函数39
  • 3.2.3实现Method Swizzling40
  • 3.3实现页面浏览事件全埋点42
  • 3.3.1实现步骤42
  • 3.3.2优化45
  • 3.3.3扩展48
  • 3.3.4遗留问题52
  • 第4章控件点击事件53
  • 4.1Target-Action53
  • 4.2方案一54
  • 4.2.1实现步骤55
  • 4.2.2优化$AppClick事件57
  • 4.2.3支持更多控件65
  • 4.3方案二70
  • 4.3.1实现步骤70
  • 4.3.2支持更多控件75
  • 4.4方案总结78
  • 第5章UITableView和UICollection-View点击事件80
  • 5.1支持UITableView控件80
  • 5.1.1方案一:方法交换80
  • 5.1.2方案二:动态子类86
  • 5.1.3方案三:消息转发93
  • 5.1.4三种方案的总结102
  • 5.1.5优化103
  • 5.2支持UICollectionView控件107
  • 第6章手势采集112
  • 6.1手势识别器112
  • 6.2手势全埋点114
  • 6.2.1UITapGestureRecognizer全埋点114
  • 6.2.2UILongPressGestureRecognizer全埋点118
  • 第7章用户标识121
  • 7.1登录之前122
  • 7.1.1UDID122
  • 7.1.2UUID125
  • 7.1.3MAC地址126
  • 7.1.4IDFA128
  • 7.1.5IDFV129
  • 7.1.6IMEI130
  • 7.1.7最佳实践130
  • 7.2登录之后140
  • 第8章时间相关144
  • 8.1事件发生的时间戳145
  • 8.2统计事件持续时长147
  • 8.2.1实现步骤147
  • 8.2.2事件的暂停和恢复152
  • 8.2.3后台状态下的事件时长155
  • 8.3全埋点事件时长158
  • 8.3.1$AppEnd事件时长158
  • 8.3.2$AppViewScreen 事件时长160
  • 第9章数据存储162
  • 9.1数据存储策略162
  • 9.1.1沙盒163
  • 9.1.2数据缓存165
  • 9.2文件缓存166
  • 9.2.1实现步骤166
  • 9.2.2优化174
  • 9.2.3总结179
  • 9.3数据库缓存179
  • 9.3.1实现步骤179
  • 9.3.2优化190
  • 9.3.3总结197
  • 第10章数据同步198
  • 10.1同步数据198
  • 10.1.1Foundation简介198
  • 10.1.2同步数据202
  • 10.2数据同步策略212
  • 10.2.1基本原则212
  • 10.2.2策略一214
  • 10.2.3策略二215
  • 10.2.4策略三220
  • 第11章采集崩溃223
  • 11.1NSException异常223
  • 11.1.1捕获NSException 异常224
  • 11.1.2传递UncaughtException-Handler227
  • 11.2捕获信号229
  • 11.2.1Mach 异常和Unix 信号230
  • 11.2.2捕获Unix信号异常231
  • 11.3采集应用程序异常时的$AppEnd事件235
  • 第12章App与H5打通238
  • 12.1App与H5打通原因238
  • 12.2方案一:拦截请求239
  • 12.2.1修改UserAgent239
  • 12.2.2是否拦截243
  • 12.2.3二次加工H5事件244
  • 12.2.4拦截246
  • 12.2.5测试验证247
  • 12.3方案二:JavaScript与WebView相互调用255
  • 第13章App Extension259
  • 13.1App Extension介绍259
  • 13.1.1App Extension类型259
  • 13.1.2App Extension 生命周期261
  • 13.1.3App Extension通信261
  • 13.1.4App Extension示例262
  • 13.2App Extension埋点270
  • 第14章React Native全埋点283
  • 14.1React Native 简介283
  • 14.1.1创建项目283
  • 14.1.2基础控件286
  • 14.2React Native全埋点293
  • 14.2.1事件响应293
  • 14.2.2$AppClick 事件295

资源下载

资源下载地址1:https://pan.baidu.com/s/15X5Kv0LFRVsUJpPdud73QA

相关资源

网友留言