隐私保护SDK-iOS(OC)

SDK合规指南

隐私保护SDK合规指南

1 文档修订记录

文档版本 文档更新日期 文档更新内容
3.3.56 2023.05.10 1.新增SDK合规指南;2.可选个人信息的配置。
3.3.8 2021.05.28 初版

2 接入准备

2.1 添加文件

将下载好的 FYBase、FYPrivacy 目录,拷贝到游戏工程目录中并引入.

2.2 添加SDK配置

到星云平台的"对接中心->SDK对接->SDK列表->基础接入参数->SDK配置参数"下载如下的配置文件,拷贝到游戏工程目录中并引入:

配置参数

  • iOS SDK配置文件:FYCoreConfig.plist

说明: 「引入」是指在 Xcode 界面右键点击工程列表,选择Add File to 'xxx',然后在弹出框选择你要添加的文件或文件夹,将其添加到 Xcode 工程内。 以上的文件和文件夹都需要引入到工程,并且保持在工程中只有一份,否则会引起报错

(1)在FYCoreConfig.plist中添加如下配置

<key>FY_GAME_PRIVACY</key>
<string>{"basic_device_data":"0","os_version":"0"}</string>

(2)字段名称说明

OS 个人信息类型及字段 用途和目的 是否可选 关闭方式
iOS 设备基础信息(设备型号、硬件信息、屏幕分辨率) 帮用户排查异常时使用,作为异常分析的依据 修改配置参数 FY_GAME_PRIVACY 的 basic_device_data 字段值为"0"
iOS 操作系统版本 帮用户排查异常时使用,作为异常分析的依据 修改配置参数 FY_GAME_PRIVACY 的 os_version 字段值为"0"
iOS IDFA(版本3.3.56已去除) 帮用户排查异常时使用,作为异常分析的依据

2.3 添加Xcode配置

1.TARGETS -> Build Settings -> Other Linker Flags -> 添加 -ObjC

2.TARGETS -> Build Settings -> Apple LLVM - Language - Objective C -> Weak References in Manual Retain Release -> YES

3.TARGETS -> Build Settings -> Enable Objective-C Exceptions -> YES

4.TARGETS -> Build Settings -> Enable Bitcode -> NO

2.4 引入头文件

在对接代码头部引入头文件:

#import <FYPrivacy/FYPrivacy.h>

2.5 开启调试模式

1.将 FYCoreConfig.plist 中的 FY_GAME_DEBUG 的值改为 1,即可开启「调试模式」;FY_GAME_DEBUG 改为 0,即关闭「调试模式」。

2.开启「调试模式」会显示客户端的悬浮球,点击进入调试工具可以查看接口/回调的调用信息,具体调试方法可查看文档

悬浮球

3 客户端接口

3.1 客户端回调

1.说明

  • SDK接口在执行以后,会调用相应的回调方法,可以在回调方法中,处理相应的游戏逻辑

2.使用

  • 注册以下通知,注册通知可以放在 AppDelegate.m(Unity 为UnityAppController.mm) 的 application:didFinishLaunchingWithOptions: 方法中
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fyprivacyAuthCallBack:) name:FYPRAuthCallback object:nil];
  • 实现注册的回调方法,回调方法可以添加在AppDelegate.m(Unity 为UnityAppController.mm) 的末尾处。
// 授权回调
- (void)fyprivacyAuthCallBack:(NSNotification *)notify {
    FYPRResponse *response = notify.object;

    // 此回调参数,标识是否使用第三方渠道的协议,"1":是,"0":否。如果为"0",则游戏需显示“查看隐私协议按钮”,否则不显示。
    // 游戏在母包阶段,需对此参数做处理。打成渠道包后,会根据实际情况返回相应的值。
    // 未接入星云聚合SDK的游戏,可以忽略此参数对接。
    NSString *useChannelPrivacy = [response.data objectForKey:@"use_channel_privacy"];

    if (response.status == FYPRAuthStatusAgree) {
        // TODO: 执行其他 SDK 的初始化

    } else {
        // TODO: 直接退出游戏
    }
}

3.2 启动应用(必接)

1.说明

  • 调用点:每次打开游戏后马上调用
  • 为了防止在授权之前去获取设备信息,其他 SDK 的初始化、登录等接口,必须放在“授权回调”之后调用
  • 首次会弹出“隐私协议”弹窗。后续会根据用户实际授权情况,及后台设置重新授权的情况,决定是否再次弹出

2.调用

FYPRStartInfo *fyprInfo = [[FYPRStartInfo alloc] init];
fyprInfo.protocolTitles = @[
    @"xxx用户协议",
    @"xxx隐私条款",
    @"xxx儿童信息保护"
];
[[FYPrivacy sharedInstance] start:fyprInfo];

3.参数

参数名 类型 说明 是否必传
protocolTitles NSArray<NSString> 界面中各协议标题,如需自定义协议的名称,请按顺序传3个标题。协议名称的顺序,需按照“用户协议”、“隐私协议”、“儿童隐私保护”的顺序传入。如果为数组为空或不传,则使用SDK提供的默认标题

4.回调

  • 授权回调:authCallback

3.3 查看协议(必接)

1、说明

  • 调用点:在进入游戏后有个按钮用以触发查看协议,建议放在游戏内的设置菜单下。

2、调用代码

[[FYPrivacy sharedInstance] checkAuth];

3、参数