RaStarOverseaSDK 使用說明


版本號(hào) SDK Hash值 更新日期 作者
1.0.0 1e7429f73ace7784863b79e6fe5a96f0 2017/7/11 Vincent
1.0.1 fccc118741e72d44f2a6d170dddc39ec 2017/7/13 Vincent
1.0.2 06eedc71ff33ca93ab7ed42c2b9dbbcf 2017/9/01 Vincent

SDK 使用說明

此SDK為RaStar 海外版本。適用于iOS 8.0以上版本的Apple設(shè)備,包括iPhone、iPad等。

SDK 使用準(zhǔn)備

Facebook

由于此SDK接入Facebook相關(guān)功能性代碼,故在使用之前需在Facebook開發(fā)者后臺(tái)申請(qǐng)相關(guān)權(quán)限,并獲取相對(duì)應(yīng)開發(fā)者的Info.plist 數(shù)據(jù)。

  • 創(chuàng)建應(yīng)用
登錄FaceBook開發(fā)者后臺(tái)后創(chuàng)建應(yīng)用

登錄Facebook開發(fā)者后臺(tái)后如圖所示點(diǎn)擊創(chuàng)建應(yīng)用。

創(chuàng)建新應(yīng)用

創(chuàng)建新應(yīng)用
其中,顯示名稱為Facebook后臺(tái)顯示名稱。

  • 填寫相關(guān)信息
    創(chuàng)建完成新應(yīng)用后,點(diǎn)擊進(jìn)入應(yīng)用,在產(chǎn)品設(shè)置頁面選擇Facebook登錄,點(diǎn)擊開始。
選擇Facebook登錄

進(jìn)入Facebook登錄設(shè)置之后,選擇 iOS Type,并跳過1、2項(xiàng)。

  • 在Facebook后臺(tái)添加自己項(xiàng)目工程的Bundle ID。
添加Bundle ID

此處添加的BundleID必須與最終打包工程的BundleID一致。

  • 獲取對(duì)應(yīng)Info.plist參數(shù)
    打開單點(diǎn)啟動(dòng)按鈕。獲取 Info.plist 數(shù)據(jù),并將其添加到項(xiàng)目工程的 Info.pilst 文件正文后方。
獲取Facebook提供的Info.plist參數(shù)
添加至工程Info
  • 由于使用Facebook版本為:4.22.1 故需要添加以下字段供支持:
4.22.1需要添加

如下所示plist文件:

添加完成后plist

至此,F(xiàn)acebook 后臺(tái)相關(guān)配置完畢。


Game Center

此SDK 內(nèi)嵌Apple Game Center。為實(shí)現(xiàn)相關(guān)功能,需在Apple 開發(fā)者后臺(tái)配置相關(guān)參數(shù)

  • 生成AppID
生成App ID

進(jìn)入開發(fā)者后臺(tái)后依次進(jìn)行如圖所示操作,填寫正確BundleID。

勾選相關(guān)服務(wù)

勾選Game Center服務(wù)

在App Services 中務(wù)必保證Game Center勾選,其他功能按需勾選。成功后在AppIDs 中可以見到剛剛創(chuàng)建的App ID。如下所示:

創(chuàng)建App ID完成

至此,App Developer中相關(guān)配置完成。

  • 創(chuàng)建App

前往Apple iTunes Connect 后臺(tái)創(chuàng)建相關(guān)App 并加入Game Center 相關(guān)功能。

創(chuàng)建App

創(chuàng)建后 進(jìn)入App 管理,進(jìn)入 功能 -> Game Center 按需配置排行榜和成就選項(xiàng)。

配置Game Center

打開工程Project Capabilities Game Center按鈕,此時(shí)Steps 應(yīng)全部顯示成功。

配置成功

至此,Game Center相關(guān)配置完成。


項(xiàng)目工程配置

添加依賴庫

