You need to enable JavaScript to run this app.
导航
iOS 接入隐私配置 PrivacyInfo.xcprivacy
最近更新时间:2024.04.24 15:03:54首次发布时间:2024.04.24 15:03:54

应苹果公司App Store更新/上架APP最新隐私保护政策要求,使用了DataTester的iOS SDK进行数据采集的话,需同时提供APP与SDK相关的隐私配置文件(PrivacyInfo.xcprivacy),说明App 如何处理用户数据。本文为您提供DataTester的iOS SDK的隐私配置文件说明,您需要根据实际使用到的子库情况,将SDK的隐私配置文件说明合入您的APP中。

获取PrivacyInfo.xcprivacy

单击下方附件链接,下载DataTester的iOS SDK的PrivacyInfo.xcprivacy附件。

PrivacyInfo.xcprivacy
未知大小

下载至您本地后,您可打开查看PrivacyInfo.xcprivacy配置详情,其中将一些非所有用户都会使用的部分子库相关配置注释掉了,您需要根据实际使用情况,如果有使用一些特殊子库,需手动修去掉其中的注释,详情可参见下文查看并修改PrivacyInfo.xcprivacy

查看并修改PrivacyInfo.xcprivacy

DataTester的PrivacyInfo.xcprivacy中罗列了iOS SDK 采集的隐私数据及使用的隐私 API,其中默认为生效了所有用户均涉及的最小子库集。

pod 'RangersAppLog', 'SDK-VERSION', 
    :subspecs => [
        'Core'
    ]

使用了UITracker子库、Exception子库、Unique子库时,您需要手动去掉PrivacyInfo.xcprivacy 中对应子库内容的注释。

UITracker 子库

