应苹果公司App Store更新/上架APP最新隐私保护政策要求,使用了DataFinder的iOS SDK进行数据采集的话,需同时提供APP与SDK相关的隐私配置文件(PrivacyInfo.xcprivacy),说明App 如何处理用户数据。本文为您提供DataFinder的iOS SDK的隐私配置文件说明,您需要根据实际使用到的子库情况,将SDK的隐私配置文件说明合入您的APP中。
单击下方附件链接,下载DataFinder的iOS SDK的PrivacyInfo.xcprivacy附件。
DataFinder的PrivacyInfo.xcprivacy中罗列了iOS SDK 采集的隐私数据及使用的隐私 API,其中默认为生效了所有用户均涉及的最小子库集。
pod 'RangersAppLog', 'SDK-VERSION', :subspecs => [ 'Core' ]
使用了UITracker子库、Exception子库、Unique子库时,您需要手动去掉PrivacyInfo.xcprivacy 中对应子库内容的注释。
该子库一般用于全埋点功能,如果使用了该子库,需要在 NSPrivacyCollectedDataTypes 中增加如下内容(DataFinder的PrivacyInfo.xcprivacy文件中默认将此部分内容注释掉了,您手动放开相关注释即可)。
<!-- 如果使用了 UITracker 子库,请放开 NSPrivacyCollectedDataTypeProductInteraction --> <dict> <key>NSPrivacyCollectedDataType</key> <string>NSPrivacyCollectedDataTypeProductInteraction</string> <key>NSPrivacyCollectedDataTypeLinked</key> <true/> <key>NSPrivacyCollectedDataTypeTracking</key> <false/> <key>NSPrivacyCollectedDataTypePurposes</key> <array> <string>NSPrivacyCollectedDataTypePurposeAnalytics</string> </array> </dict>
该子库一般用于异常采集功能,如果使用了该子库,需要在 NSPrivacyCollectedDataTypes 中增加如下内容(DataFinder的PrivacyInfo.xcprivacy文件中默认将此部分内容注释掉了,您手动放开相关注释即可)。
<!-- 如果使用了 Exception 子库,请放开 NSPrivacyCollectedDataTypeCrashData --> <dict> <key>NSPrivacyCollectedDataType</key> <string>NSPrivacyCollectedDataTypeCrashData</string> <key>NSPrivacyCollectedDataTypeLinked</key> <true/> <key>NSPrivacyCollectedDataTypeTracking</key> <false/> <key>NSPrivacyCollectedDataTypePurposes</key> <array> <string>NSPrivacyCollectedDataTypePurposeAnalytics</string> </array> </dict>
该子库一般用于 idfa 数据采集,如果使用了该子库,需要开启 NSPrivacyTracking 并设置 TrackingDomains,默认 NSPrivacyTracking 属性是关闭的。
请在 PrivacyInfo.xcprivacy 文件做如下操作
移除掉DataFinder默认的 NSPrivacyTracking 和 NSPrivacyTrackingDomains 配置(注释掉相关内容即可)。
<!-- 如果使用了 Unique 子库,请注释掉以下配置 NSPrivacyTracking,NSPrivacyTrackingDomains --> <key>NSPrivacyTracking</key> <false/> <key>NSPrivacyTrackingDomains</key> <array/>
重新配置 NSPrivacyTracking 如下(DataFinder的PrivacyInfo.xcprivacy文件中默认将此部分内容注释掉了,您手动放开相关注释即可)。
<!-- 如果使用了 Unique 子库,请放开下面的 NSPrivacyTracking,NSPrivacyTrackingDomains --> <key>NSPrivacyTracking</key> <true/>
重新配置 NSPrivacyTrackingDomains(DataFinder的PrivacyInfo.xcprivacy文件中默认将此部分内容注释掉了,您手动放开相关注释即可)。
DataFinder环境类型 | 修改示例 |
---|---|
SaaS-非云原生环境 |
|
SaaS-云原生环境 |
|
私有化环境 |
其中 |
将符合您的APP业务场景的SDK PrivacyInfo.xcprivacy文件接入您的APP中,以下为您提供两种接入方式,您可按需参考。
如果需要在 SDK 中单独配置 PrivacyInfo.xcprivacy 文件,则可以跳过这一节,直接查看下一小节。
在大部分场景下,建议您直接将SDK 的隐私配置合并至 App 的隐私配置中。即直接将SDK 的 PrivacyInfo.xcprivacy 文件合并至 App 的 PrivacyInfo.xcprivacy 文件中。操作参考如下。
单击右键,选择 Open AS --> Source Code 打开SDK的 PrivacyInfo.xcprivacy 文件.
将 NSPrivacyAccessedAPITypes 和 NSPrivacyCollectedDataTypes 下的内容拷贝至 App 的 PrivacyInfo.xcprivacy 文件中对应的位置即可。
NSPrivacyAccessedAPITypes位置示例 | NSPrivacyCollectedDataTypes位置示例 |
---|---|
如果用到了 idfa 数据,则还需要拷贝 NSPrivacyTrackingDomains 下的内容。
PrivacyInfo.xcprivacy 文件配置完成后,请确保在 Build Phases --> Copy Bundle Resources 中引入了该文件.
如果您是手动引入我们的离线安装包时,将安装包二次封装为 framework 或者 pod 依赖,则建议使用该方式配置。
如果使用了 idfa 数据,且用到了 Unique 子库,则需要修改SDK集成配置,按以下步骤配置 idfa 的请求域名。
注意
支持隐私域名配置的 SDK 最低版本为 6.16.6。
升级 SDK 至 6.16.6 版本即可,不需要额外的配置。
在 Podfile 中引入依赖
pod 'RangersAppLog', 'SDK-VERSION', :subspecs => [ 'Unique', ]
引入 IDFA 头文件
#import <RangersAppLog/BDAutoTrack+IDFA.h>
在 sdk 初始化之后,配置 idfa 专用域名
// 云原生模式 config.serviceVendor = BDAutoTrackServiceVendorPrivate; [BDAutoTrack setRequestHostBlock:^NSString * _Nullable(BDAutoTrackServiceVendor _Nonnull vendor, BDAutoTrackRequestURLType requestURLType) { return @"https://gator.volces.com"; }]; // 初始化 sdk [BDAutoTrack sharedTrackWithConfig:config]; // 配置 idfa 专用域名 [BDAutoTrack.sharedTrack setRequestIDFAHostBlock:^NSString * _Nullable(BDAutoTrackServiceVendor _Nonnull vendor, BDAutoTrackRequestURLType requestURLType) { return @"https://gator-tracking.datafinder.volces.com"; }]; // 启动 sdk [BDAutoTrack.sharedTrack startTrack];
私有化场景下,idfa 的专用域名由用户提供,域名规则上只需要与原先上报的域名不同即可。
在 Podfile 中引入依赖
pod 'RangersAppLog', 'SDK-VERSION', :subspecs => [ 'Unique', ]
引入 IDFA 头文件
#import <RangersAppLog/BDAutoTrack+IDFA.h>
在 sdk 初始化之后,配置 idfa 专用域名
// 私有化模式 config.serviceVendor = BDAutoTrackServiceVendorPrivate; [BDAutoTrack setRequestHostBlock:^NSString * _Nullable(BDAutoTrackServiceVendor _Nonnull vendor, BDAutoTrackRequestURLType requestURLType) { return @"{{REPORT_URL}}"; }]; // 初始化 sdk [BDAutoTrack sharedTrackWithConfig:config]; // 配置 idfa 专用域名 [BDAutoTrack.sharedTrack setRequestIDFAHostBlock:^NSString * _Nullable(BDAutoTrackServiceVendor _Nonnull vendor, BDAutoTrackRequestURLType requestURLType) { return @"{{IDFA_REPORT_URL}}"; }]; // 启动 sdk [BDAutoTrack.sharedTrack startTrack];