復(fù)制SDKTest(即 Demo) 中的 RaStar_Oversea_Framework 文件夾(內(nèi)部包含RSOverseaSDK.Plist、RaStarOverseaSDK.framework、RaStarAbroadSDKBundle.bundle、Frameworks_Facebook文件夾)至項(xiàng)目工程目錄中,并右鍵添加至工程中。

添加依賴庫

前往 Project --> Build Settings(構(gòu)建設(shè)置)選項(xiàng)卡,將 RaStar_Oversea_FrameworkFrameworks_Facebook 添加到項(xiàng)目的Framework Search Paths(框架搜索路徑)。如下圖所示:

添加框架搜索路徑

前往 Project --> Build Phases(構(gòu)建階段)選項(xiàng)卡,將FBSDKCoreKit.framework、FBSDKShareKit.frameworkFBSDKLoginKit.framework、RaStarOverseaSDK.framework、Bolts.framework添加至Link Binary With Libraies 下依賴庫列表。由于SDK需要,另添加GameKit、StoreKit、Security、SystemConfiguration依賴庫至引用列表。因?yàn)镾DK內(nèi)部包含Bundle資源,故將RaStarAbroadSDKBundle 添加至 Copy Bundle Resources 資源引用列表。如下圖所示:

添加依賴庫及資源列表

設(shè)置動(dòng)態(tài)引用

因?yàn)镾DK內(nèi)部涉及對(duì)某些類的拓展。故需要在工程中設(shè)置動(dòng)態(tài)引用,前往 Project --> Build Settings(構(gòu)建設(shè)置)選項(xiàng)卡,于搜索欄搜索
Other Linker Flags 并于該選項(xiàng)后添加 –ObjC 如下圖所示:

設(shè)置動(dòng)態(tài)引用

基本參數(shù)填寫(plist)

設(shè)定基本參數(shù),例如Apps廣告相關(guān)參數(shù),支付相關(guān)參數(shù)等,如下圖所示:

基本參數(shù)填寫

標(biāo)準(zhǔn)貨幣符號(hào)請(qǐng)參考 Apple 收費(fèi)標(biāo)準(zhǔn)表中所對(duì)應(yīng)標(biāo)準(zhǔn)貨幣符號(hào)(eg.USD、EUR、CNY、JPY、AUD等)
至此,項(xiàng)目設(shè)置階段完成,項(xiàng)目左側(cè)文件樹應(yīng)為如下圖所示:

文件樹

SDK接入

鏈接應(yīng)用委托

因?yàn)榇薙DK應(yīng)用需要切換到原生Facebook應(yīng)用或者iOS Safari 操作,需要對(duì)操作結(jié)果進(jìn)行處理,故需要將AppDelegate類關(guān)聯(lián)到FBSDKApplicationDelegate 對(duì)象。另外,需要綁定相關(guān)AppsFlyer參數(shù)故需要在AppDelegate.m 文件中添加下列代碼:

#import "AppDelegate.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>`
#import <RaStarOverseaSDK/RaStarCommom.h>

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    [[FBSDKApplicationDelegate sharedInstance] application:application
                             didFinishLaunchingWithOptions:launchOptions];
    // 在此添加任意自定義邏輯。
    [RaStarCommom setAppsFlyer];
    return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    
    BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
                                                                  openURL:url
                                                        sourceApplication:sourceApplication
                                                               annotation:annotation
                    ];
    // 在此添加任意自定義邏輯。
    return handled;
}

如未設(shè)置,則程序內(nèi)部點(diǎn)擊Facebook相關(guān)按鈕操作時(shí)可能出現(xiàn)程序崩潰或授權(quán)成功后不跳轉(zhuǎn),以及AppsFlyer無法做出對(duì)應(yīng)統(tǒng)計(jì)等。

Oversea SDK 方法屬性說明

協(xié)議說明

內(nèi)部包含4個(gè)不同協(xié)議,分別為初始化:RaStarInitDelegate、登錄:RaStarLoginDelegate、綁定:RaStarBindDelegate支付:RaStarPayDelegate。具體協(xié)議方法,見下,或RaStarCommom.h文件。

