更新日期:2024-06-17海外版iOS接入文档
请参照文档接入,如有疑问请参考 demo,最终以 demo 为准。
JYouLoginKit.framework 和 SSBundle.bundle 为 SDK 核心框架和资源。
支持平台: iPod Touch,iPhone,iPad。
系统要求:iOS9.0+。
支持框架: armv7 arm64。
环境要求: xcode12.0+ 。
游戏内支持购买自动订阅型商品或者需要检测苹果退款时,需做如下配置:
在苹果后台配置服务器通知网址,URL格式为:xxx/notify/apple(其中 xxx 为厂商sdk的完整域名,必须带 https),配置示例如下图:
另外,游戏内支持购买自动订阅型商品还需要在 QuickGame 后台产品详情里配置苹果后台的共享密钥:
获取苹果后台生成共享秘钥的入口:
注意:订阅型商品也需要在SDK后台配置商品ID
将SDK文件拖放导入工程,选择正确的target
在Build Settings->Linking->Other Linking Flags 中配置 -ObjC
当支持数据统计时,如带有 Appsflyer,Adjust,FB 等数据统计SDK,需添加 ATT 权限,征得用户启用跟踪权限许可才能跟踪或访问其设备的广告标识符(即 IDFA)。
1.调用 SDK 提供的如下接口申请 ATT 权限
+ (void)requestTrackingAuthorization;
2.工程 info.plist 文件配置如下权限,右边的文案可自行定义
找到 SDK内 SSBundle.bundle文件下 ColorStyle.plist新增/修改键值对(键为 mainurl值为请求的域名)。
函数 : +(void)initSDKWithProductCode:(NSString*)productCode
callback:(id
参数:productCode,产品 id,必填,对接商务提供。
初始化成功回调方法:
// SDK 初始化成功回调
功能:是否启用自动登录上次登录的账号,需要在调用登录之前调用。默认开 启。
函数 : + (void)loginWithMenuShow
:(BOOL)isDisplay;
isDisplay : YES:登录自动显示浮标 NO:登录不自动显示浮标
函数 : + (void)fastlyStartGame;
功能:不显示登录界面静默登录,如果本地没有账号将基于本设备创建一个新的游客 账号,可以在用户中心进行绑定和解绑操作、切换账号。如果调用此接口时 SDK 还没 有初始化成功,则 SDK 初始化成功时会自动调用此接口一次。快速进入游戏可以使用 此接口,用户注销后重新登录使用 login 接口。
函数 : + (void)setFunctionLoginCallback:(id
功能:设置登录回调监听者然后监听者实现如下的回调方法就可以收到登录事 件:
- (void)loginUid:(NSString *)uid userToken:(NSString *)token
{// 个人中心绑定回调
- (void)bindUid:(NSString *)uid userToken:(NSString *)token type:(USERCENTER_TYPE)type;
//个人中心解绑回调
- (void)unBindUid:(NSString *)uid userToken:(NSString *)token type:(USERCENTER_TYPE)type;
tips:
type 解绑类型
USERCENTER_TYPE_EMAIl = 1, //email
USERCENTER_TYPE_FB = 6, //FB
USERCENTER_TYPE_GOOGLEPLUS = 8, //Google
USERCENTER_TYPE_Line = 11, //Line
USERCENTER_TYPE_GAMECENTER = 7, //
GameCenter USERCENTER_TYPE_Apple = 16, //Apple
函数 : + (NSDictionary *)getUserBindInfo;
功能:获取用户中心的绑定信息
字典key
字典value类型
字典key注释
USERCENTER_TYPE_EMAIl
NSNumber
Email
USERCENTER_TYPE_FB
NSNumber
FaceBook
USERCENTER_TYPE_GOOGLEPLUS
NSNumber
Google
USERCENTER_TYPE_Line
NSNumber
Line
USERCENTER_TYPE_GAMECENTER
NSNumber
GameCenter
USERCENTER_TYPE_Apple
NSNumber
Apple
代码实例:
NSDICTIONARY *DIC = [REDELOGINKIT GETUSERBINDINFO];
IF ([DIC[@"USERCENTER_TYPE_EMAIL"] BOOLVALUE]) {
NSLOG(@""#$%&");
}
函数 : + (void)setGameRoleInfo:(REDeRoleInfo *)roleInfo;
功能:设置角色信息,在选择角色进入游戏时调用。
函数 : + (void)bindAccountType:(USERCENTER_TYPE)type;
功能:在外部主动调用绑定账号。
函数 : + (NSString *)userID;
功能:获取当前登录用户的用户 ID。在用户登录成功后调用
返回值:当前登录用户的用户 ID,未登录返回 nil。
函数 : + (NSString *) getUserToken;
功能:获取当前登录用户的用户 token。用户登录成功时调用
返回值:当前登录用户的用户 token,用以验证用户有效性,未登录返回 nil。
函数 : + (BOOL)isNewUser;
功能:获取当前用户是否为新用户
返回值:YES 为新用户,No 为已经注册用户。
函数 :+(void)logout;
功能:立即将当前用户登出
函数 : + (void)IAPWithParameter:(REDeOrderInfo *)param;
功能:进入充值模块。
参数:param 充值参数信息,参考 REDeOrderInfo .h 文件 ,注意:其中扩展字段请勿传 特殊符号,如果无法避免建议先进行 base64 编码后再传;回调地址可后台配置,后台 配置了回调地址就以后台配置的为准
函数 : + (void)setFunctionBuyCallback:(id
功能:设置支付回调监听者然后监听者实现如下的回调方法就可以收到支付事件:
// 支付成功回调
函数 : +(void)restoreNonConsumptionProducts:(id
功能:获取已购买的非消耗商品或者订阅商品,商品信息通过回调返回,需实现如下回调方法:
函数 : + (void) enterUserCenter;
功能:进入用户中心页面,显示关联其他平台账号的信息和操作入口。
类:REDeLoginKit
函数: +(void)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options;
功能:处理第 3 方应用回调结果
在- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary函数: + (void)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)source annotation:(id)annotation;
功能:处理第 3 方应用回调结果
在- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation;中调用。
使用 1.7.1版本的 FBSDK,需要在工程中创建一个 swift文件,然后根据 Xcode 提示创建 OC和 swift桥接文件。
FacebookAppID:facebook后台应用参数
FacebookDisplayNam:facebook后台配置的应用名称{游戏名称}
FacebookClientToken:在 facebook后台应用设置->高级查看
LSApplicationQueriesSchemes:Facebook相关白名单
OpenUrl 回调
设置 info.plist 中的 GIDClientID
在 info.plist 文件直接新增一个键为 GIDClientID、值为 google 后台的 clientID。
设置对应的 URL Scheme
在登录可以运行之前,您需要设置一个 URL 类型来处理回调。
在 info.plist->url types 新增一个 scheme,为反向 googleclientid,即您的 googleclientid 带有以点分隔的字段的顺序反转。例如:
com.googleusercontent.apps.1234567890-abcdefg
根据苹果审核指南,应用包含 Facebook、google等三方登录时必须同时提供 apple登录。
1. 加入 AuthenticationServices.framework
2. 登录开发者网站,在需要添加 Sign in with Apple 功能的 Identifier 开启功能
注:游客账号没有注销功能。
从 iOS 14 开始,若开发者设置 App Tracking Transparency 向用户申请跟踪授权, 在用户授权之前 IDFA 将不可用。
要获取 App Tracking Transparency 权限,请更新您的 Info.plist,添加 NSUserTrackingUsageDescription 字段和自定义文案描述。
代码示例:
文案请根据自己实际需求填写,需要使用 Xcode12.0 及以上版本。
注:文案应使用与应用本地化语言一致的语言。
SDK 获取权限方法
函数 : /** 申请 ATT 权限 */ + (void)requestTrackingAuthorization;
功能:游戏开发者调用此SDK方法即会弹出申请att权限弹窗,建议在APP启动之后尽快调 用
FB的 SDK默认埋点
1.登录成功:fb_custom_login_user_name(自定义事件)
2.注册来源 FBSDKAppEventParameterNameRegistrationMethod(标准事件)
如需要其他事件可以选择下面接口,FB默认记录了
应用安装
新用户首次激活应用程序或应用程序首次在特定设备上启动
应用启动
当有人启动您的应用程序时,Facebook SDK会初始化并记录事件。但是,如果第二个应 发生,则不会记录第二个应用程序启动事件
在应用程序内购买
由 Apple App Store或 Google Play处理的购买完成后。如果您使用 其他付款平台,则需要手动添加购买事件代码
Facebook SDK崩溃报告(仅适用于Facebook)
如果您的应用程序由于Facebook SDK而崩溃,则当重新启动应用 程序时,将生成崩溃报告并发送给Facebook。该报告不包含用户 数据,可帮助Facebook确保SDK的质量和稳定性。要选择不记录 此事件,请禁用自动记录的事件
要禁⽤⾃动事件⽇志记录,可以在 FB后台关闭,也可以在 info.plist⽂件配置下⾯的键值 对:
/**
* 完成教程的统计
contentData 特点内容
* contentId 特点内容id
* success 是否完成教程
* tip:
fb的标准打点事件,事件名:Complete Tutorial
*/
+ (void)logCompleteTutorialEvent:(NSString *)contentData
contentId:(NSString *)contentId
success:(BOOL)success;
/**
* 角色升级的统计
* level 角色等级
* tip:
fb的标准打点事件,事件名:Achieve Level
*/
+ (void)logAchieveLevelEvent:(NSString *)level
/**
* 完成内购的统计
* purchaseAmount 商品价格
* currency 货币类型
* parameters 额外携带参数,value值应该是NSString或 NSNumber,@{@"order":@“orderid”}
* tip:
fb的标准打点事件,事件名:Purchase
*/
+ (void)logPurchase:(double)purchaseAmount
currency:(NSString *)currency
parameters:(NSDictionary
/**
* 成就解锁
* description 成就解锁的描述
* type 成就解锁类型
* tip:
fb的标准打点事件,事件名:Unlock Achievement
*/
+ (void)logUnlockAchievementEvent:(NSString *)description type:(NSString *)type;
/**
* 发起结账
* contentData 特点内容
* contentId 特点内容id
* contentType 成就解锁类型
* numItems 完成的单元数
* currency 货币类型
* totalPrice 总价
* tip:
fb的标准打点事件,事件名:Initiate Checkout
*/
+ (void)logInitiateCheckoutEvent:(NSString *)contentData
contentId:(NSString *)contentId
contentType:(NSString *)contentType
numItems:(NSInteger)numItems
paymentInfoAvailable:(BOOL)paymentInfoAvailable
currency:(NSString *)currency
valueToSum:(double)totalPrice;
/**
* 自定义事件
* eventName 事件名
* valueToSum 开启后系统会根据这个事件关联一个值,并按这个事件发生的全部情况求出总和,便于查 看平均值,当为0默认不开启
* parameters 附带参数,可以为该事件添加参数,参数key自定义如:@{@"order":orderid}
* tip:
fb的自定义事件
*/
+ (void)logEvent:(NSString *)eventName valueToSum:(double)valueToSum parameters:(NSDictionary
如果引入 appflyer报错,找不到头文件,请解压 SDK内附带 appsflyersdk压缩 包并替换 appsflyerSDK文件。Appsflyer已经内置安装、启动等事件统计,SDK 已内置注册、登录、购买事件统计。
引入
#import < JYouLoginKit/2REDeLoginKit.h>
参数 devKey 在 AppsFlyer 后台,参数 appID 是该应用的 iTunes ID 但不包含”id” 使用 AppsFlyer 需要加入系统框架 AdSupport.framework,iAd.framework,并设置 为 Optional。
李先生:13880511661
QQ:48157910
赵先生:15390049857
QQ:1077535763
孙女士:13551010407
QQ:1799614139
QQ群:698731538