作者 | gaoyong |
创建时间 | 2020-11-30 12:56:02 |
字节跳动数据漫游者的基础分析产品数据发现者DataFinder的Flutter插件
data_finder是一个flutter plugin,为满足在使用flutter开发的App上使用字节跳动提供的数据漫游者的基础分析产品数据发现者DataFinder而开发的一个flutter plugin,目前支持Android, iOS两个平台
- 设备注册/激活
- 初始化dataFinder
- 用户登录后设置登录用户uuid
- 手动上报用户行为日志
- 上报行为埋点
- 在项目的pubspec.yaml中在增加下面配置:data_finder: ^0.0.7
- 然后在项目根目录(pubspec.yaml 所在的目录)执行命令:flutter pub get
- 设备注册/激活
//初始化SDK
//备注:204291为申请的appId
DataFinder.start("204291", channel: "App Store", showLog: true)
//登录态变化调用(设置uuid)
//备注:sf180为系统自身的uid
DataFinder.setUserUniqueID("sf180")
- 手动上报用户行为日志
DataFinder.onEventV3("event_name", params: {
"params1": "value1",
"params2": "value2",
}
初始化dataFinder
方法名称: DataFinder.start
参数说明:
参数名称 | 说明 | 类型 | 默认值 |
---|---|---|---|
appId | 在dataFinder后台申请的appId(应用列表中的应用ID) | String | - |
channel | 渠道名称,iOS一般默认App Store | String | app |
showLog | 是否在控制台输出日志,可用于观察用户行为日志上报情况 | bool | false |
示例:
//初始化SDK
//备注:204291为申请的appId
DataFinder.start("204291", channel: "App Store", showLog: true)
用户登录后设置登录用户uuid
方法名称: DataFinder.setUserUniqueID
参数说明:
参数名称 | 说明 | 类型 | 默认值 |
---|---|---|---|
userUniqueID | 自己的账号体系ID, 并保证其唯一性 | String | - |
示例:
//登录态变化调用(设置uuid)
//备注:sf180为系统自身的uid
DataFinder.setUserUniqueID("sf180")
上报行为埋点
方法名称: DataFinder.onEventV3
参数说明:
参数名称 | 说明 | 类型 | 默认值 |
---|---|---|---|
event | 事件名称 | String | - |
params | 事件属性,一个事件可以对应多个属性 | Map |
示例:
DataFinder.onEventV3("event_name", params: {
"params1": "value1",
"params2": "value2",
}
-
修改Podfile文件
在/Users/gaoyong/Documents/work/data_finder/example/ios/Podfile 文件中增加:
source 'https://github.com/bytedance/cocoapods_sdk_source_repo.git'
因为RangersAppLog5.6.3 现在(2020/12/08)还有bug,这里强制使用5.6.1
pod 'RangersAppLog','5.6.1'
pre_install do |installer| # workaround for https://github.com/CocoaPods/CocoaPods/issues/3289 Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {} end
-
执行pod install --repo-update
在/Users/gaoyong/Documents/work/data_finder/example/ 目录下执行
pod install --repo-update
- 无需配置
-
理论上按上面的配置就可以正常工作了,如果出现其他问题可能会因为版本或者环境问题导致,可先阅读一下DataFinder的提供的应用接入文档
-
因为现在没有涉及URL Scheme,所以上面没有配置,如果有需要参考接入文档,iOS添加URL Scheme 和Android添加url scheme
-
如果在接入过程中遇到其他问题欢迎大家提交issue,或者pr
如果希望执行一下该项目的示例程序的话看看效果的话,clone 或者 fork 该项目到本地硬盘后,cd 到 ../data_finder/example 目录下后,如果想看一下Android的效果,则cd至android 目录(../data_finder/example/android)执行 flutter run, 如果想看一下iOS的效果,用xcode 打开../data_finder/example/ios/Runner.xcworkspace, 编译执行即可
- flutter build ios --no-codesign
- flutter run
-
[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target
Runner
toTarget Support Files/Pods-Runner/Pods-Runner.profile.xcconfig
or include theTarget Support Files/Pods-Runner/Pods-Runner.profile.xcconfig
in your build configuration (Flutter/Release.xcconfig
).处理办法:参考文档
-
[!] The 'Pods-Runner' target has transitive dependencies that include statically linked binaries: (RangersAppLog)
处理办法:修改/Users/gaoyong/Documents/work/data_finder/example/ios/Podfile 注释掉 use_frameworks! 将use_frameworks! 修改为 #use_frameworks!
-
[!] Automatically assigning platform
iOS
with version9.0
on targetRunner
because no platform was specified. Please specify a platform for this target in your Podfile. Seehttps://guides.cocoapods.org/syntax/podfile.html#platform
.处理办法:修改/Users/gaoyong/Documents/work/data_finder/example/ios/Podfile 打开注释 # platform :ios, '9.0' 将# platform :ios, '9.0' 修改为 platform :ios, '9.0'
-
Command PhaseScriptExecution failed with a nonzero exit code
处理办法:Runner project > Info > Configurations 设置错误,正确的设置方法,参考这个设置和验证方式
-
Flutter/Debug.xcconfig:2: could not find included file 'Generated.xcconfig' in search paths
处理办法:https://stackoverflow.com/questions/54321180/error-could-not-find-included-file-generated-xcconfig-in-search-paths-in-tar 另:如果没有设置签名,则执行 flutter build ios --no-codesign
- *上面文档中提到的目录/Users/gaoyong/Documents/work/data_finder/example 仅为示例,实际场景应该是开发者自己的项目根目录(即含有pubspec.yaml文件的目录)*