该子库一般用于全埋点功能,如果使用了该子库,需要在 NSPrivacyCollectedDataTypes 中增加如下内容(DataTester的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>

Exception 子库

该子库一般用于异常采集功能,如果使用了该子库,需要在 NSPrivacyCollectedDataTypes 中增加如下内容(DataTester的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>

Unique 子库

该子库一般用于 idfa 数据采集,如果使用了该子库,需要开启 NSPrivacyTracking 并设置 TrackingDomains,默认 NSPrivacyTracking 属性是关闭的。
请在 PrivacyInfo.xcprivacy 文件做如下操作

  1. 移除掉DataTester默认的 NSPrivacyTracking 和 NSPrivacyTrackingDomains 配置(注释掉相关内容即可)。

    <!--  如果使用了 Unique 子库,请注释掉以下配置 NSPrivacyTracking,NSPrivacyTrackingDomains  -->
    <key>NSPrivacyTracking</key>
    <false/>
    <key>NSPrivacyTrackingDomains</key>
    <array/>
    
  2. 重新配置 NSPrivacyTracking 如下(DataTester的PrivacyInfo.xcprivacy文件中默认将此部分内容注释掉了,您手动放开相关注释即可)。

    <!--  如果使用了 Unique 子库,请放开下面的 NSPrivacyTracking,NSPrivacyTrackingDomains  -->
    <key>NSPrivacyTracking</key>
    <true/>
    
  3. 重新配置 NSPrivacyTrackingDomains(DataTester的PrivacyInfo.xcprivacy文件中默认将此部分内容注释掉了,您手动放开相关注释即可)。

    DataTester环境类型

    修改示例

    SaaS-非云原生环境

    • CN环境

      <key>NSPrivacyTrackingDomains</key>
      <!--   SaaS 版本 CN 环境,请使用这段     -->
      <array>
          <string>klink-tracking.volceapplog.com</string>
          <string>toblog-tracking.volceapplog.com</string>
          <string>alink-tracking.volceapplog.com</string>
          <string>abtest-tracking.volceapplog.com</string>
          <string>tobapplog-tracking.volceapplog.com</string>
      </array>
      
    • SG环境/海外

      <key>NSPrivacyTrackingDomains</key>
      <!--   SaaS 版本 SG 环境,请使用这段     -->
      <array>
          <string>toblog-tracking.tobsnssdk.com</string>
          <string>tobapplog-tracking.tobsnssdk.com</string>
          <string>toblog-alink-tracking.tobsnssdk.com</string>
      </array>
      

    SaaS-云原生环境

    <key>NSPrivacyTrackingDomains</key>
    <!--   云原生版本,请使用这段     -->
    <array>
        <string>gator-tracking.datafinder.volces.com</string>
        <string>tab-tracking.abtest.volces.com</string>
    </array>
    

    私有化环境

    <key>NSPrivacyTrackingDomains</key>
    <!--   私有化版本,请在此配置自己的 idfa 请求域名     -->
    <array>
        <string>your tracking domain</string>
    </array>
    

    其中 your tracking domain 需要换成您的 idfa 专用请求域名。

接入 PrivacyInfo.xcprivacy 配置至APP

将符合您的APP业务场景的SDK PrivacyInfo.xcprivacy文件接入您的APP中,以下为您提供两种接入方式,您可按需参考。
如果需要在 SDK 中单独配置 PrivacyInfo.xcprivacy 文件,则可以跳过这一节,直接查看下一小节。

接入方式1:合并至 App 的隐私配置(推荐)

在大部分场景下,建议您直接将SDK 的隐私配置合并至 App 的隐私配置中。即直接将SDK 的 PrivacyInfo.xcprivacy 文件合并至 App 的 PrivacyInfo.xcprivacy 文件中。操作参考如下。

  1. 单击右键,选择 Open AS --> Source Code 打开SDK的 PrivacyInfo.xcprivacy 文件.

  2. 将 NSPrivacyAccessedAPITypes 和 NSPrivacyCollectedDataTypes 下的内容拷贝至 App 的 PrivacyInfo.xcprivacy 文件中对应的位置即可。

    NSPrivacyAccessedAPITypes位置示例

    NSPrivacyCollectedDataTypes位置示例

    图片

    图片

  3. 如果用到了 idfa 数据,则还需要拷贝 NSPrivacyTrackingDomains 下的内容。

  4. PrivacyInfo.xcprivacy 文件配置完成后,请确保在 Build Phases --> Copy Bundle Resources 中引入了该文件.

接入方式2:使用单独的 SDK 隐私配置

如果您是手动引入我们的离线安装包时,将安装包二次封装为 framework 或者 pod 依赖,则建议使用该方式配置。

  • 若是将我们的 SDK 二次封装为 framework,则将 PrivacyInfo.xcprivacy 文件直接放在 framework 目录下即可。
  • 若是将我们的 SDK 二次封装为 pod 依赖,则将 PrivacyInfo.xcprivacy 文件配置在 pod 的 resource_bundles 中即可。

修改SDK集成代码,配置隐私域名

如果使用了 idfa 数据,且用到了 Unique 子库,则需要修改SDK集成配置,按以下步骤配置 idfa 的请求域名。

注意

支持隐私域名配置的 SDK 最低版本为 6.16.6。

SaaS 版本

升级 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) {
    if (requestURLType == BDAutoTrackRequestURLABTest) {
        return @"https://tab.volces.com";
    }
     return @"https://gator.volces.com";
}];

// 初始化 sdk
[BDAutoTrack sharedTrackWithConfig:config];

// 配置 idfa 专用域名
[BDAutoTrack.sharedTrack setRequestIDFAHostBlock:^NSString * _Nullable(BDAutoTrackServiceVendor  _Nonnull vendor, BDAutoTrackRequestURLType requestURLType) {
    if (requestURLType == BDAutoTrackRequestURLABTest) {
        return @"https://tab-tracking.abtest.volces.com";
    }
    return @"https://gator-tracking.datafinder.volces.com";
}];

// 启动 sdk
[BDAutoTrack.sharedTrack startTrack];

私有化版本

私有化场景下,idfa 的专用域名由用户提供,域名规则上只需要与原先上报的域名不同即可。

  • idfa 的专用域名与原域名指向的 IP 可以相同
  • 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];