@protocol RaStarInitDelegate <NSObject>
@optional
//初始化成功
- (void)onInitSuccess;
//初始化失敗
- (void)onInitFail;

@end

@protocol RaStarLoginDelegate <NSObject>
@optional
//登錄成功返回Token、綁定信息
- (void)onLoginSuccess:(NSString *)accessToken BindInfo:(NSDictionary *)infoDic;
//登錄失敗
- (void)onLoginFail;
//切換登錄
- (void)onLoginSwitch:(NSString *)accessToken BindInfo:(NSDictionary *)infoDic;

@end
@protocol RaStarPayDelegate <NSObject>
@optional
//購買成功 訂單號(hào)
-(void)onPaySuccess:(NSString *)orderID;
//購買失敗 失敗原因
-(void)onPayFailure:(NSString *)failure;
//取消支付
-(void)onPayCancel;

@end
@protocol RaStarBindDelegate <NSObject>
@optional
//綁定成功 綁定信息
- (void)onBindSeccess:(NSDictionary *)infoDic;

@end
@interface RaStarCommom : NSObject <RaStarInitDelegate , RaStarLoginDelegate , RaStarPayDelegate , RaStarBindDelegate>
@property (nonatomic , weak) id <RaStarInitDelegate> initDelegate;
@property (nonatomic , weak) id <RaStarLoginDelegate> loginDelegate;
@property (nonatomic , weak) id <RaStarPayDelegate> payDelegate;
@property (nonatomic , weak) id <RaStarBindDelegate> bindDelegate;

方法

/** 
此方法用于創(chuàng)建RaStarCommon實(shí)例,以下類方法均依賴此實(shí)例實(shí)現(xiàn)。
*/
+ (instancetype)sharedInstance;
/**
 設(shè)置AppsFlyer相關(guān)
 此方法需在 'didFinishLaunchingWithOptions' 中實(shí)現(xiàn)
 */
+ (void)setAppsFlyer;

/**
 追蹤應(yīng)用打開
 此方法需在 'applicationDidBecomeActive' 中實(shí)現(xiàn)
 */
+ (void)trackAppLaunch;

SDK 初始化方法

/**
 初始化方法

 @param appid APPID
 @param appKey APPKEY
 @param cch_id CCH_ID
 @param md_id MD_ID
 @param delegate 初始化協(xié)議
 */
- (void)initSDKWithAppID:(NSString *)appid AppKey:(NSString *)appKey cch_ID:(NSString *)cch_id md_ID:(NSString *)md_id Delegate:(id)delegate;
參數(shù)名 是否必傳 默認(rèn)值 說明
appid Y -- 游戲ID
appKey Y -- 游戲Key
cch_id Y -- 渠道ID
md_id Y -- 廣告ID
delegate Y -- 初始化協(xié)議

初始化返回在協(xié)議回調(diào)中獲取

SDK 登錄方法

/**
 登錄方法

 @param delegate 登錄協(xié)議
 */
- (void)loginWithDelegate:(id)delegate;

此方法在需要進(jìn)行登錄操作時(shí)調(diào)用。

參數(shù)名 是否必傳 默認(rèn)值 說明
delegate Y -- 登錄協(xié)議

注:此方法無具體登錄UI展示,為方法內(nèi)部靜默登錄,登錄成功后在相關(guān)協(xié)議回調(diào)中返回access token值,并在Window層展示懸浮球。登錄失敗無展示,僅發(fā)送失敗回調(diào)。SDK內(nèi)置切換賬號(hào)按鈕,切換成功返回切換登錄回調(diào),回調(diào)方法附帶新賬號(hào)(切換后賬號(hào))的access token值。

SDK 綁定協(xié)議

/**
 添加綁定回調(diào)

 @param delegate 綁定協(xié)議
 */
- (void)setRSBindDelegate:(id)delegate;

此方法可在登錄時(shí)同時(shí)添加,也可在其他CP認(rèn)為的合適的時(shí)間添加.

