常见问题
最后更新于:2018-02-03 11:50:55
1、为什么属性值不支持NSArray?
事件属性的 list
类型,元素不允许重复,为了防止开发人员误传,所以就用 NSSet 限制了。
传入 NSArray
crash,是因为 debugMode
设置的是SensorsAnalyticsDebugOnly
或 SensorsAnalyticsDebugAndTrack
,设置成 SensorsAnalyticsDebugOff
就不会崩溃了。
2、DebugMode 中的SensorsAnalyticsDebugOnly 与 SensorsAnalyticsDebugAndTrack 有什么区别?
在 SensorsAnalyticsDebugOnly
模式下,同步数据时,服务端只做校验,不会真正的导入数据。 而在 SensorsAnalyticsDebugAndTrack
模式下,服务端校验并且会导入数据。
3、为什么系统名称会同时出现 iPhone 和 iOS
在 iOS10
中,
[[UIDevice currentDevice] systemName]
将 iPhone OS
和 iPad OS
统一成 iOS
了。
建议更新 iOS SDK
到 1.6.19 及以后的版本,$os
将统一成 iOS
。
4、App版本号不包含build信息
$app_version
属性我们SDK中默认获取 ShortVersion
(即:NSBundle
中 CFBundleShortVersionString
对应的值),代码如下:
[[NSBundle mainBundle] infoDictionary][@"CFBundleShortVersionString"];
由于各个公司对 build
定义的不同,我们无法将 build
简单的拼接到 version
的后面,或者简单的使用 build
作为 version
。因为有些客户的 build
就是一个简单的编号,如:235,有些客户的 build
中已包含 version
的信息,如:1.2.3.235)。如果 version
中需要包含 build
信息,例如 build
中已经包含了 version
的信息,可以直接把 build
的值作为 $app_version
的值,只需在初始化 SDK 之后调用如下代码即可:
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
NSString *app_build = [infoDictionary objectForKey:@"CFBundleVersion"];
[[SensorsAnalyticsSDK sharedInstance] registerSuperProperties:@{@"$app_version" : app_build}];
客户可根据具体的需求对$app_version
属性进行赋值。
5、属性对应的value值中 YES/NO
和 true/false
的区别
用户在track事件或profile用户属性时,会添加自定义属性。在添加自定义属性时,若传入的属性对应的value值为 YES/NO
,对应的数据类型为BOOL;若传入的value为 true/false
,对应的数据类型为NUMBER,请确保同名属性的类型一致。例如:
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:@YES forKey:@"isFirst"];
[dict setObject:@true forKey:@"isStart"];
其中:
isFirst
对应的数据类型为 BOOL 类型
isStart
对应的数据类型为 NUMBER 类型
6、开启 IDFA 后如何通过审核
以上是使用广告标识符(IDFA)的选项,每个选项的具体含义如下:
- 在 App 内投放广告
- 服务应用中的广告,如果您的应用中集成了广告,需要选择该选项;
- 将此 App 安装归因于先前投放的特定广告
- 跟踪投放的广告带来的安装,如果您使用了我们提供的渠道追踪功能,但是应用中并没有集成广告,需要选择该选项;
- 将此 App 中发生的操作归因于之前投放的广告
- 跟踪广告带来的用户的后续行为,如果您使用了我们提供的渠道追踪功能,需要选择该选项;
- iOS 中的“限制广告跟踪”设置,
- 这一项下的内容其实就是对你的应用使用 IDFA 的目的做下确认,只要你选择了采集 IDFA,那么这一项都是需要勾选;
如果您应用中集成了广告,并且使用了我们的渠道追踪功能,可选择1、2、3、4选项;如果您应用中没有集成广告,但是使用了我们的渠道追踪功能,可选择2、3、4选项。
7、使用 .a 静态库的方式集成 SDK
选中对应的 target ,build settings -> other linker flag 设置为 -ObjC.