常见问题

最后更新于:2018-02-03 11:50:55

1、为什么属性值不支持NSArray?

事件属性的 list 类型,元素不允许重复,为了防止开发人员误传,所以就用 NSSet 限制了。

传入 NSArray crash,是因为 debugMode 设置的是SensorsAnalyticsDebugOnlySensorsAnalyticsDebugAndTrack,设置成 SensorsAnalyticsDebugOff 就不会崩溃了。

2、DebugMode 中的SensorsAnalyticsDebugOnly 与 SensorsAnalyticsDebugAndTrack 有什么区别?

SensorsAnalyticsDebugOnly 模式下,同步数据时,服务端只做校验,不会真正的导入数据。 而在 SensorsAnalyticsDebugAndTrack 模式下,服务端校验并且会导入数据。

3、为什么系统名称会同时出现 iPhone 和 iOS

iOS10 中,

[[UIDevice currentDevice] systemName]

iPhone OSiPad OS 统一成 iOS 了。

建议更新 iOS SDK1.6.19 及以后的版本,$os 将统一成 iOS

4、App版本号不包含build信息

$app_version 属性我们SDK中默认获取 ShortVersion (即:NSBundleCFBundleShortVersionString 对应的值),代码如下:

[[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/NOtrue/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.