參數(shù)名 是否必傳 默認(rèn)值 說明
delegate Y -- 綁定協(xié)議

數(shù)據(jù)收集相關(guān)

/**
 創(chuàng)建角色上傳

 @param roleId 角色I(xiàn)D --必傳
 @param roleLevel 角色等級(jí) --必傳
 @param roleName 角色名稱 --必傳
 @param serverId 服務(wù)器ID --必傳
 @param serverName 服務(wù)器名稱 --必傳
 @param partyName 公會(huì)名稱 --非必傳 傳默認(rèn)值“無”
 @param timeLevelUp 等級(jí)升級(jí)時(shí)間戳 --非必傳 傳默認(rèn)值-1
 @param vip vip等級(jí) --非必傳 傳默認(rèn)值0
 @param timeCreate 創(chuàng)建角色時(shí)間戳 --非必傳 傳默認(rèn)值-1
 @param balance 賬號(hào)余額 --非必傳 傳默認(rèn)值0
 @param extra 擴(kuò)展字段 --非必傳 傳默認(rèn)值extra
 */
+ (void)collectCreateRoleWithRoleID:(NSString *)roleId RoleLevel:(NSString *)roleLevel RoleName:(NSString *)roleName ServerId:(NSString *)serverId ServerName:(NSString *)serverName PartyName:(NSString *)partyName TimeLevelUp:(NSString *)timeLevelUp Vip:(NSString *)vip TimeCreate:(NSString *)timeCreate Balance:(NSString *)balance Extra:(NSString *)extra;

/**
 進(jìn)入服務(wù)器上傳
 
 @param roleId 角色I(xiàn)D --必傳
 @param roleLevel 角色等級(jí) --必傳
 @param roleName 角色名稱 --必傳
 @param serverId 服務(wù)器ID --必傳
 @param serverName 服務(wù)器名稱 --必傳
 @param partyName 公會(huì)名稱 --非必傳 傳默認(rèn)值“無”
 @param timeLevelUp 等級(jí)升級(jí)時(shí)間戳 --非必傳 傳默認(rèn)值-1
 @param vip vip等級(jí) --非必傳 傳默認(rèn)值0
 @param timeCreate 創(chuàng)建角色時(shí)間戳 --非必傳 傳默認(rèn)值-1
 @param balance 賬號(hào)余額 --非必傳 傳默認(rèn)值0
 @param extra 擴(kuò)展字段 --非必傳 傳默認(rèn)值extra
 */
+ (void)collectEnterServerWithRoleID:(NSString *)roleId RoleLevel:(NSString *)roleLevel RoleName:(NSString *)roleName ServerId:(NSString *)serverId ServerName:(NSString *)serverName PartyName:(NSString *)partyName TimeLevelUp:(NSString *)timeLevelUp Vip:(NSString *)vip TimeCreate:(NSString *)timeCreate Balance:(NSString *)balance Extra:(NSString *)extra;

/**
 角色升級(jí)上傳
 
 @param roleId 角色I(xiàn)D --必傳
 @param roleLevel 角色等級(jí) --必傳
 @param roleName 角色名稱 --必傳
 @param serverId 服務(wù)器ID --必傳
 @param serverName 服務(wù)器名稱 --必傳
 @param partyName 公會(huì)名稱 --非必傳 傳默認(rèn)值“無”
 @param timeLevelUp 等級(jí)升級(jí)時(shí)間戳 --非必傳 傳默認(rèn)值-1
 @param vip vip等級(jí) --非必傳 傳默認(rèn)值0
 @param timeCreate 創(chuàng)建角色時(shí)間戳 --非必傳 傳默認(rèn)值-1
 @param balance 賬號(hào)余額 --非必傳 傳默認(rèn)值0
 @param extra 擴(kuò)展字段 --非必傳 傳默認(rèn)值extra
 */
+ (void)collectLevelUpWithRoleID:(NSString *)roleId RoleLevel:(NSString *)roleLevel RoleName:(NSString *)roleName ServerId:(NSString *)serverId ServerName:(NSString *)serverName PartyName:(NSString *)partyName TimeLevelUp:(NSString *)timeLevelUp Vip:(NSString *)vip TimeCreate:(NSString *)timeCreate Balance:(NSString *)balance Extra:(NSString *)extra;

/**
 新手教程完成數(shù)據(jù)收集
 */
+ (void)collectTutorialCompletion;

注:非必傳參數(shù)上報(bào)時(shí)傳默認(rèn)值

SDK 支付相關(guān)

/**
 發(fā)起支付
 
 @param amount 金額
 @param name 角色名稱
 @param level 角色等級(jí)
 @param rid 角色id
 @param sid 區(qū)服號(hào)
 @param sname 區(qū)服名稱
 @param subject 產(chǎn)品名稱
 @param orderNum 訂單號(hào)
 @param ext 擴(kuò)展字段
 @param delegate 代理
 */
- (void)payWithAmount:(NSString *)amount Name:(NSString *)name Level:(NSString *)level Roleid:(NSString *)rid Sid:(NSString *)sid Sname:(NSString *)sname Subject:(NSString *)subject OrderNum:(NSString *)orderNum Ext:(NSString *)ext Delegate:(id)delegate;

此接口用于發(fā)起支付時(shí)調(diào)用,成功或失敗回調(diào)由協(xié)議方法回調(diào)。方法內(nèi)部包含發(fā)貨成功的訂單號(hào)(web支付無訂單號(hào)返回),失敗返回原因。

參數(shù)名 是否必傳 默認(rèn)值 說明
amount Y -- 金額
name Y -- 角色名稱
level Y -- 角色等級(jí)
rid Y -- 角色I(xiàn)D
sid Y -- 區(qū)服號(hào)
sname Y -- 區(qū)服名稱
subject Y -- 產(chǎn)品名稱
orderNum Y -- 訂單號(hào)
ext N extra 擴(kuò)展字段
delegate Y -- 代理

非必傳參數(shù)發(fā)起請(qǐng)求時(shí)填寫默認(rèn)值
商品名稱和金額需與后臺(tái)配置完全一致
訂單號(hào)需求唯一


附錄:

內(nèi)購測(cè)試時(shí),請(qǐng)前往 Apple iTunes Connect 后臺(tái) 所對(duì)應(yīng)App 創(chuàng)建相關(guān)內(nèi)購產(chǎn)品,并同步至RaStar后臺(tái)進(jìn)行商品配置,并申請(qǐng)內(nèi)購沙箱賬號(hào)進(jìn)行測(cè)試。
Facebook登錄時(shí),請(qǐng)前往 Facebook開發(fā)者后臺(tái) 申請(qǐng)測(cè)試賬號(hào)進(jìn)行測(cè)試,如使用真實(shí)賬號(hào),有導(dǎo)致封號(hào)危險(xiǎn)。
Game Center 登錄時(shí),情前往 Apple iTunes Connect 后臺(tái) 申請(qǐng)測(cè)試賬號(hào)進(jìn)行測(cè)試,真實(shí)賬號(hào)在未提交Apple審核上架前無法登錄成功。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,765評(píng)論 25 709
  • PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
    念念不忘的閱讀 13,640評(píng)論 5 6
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,052評(píng)論 4 61
  • 參考資料 阮一峰《ES6標(biāo)準(zhǔn)入門教程》 通過node命令行可以查看node已經(jīng)實(shí)現(xiàn)的ES6的新特性 好多新特性在...
    壽_司閱讀 282評(píng)論 0 0
  • 在嘈雜的世界里, 我似能聽到 你的呼吸 緩慢地 帶著微微喘息。 在眾多的人群中, 我似能看到 你的笑容 極細(xì)地 帶...
    悄然歡喜閱讀 295評(píng)論 0 0

友情鏈接更多精彩內(nèi)容