Commit c80ffd587befd93b8ec16f2058cca128f3ffb3d9

Authored by alexYang
0 parents
Exists in master

SDK

Showing 53 changed files with 1590 additions and 0 deletions Side-by-side Diff

... ... @@ -0,0 +1,2 @@
  1 +Pods/
  2 +Podfile.lock
GameActivitySDK.framework/GameActivitySDK
... ... @@ -0,0 +1 @@
  1 +Versions/Current/GameActivitySDK
0 2 \ No newline at end of file
GameActivitySDK.framework/Headers
... ... @@ -0,0 +1 @@
  1 +Versions/Current/Headers
0 2 \ No newline at end of file
GameActivitySDK.framework/Versions/A/GameActivitySDK
No preview for this file type
GameActivitySDK.framework/Versions/A/Headers/LetsGameActivityAPI.h
... ... @@ -0,0 +1,26 @@
  1 +//
  2 +// LetsGameActivityAPI.h
  3 +// GameActivitySDK
  4 +//
  5 +// Created by yanglele on 2018/6/11.
  6 +// Copyright © 2018年 alexYang. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +#import <UIKit/UIKit.h>
  11 +
  12 +static NSString *actVersion = @"1.0.2";
  13 +
  14 +@interface LetsGameActivityAPI : NSObject<UIApplicationDelegate>
  15 +
  16 +@property(nonatomic, assign) int isDebug;
  17 +
  18 ++(instancetype)instance;
  19 +
  20 +- (void)hide;
  21 +
  22 +-(void)decideIsDebug:(int)isDebug;
  23 +
  24 +-(void)GameActivityWithParaDictory:(NSDictionary *)paraDictory handleCallBackL:(void(^)(void))accomplistCallBack;
  25 +
  26 +@end
GameActivitySDK.framework/Versions/Current
No preview for this file type
GameLoginSDK.framework/GameLoginSDK
No preview for this file type
GameLoginSDK.framework/Headers/GPGameLoginSDK.h
... ... @@ -0,0 +1,42 @@
  1 +//
  2 +// GPGameLoginSDK.h
  3 +// GumpLoginSDK
  4 +//
  5 +// Created by yanglele on 2018/10/22.
  6 +// Copyright © 2018年 alexYang. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +#import <UIKit/UIKit.h>
  11 +
  12 +typedef enum:NSInteger{
  13 + GUESTTYPE = 1,
  14 + SYSTEMTYPE,
  15 + GUMPTYPE,
  16 +}ACCOUNTENTERTYPE;
  17 +
  18 +typedef void(^GPGameLoginSuccessBlock)(NSNumber *userId, ACCOUNTENTERTYPE type);
  19 +typedef void(^GPGameLoginFailureBlock)(void);
  20 +
  21 +static NSString *version = @"1.0.12";
  22 +@interface GPGameLoginSDK : NSObject
  23 +
  24 +@property(nonatomic, copy) GPGameLoginSuccessBlock succBlock;
  25 +@property(nonatomic, copy) GPGameLoginFailureBlock failBlock;
  26 +@property(nonatomic, copy) NSString *userID;
  27 +@property(nonatomic, strong) UIViewController *GPViewController;
  28 +
  29 ++(instancetype)instance;
  30 +
  31 +-(NSString *)version;
  32 +
  33 +//游客登录和系统账号登录
  34 +-(void)GPGameLoginWithViewController:(UIViewController *)VC appID:(NSString *)appID channelId:(NSString *)channelId;
  35 +//账号联动,只有在切换成功的时候才会有回调
  36 +-(void)GPGameAccountLinkViewController:(UIViewController *)vc InfoDic:(NSDictionary *)InfoDic callBack:(void (^)(NSNumber *userId, ACCOUNTENTERTYPE type))callBack;
  37 +//切换系统账号
  38 +-(void)GPSwitchGameCenterWithViewController:(UIViewController *)vc switchCallBack:(void (^)())switchCallBack;
  39 +
  40 +-(void)cleanUserInfo;
  41 +
  42 +@end
GameLoginSDK.framework/Headers/GameLoginSDK.h
... ... @@ -0,0 +1,21 @@
  1 +//
  2 +// GameLoginSDK.h
  3 +// GameLoginSDK
  4 +//
  5 +// Created by yanglele on 2019/5/21.
  6 +// Copyright © 2019 yanglele. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +//! Project version number for GameLoginSDK.
  12 +FOUNDATION_EXPORT double GameLoginSDKVersionNumber;
  13 +
  14 +//! Project version string for GameLoginSDK.
  15 +FOUNDATION_EXPORT const unsigned char GameLoginSDKVersionString[];
  16 +
  17 +// In this header, you should import all the public headers of your framework using statements like #import <GameLoginSDK/PublicHeader.h>
  18 +
  19 +#import "AFNetworking.h"
  20 +#import "GPGameLoginSDK.h"
  21 +
GameLoginSDK.framework/Info.plist
No preview for this file type
GameLoginSDK.framework/Modules/module.modulemap
... ... @@ -0,0 +1,6 @@
  1 +framework module GameLoginSDK {
  2 + umbrella header "GameLoginSDK.h"
  3 +
  4 + export *
  5 + module * { export * }
  6 +}
GameSDK.framework/GameSDK
... ... @@ -0,0 +1 @@
  1 +Versions/Current/GameSDK
0 2 \ No newline at end of file
GameSDK.framework/Headers
... ... @@ -0,0 +1 @@
  1 +Versions/Current/Headers
0 2 \ No newline at end of file
GameSDK.framework/Versions/A/GameSDK
No preview for this file type
GameSDK.framework/Versions/A/Headers/LetsGameAPI.h
... ... @@ -0,0 +1,38 @@
  1 +
  2 +#import <Foundation/Foundation.h>
  3 +
  4 +//默认横屏
  5 +static BOOL DeviceOrientationIsHorizontal = YES;
  6 +
  7 +static NSString *pVersion = @"4.0.6";
  8 +
  9 +@interface LetsGameAPI : NSObject<UIApplicationDelegate>
  10 +
  11 +@property (nonatomic, strong) NSString *appId;
  12 +@property(nonatomic, strong) NSString *channelId;
  13 +@property (nonatomic, assign) int isDebug;
  14 +@property (nonatomic, assign) int decideWebTo;
  15 +
  16 +
  17 ++ (instancetype)instance;
  18 +
  19 +-(NSString*)version;
  20 +
  21 ++(void)DeviceOrientationIsHorizontal:(BOOL)isDisable;
  22 ++(BOOL)DeviceOrientationIsHorizontal;
  23 +
  24 +- (void)hide;
  25 +
  26 +- (BOOL)handleOpenURL:(NSURL *)url
  27 + sourceApplication:(NSString *)sourceApplication;
  28 +
  29 +-(void)pWeb:(NSDictionary*) pWebInfo handleCallBack:(void (^)()) pWebAccomplistCallback;
  30 +
  31 +-(void)iap:(NSDictionary*) payInfo succCallback:(void (^)(NSString* orderId)) succCallback failCallback:(void (^)(NSString* orderId)) failCallback;
  32 +
  33 +-(void)registeIapObserver;
  34 +
  35 +-(void)decideIsDebug:(int)isDebug;
  36 +
  37 +-(void)decideWebToVersion:(int)decideWebTo;
  38 +@end
GameSDK.framework/Versions/Current
No preview for this file type
GameSDKResources.bundle/ActJs.txt
... ... @@ -0,0 +1,29 @@
  1 +;(function() {
  2 +var messagingIframe,
  3 +bridge = 'campaign',
  4 +CUSTOM_PROTOCOL_SCHEME = 'jscall';
  5 +
  6 +
  7 +if (window[bridge]) { return }
  8 +
  9 +// 创建隐藏的iframe
  10 +function _createQueueReadyIframe(doc) {
  11 + messagingIframe = doc.createElement('iframe');
  12 + messagingIframe.style.display = 'none';
  13 + doc.documentElement.appendChild(messagingIframe);
  14 +}
  15 +
  16 +window[bridge] = {};
  17 +
  18 +window[bridge]['closeWin'] = function closeWin(){
  19 +document.location=CUSTOM_PROTOCOL_SCHEME + ':' + arguments.callee.name;
  20 +};
  21 +
  22 +
  23 +//创建iframe,必须在创建app之后,否则会出现死循环
  24 +_createQueueReadyIframe(document);
  25 +//通知js开始初始化
  26 +//alert('onInjectJsOver='+typeof(onInjectJsOver));
  27 +if(typeof(onInjectJsOver)=='function')
  28 + onInjectJsOver();
  29 +})();
GameSDKResources.bundle/Js.txt
... ... @@ -0,0 +1,54 @@
  1 +;(function() {
  2 +var messagingIframe,
  3 +bridge = 'sdk',
  4 +CUSTOM_PROTOCOL_SCHEME = 'jscall';
  5 +var appId = '%@' ,deviceId='%@', channelId='%@';
  6 +
  7 +
  8 +if (window[bridge]) { return }
  9 +
  10 +// 创建隐藏的iframe
  11 +function _createQueueReadyIframe(doc) {
  12 + messagingIframe = doc.createElement('iframe');
  13 + messagingIframe.style.display = 'none';
  14 + doc.documentElement.appendChild(messagingIframe);
  15 +}
  16 +
  17 +window[bridge] = {};
  18 +
  19 +window[bridge]['getAppId']=function getAppId(){
  20 +//alert('appid='+appId);
  21 + return appId;
  22 +};
  23 +window[bridge]['getDeviceId']=function getDeviceId(){
  24 + return deviceId;
  25 +};
  26 +window[bridge]['getChannelId']=function getChannelId(){
  27 + return channelId;
  28 +};
  29 +
  30 +window[bridge]['closeWin'] = function closeWin(uid,nick,sessionKey){
  31 +document.location=CUSTOM_PROTOCOL_SCHEME + ':' + arguments.callee.name + ':' + encodeURIComponent(JSON.stringify(arguments));
  32 +};
  33 +
  34 +window[bridge]['onResult'] = function onResult(result){
  35 +document.location=CUSTOM_PROTOCOL_SCHEME + ':' + arguments.callee.name + ':' + encodeURIComponent(JSON.stringify(arguments));
  36 +}
  37 +
  38 +//var methods = ["closeWin(uid,nick,sessionKey)"];
  39 +//var methodsWithoutParam =["closeWin"];
  40 +//for (var i=0;i<methods.length;i++){
  41 +// var method = methods[i];
  42 +// var methodWithoutParam = methodsWithoutParam[i];
  43 +// var code = "(window[bridge])[methodWithoutParam] = function " + method + " {var fs =CUSTOM_PROTOCOL_SCHEME + ':' + arguments.callee.name + ':' + encodeURIComponent(JSON.stringify(arguments)); messagingIframe.src = fs;alert('closeWin src:'+messagingIframe.src);}";
  44 +// eval(code);
  45 +//}
  46 +
  47 +//创建iframe,必须在创建app之后,否则会出现死循环
  48 +_createQueueReadyIframe(document);
  49 +//通知js开始初始化
  50 +//alert('onInjectJsOver='+typeof(onInjectJsOver));
  51 +if(typeof(onInjectJsOver)=='function')
  52 + onInjectJsOver();
  53 +
  54 +})();
GameSDKResources.bundle/PayJs.txt
... ... @@ -0,0 +1,60 @@
  1 +;(function() {
  2 +var messagingIframe,webInfoIframe,
  3 +bridge = 'sdk',
  4 +CUSTOM_PROTOCOL_SCHEME = 'jscall';
  5 +
  6 +
  7 +if (window[bridge]) { return }
  8 +
  9 +// 创建隐藏的iframe
  10 +function _createQueueReadyIframe(doc) {
  11 + messagingIframe = doc.createElement('iframe');
  12 + messagingIframe.style.display = 'none';
  13 + doc.documentElement.appendChild(messagingIframe);
  14 + webInfoIframe = doc.createElement('iframe');
  15 + webInfoIframe.style.display = 'none';
  16 + doc.documentElement.appendChild(webInfoIframe);
  17 +}
  18 +
  19 +
  20 +
  21 +window[bridge] = {};
  22 +
  23 +window[bridge]['webVer'] = function webVer(webVer){
  24 +
  25 +webInfoIframe.src=CUSTOM_PROTOCOL_SCHEME + ':' + arguments.callee.name + ':' + encodeURIComponent(JSON.stringify(arguments));
  26 +};
  27 +
  28 +
  29 +
  30 +window[bridge]['payWithBlue'] = function payWithBlue(payGateId,price,cardNO,roleId){
  31 +
  32 +messagingIframe.src=CUSTOM_PROTOCOL_SCHEME + ':' + arguments.callee.name + ':' + encodeURIComponent(JSON.stringify(arguments));
  33 +};
  34 +
  35 +
  36 +window[bridge]['closeWin'] = function closeWin(oid,status,extraInfo){
  37 +
  38 +messagingIframe.src=CUSTOM_PROTOCOL_SCHEME + ':' + arguments.callee.name + ':' + encodeURIComponent(JSON.stringify(arguments));
  39 +};
  40 +
  41 +window[bridge]['newWindow'] = function newWindow(url){
  42 +messagingIframe.src=CUSTOM_PROTOCOL_SCHEME + ':' + arguments.callee.name + ':' + encodeURIComponent(JSON.stringify(arguments));
  43 +}
  44 +
  45 +//var methods = ["closeWin(uid,nick,sessionKey)"];
  46 +//var methodsWithoutParam =["closeWin"];
  47 +//for (var i=0;i<methods.length;i++){
  48 +// var method = methods[i];
  49 +// var methodWithoutParam = methodsWithoutParam[i];
  50 +// var code = "(window[bridge])[methodWithoutParam] = function " + method + " {var fs =CUSTOM_PROTOCOL_SCHEME + ':' + arguments.callee.name + ':' + encodeURIComponent(JSON.stringify(arguments)); messagingIframe.src = fs;alert('closeWin src:'+messagingIframe.src);}";
  51 +// eval(code);
  52 +//}
  53 +
  54 +//创建iframe,必须在创建app之后,否则会出现死循环
  55 +_createQueueReadyIframe(document);
  56 +//通知js开始初始化
  57 +if(typeof(onInjectJsOver)=='function')
  58 + onInjectJsOver();
  59 +
  60 +})();
GameSDKResources.bundle/de.strings
... ... @@ -0,0 +1,5 @@
  1 +"user_name_hint" = "Das System hat festgestellt, dass du dich bereits bei einem anderen Konto angemeldet hast. Bist du sicher,das Konto zu wechseln?";
  2 +"account_change_cancel" = "Abbrechen";
  3 +"account_change_certain" = "Wechseln";
  4 +"account_switch_warn" = "Geh in die Einstellungen--Game Center--Öffne Game Center, logge dich wieder ein.";
  5 +"account_change_certain" = "Bestätigen";
GameSDKResources.bundle/en.strings
... ... @@ -0,0 +1,6 @@
  1 +"user_name_hint" = "We have detected that you have already logged in to another account. Are you sure to switch?";
  2 +"account_change_cancel" = "Cancel";
  3 +"account_change_certain" = "Switch";
  4 +"account_switch_warn" = "Please click settings--Game Center--open Game Center, then restart the game.";
  5 +"account_change_certain" = "Confirm";
  6 +"uncomplete_transaction" = "Please complete the unpaid transaction first.";
GameSDKResources.bundle/images/close@2x.png

3.99 KB

GameSDKResources.bundle/images/icon_cancel@2x.png

3.11 KB

GameSDKResources.bundle/images/icon_cancel_pressed@2x.png

3.12 KB

GameSDKResources.bundle/images/icon_close@2x.png

974 Bytes

GameSDKResources.bundle/images/loading@2x.png

11.4 KB

GameSDKResources.bundle/ko.strings
... ... @@ -0,0 +1,5 @@
  1 +"user_name_hint" = "시스템 탐지 결과 다른 계정으로 로그인한 적이 있습니다. 지금 계정으로 전환하시겠습니까?";
  2 +"account_change_cancel" = "취소";
  3 +"account_change_certain" = "전환";
  4 +"account_switch_warn" = "Please log in Game Center in the setting, then please restarting the game.";
  5 +"account_change_certain" = "Confirm";
GameSDKResources.bundle/loginJs.txt
... ... @@ -0,0 +1,29 @@
  1 +;(function() {
  2 +var messagingIframe,
  3 +bridge = 'sdk',
  4 +CUSTOM_PROTOCOL_SCHEME = 'jscall';
  5 +
  6 +if (window[bridge]) { return }
  7 +
  8 +// 创建隐藏的iframe
  9 +function _createQueueReadyIframe(doc) {
  10 +messagingIframe = doc.createElement('iframe');
  11 +messagingIframe.style.display = 'none';
  12 +doc.documentElement.appendChild(messagingIframe);
  13 +}
  14 +
  15 +window[bridge] = {};
  16 +
  17 +window[bridge]['onResult'] = function onResult(result){
  18 +document.location=CUSTOM_PROTOCOL_SCHEME + ':' + arguments.callee.name + ':' + encodeURIComponent(JSON.stringify(arguments));
  19 +}
  20 +
  21 +//创建iframe,必须在创建app之后,否则会出现死循环
  22 +_createQueueReadyIframe(document);
  23 +//通知js开始初始化
  24 +//alert('onInjectJsOver='+typeof(onInjectJsOver));
  25 +if(typeof(onInjectJsOver)=='function')
  26 +onInjectJsOver();
  27 +
  28 +})();
  29 +
GameSDKResources.bundle/th.strings
... ... @@ -0,0 +1,6 @@
  1 +"user_name_hint" = "ระบบตรวจพบว่าคุณได้ลงชื่อเข้าใช้บัญชีอื่นมาก่อน คุณต้องการจะเปลียนหรือไม่?";
  2 +"account_change_cancel" = "ยกเลิก";
  3 +"account_change_certain" = "ตกลง";
  4 +"account_switch_warn" = "กรุณาเข้าสู่การตั้งค่า --Game Center--เปิด Game Center จากนั้นให้เข้าสู่เกมอีกรอบ.";
  5 +"account_change_certain" = "ยืนยัน";
  6 +"uncomplete_transaction" = "คุณมีคำสั่งซื้อที่ค้างชำระโปรดชำระเงินให้เสร็จก่อน";
GameSDKResources.bundle/vi.strings
... ... @@ -0,0 +1,5 @@
  1 +"user_name_hint" = "Hệ thống kiểm tra thấy bạn từng đăng nhập qua tài khoản khác, xác nhận muốn chuyển?";
  2 +"account_change_cancel" = "Hủy bỏ";
  3 +"account_change_certain" = "Chuyển";
  4 +"account_switch_warn" = "Vào cài đặt -- Game Center -- Mở Game Center, sau đó vào lại game.";
  5 +"account_change_certain" = "Xác nhận";
GameSDKResources.bundle/zh-Hans.strings
... ... @@ -0,0 +1,6 @@
  1 +"account_change_warn" = "系统检测到您之前登录过其他账号,您确定要切换吗?";
  2 +"account_change_cancel" = "取消";
  3 +"account_change_certain" = "切换";
  4 +"account_switch_warn" = "请进入设置--Game Center--打开Game Center,然后重新进入游戏";
  5 +"account_change_certain" = "确定";
  6 +"uncomplete_transaction" = "您有未支付的订单,请先完成支付";
GameSDKResources.bundle/zh-Hant.strings
... ... @@ -0,0 +1,6 @@
  1 +"user_name_hint" = "系統檢測到您之前登錄過其他帳號,您確定要切換嗎?";
  2 +"account_change_cancel" = "取消";
  3 +"account_change_certain" = "切換";
  4 +"account_switch_warn" = "請進入設置--Game Center--打开Game Center,然后重新进入游戏";
  5 +"account_change_certain" = "确定";
  6 +"uncomplete_transaction" = "您有未支付的訂單,請先完成支付";
NNewGumpSDKDemo.xcodeproj/project.pbxproj
... ... @@ -0,0 +1,470 @@
  1 +// !$*UTF8*$!
  2 +{
  3 + archiveVersion = 1;
  4 + classes = {
  5 + };
  6 + objectVersion = 50;
  7 + objects = {
  8 +
  9 +/* Begin PBXBuildFile section */
  10 + 756B304F2297903F00FC3611 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 756B304E2297903F00FC3611 /* AppDelegate.m */; };
  11 + 756B30522297903F00FC3611 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 756B30512297903F00FC3611 /* ViewController.m */; };
  12 + 756B30552297903F00FC3611 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 756B30532297903F00FC3611 /* Main.storyboard */; };
  13 + 756B30572297904100FC3611 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 756B30562297904100FC3611 /* Assets.xcassets */; };
  14 + 756B305A2297904100FC3611 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 756B30582297904100FC3611 /* LaunchScreen.storyboard */; };
  15 + 756B305D2297904100FC3611 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 756B305C2297904100FC3611 /* main.m */; };
  16 + 756B30642297946700FC3611 /* GameLoginSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 756B30632297946700FC3611 /* GameLoginSDK.framework */; };
  17 + 756B3066229795A200FC3611 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 756B3065229795A100FC3611 /* MobileCoreServices.framework */; };
  18 + 756B3068229795AE00FC3611 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 756B3067229795AE00FC3611 /* SystemConfiguration.framework */; };
  19 + 756B306A229795BE00FC3611 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 756B3069229795BE00FC3611 /* libz.tbd */; };
  20 + 756B306C229795C600FC3611 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 756B306B229795C600FC3611 /* CFNetwork.framework */; };
  21 + 756B306E229795D900FC3611 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 756B306D229795D900FC3611 /* StoreKit.framework */; };
  22 + 756B30712297981F00FC3611 /* GameSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 756B306F2297981F00FC3611 /* GameSDK.framework */; };
  23 + 756B30722297981F00FC3611 /* GameActivitySDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 756B30702297981F00FC3611 /* GameActivitySDK.framework */; };
  24 + 756B30742297984400FC3611 /* GameSDKResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 756B30732297984400FC3611 /* GameSDKResources.bundle */; };
  25 + EA9B2EA364B82BF139030053 /* libPods-NNewGumpSDKDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EBF50E9DF0470BF03E9B344C /* libPods-NNewGumpSDKDemo.a */; };
  26 +/* End PBXBuildFile section */
  27 +
  28 +/* Begin PBXFileReference section */
  29 + 1EDB11E6B0C8AEEDAEC140CE /* Pods-NNewGumpSDKDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NNewGumpSDKDemo.release.xcconfig"; path = "Target Support Files/Pods-NNewGumpSDKDemo/Pods-NNewGumpSDKDemo.release.xcconfig"; sourceTree = "<group>"; };
  30 + 3542F531EBEE40BC67CFFF09 /* Pods-NNewGumpSDKDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NNewGumpSDKDemo.debug.xcconfig"; path = "Target Support Files/Pods-NNewGumpSDKDemo/Pods-NNewGumpSDKDemo.debug.xcconfig"; sourceTree = "<group>"; };
  31 + 756B304A2297903F00FC3611 /* NNewGumpSDKDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NNewGumpSDKDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
  32 + 756B304D2297903F00FC3611 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
  33 + 756B304E2297903F00FC3611 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
  34 + 756B30502297903F00FC3611 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
  35 + 756B30512297903F00FC3611 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
  36 + 756B30542297903F00FC3611 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
  37 + 756B30562297904100FC3611 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
  38 + 756B30592297904100FC3611 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
  39 + 756B305B2297904100FC3611 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  40 + 756B305C2297904100FC3611 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
  41 + 756B30632297946700FC3611 /* GameLoginSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GameLoginSDK.framework; sourceTree = "<group>"; };
  42 + 756B3065229795A100FC3611 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
  43 + 756B3067229795AE00FC3611 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
  44 + 756B3069229795BE00FC3611 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
  45 + 756B306B229795C600FC3611 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
  46 + 756B306D229795D900FC3611 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
  47 + 756B306F2297981F00FC3611 /* GameSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GameSDK.framework; sourceTree = "<group>"; };
  48 + 756B30702297981F00FC3611 /* GameActivitySDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GameActivitySDK.framework; sourceTree = "<group>"; };
  49 + 756B30732297984400FC3611 /* GameSDKResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = GameSDKResources.bundle; sourceTree = SOURCE_ROOT; };
  50 + EBF50E9DF0470BF03E9B344C /* libPods-NNewGumpSDKDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NNewGumpSDKDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
  51 +/* End PBXFileReference section */
  52 +
  53 +/* Begin PBXFrameworksBuildPhase section */
  54 + 756B30472297903F00FC3611 /* Frameworks */ = {
  55 + isa = PBXFrameworksBuildPhase;
  56 + buildActionMask = 2147483647;
  57 + files = (
  58 + 756B306E229795D900FC3611 /* StoreKit.framework in Frameworks */,
  59 + 756B30712297981F00FC3611 /* GameSDK.framework in Frameworks */,
  60 + 756B306C229795C600FC3611 /* CFNetwork.framework in Frameworks */,
  61 + 756B306A229795BE00FC3611 /* libz.tbd in Frameworks */,
  62 + 756B30722297981F00FC3611 /* GameActivitySDK.framework in Frameworks */,
  63 + 756B3068229795AE00FC3611 /* SystemConfiguration.framework in Frameworks */,
  64 + 756B3066229795A200FC3611 /* MobileCoreServices.framework in Frameworks */,
  65 + EA9B2EA364B82BF139030053 /* libPods-NNewGumpSDKDemo.a in Frameworks */,
  66 + 756B30642297946700FC3611 /* GameLoginSDK.framework in Frameworks */,
  67 + );
  68 + runOnlyForDeploymentPostprocessing = 0;
  69 + };
  70 +/* End PBXFrameworksBuildPhase section */
  71 +
  72 +/* Begin PBXGroup section */
  73 + 29D135BD4C86371851C24BCB /* Pods */ = {
  74 + isa = PBXGroup;
  75 + children = (
  76 + 3542F531EBEE40BC67CFFF09 /* Pods-NNewGumpSDKDemo.debug.xcconfig */,
  77 + 1EDB11E6B0C8AEEDAEC140CE /* Pods-NNewGumpSDKDemo.release.xcconfig */,
  78 + );
  79 + path = Pods;
  80 + sourceTree = "<group>";
  81 + };
  82 + 756B30412297903F00FC3611 = {
  83 + isa = PBXGroup;
  84 + children = (
  85 + 756B304C2297903F00FC3611 /* NNewGumpSDKDemo */,
  86 + 756B304B2297903F00FC3611 /* Products */,
  87 + 29D135BD4C86371851C24BCB /* Pods */,
  88 + 7E8156ADA6F179F41BE9A040 /* Frameworks */,
  89 + );
  90 + sourceTree = "<group>";
  91 + };
  92 + 756B304B2297903F00FC3611 /* Products */ = {
  93 + isa = PBXGroup;
  94 + children = (
  95 + 756B304A2297903F00FC3611 /* NNewGumpSDKDemo.app */,
  96 + );
  97 + name = Products;
  98 + sourceTree = "<group>";
  99 + };
  100 + 756B304C2297903F00FC3611 /* NNewGumpSDKDemo */ = {
  101 + isa = PBXGroup;
  102 + children = (
  103 + 756B30732297984400FC3611 /* GameSDKResources.bundle */,
  104 + 756B304D2297903F00FC3611 /* AppDelegate.h */,
  105 + 756B304E2297903F00FC3611 /* AppDelegate.m */,
  106 + 756B30502297903F00FC3611 /* ViewController.h */,
  107 + 756B30512297903F00FC3611 /* ViewController.m */,
  108 + 756B30532297903F00FC3611 /* Main.storyboard */,
  109 + 756B30562297904100FC3611 /* Assets.xcassets */,
  110 + 756B30582297904100FC3611 /* LaunchScreen.storyboard */,
  111 + 756B305B2297904100FC3611 /* Info.plist */,
  112 + 756B305C2297904100FC3611 /* main.m */,
  113 + );
  114 + path = NNewGumpSDKDemo;
  115 + sourceTree = "<group>";
  116 + };
  117 + 7E8156ADA6F179F41BE9A040 /* Frameworks */ = {
  118 + isa = PBXGroup;
  119 + children = (
  120 + 756B30702297981F00FC3611 /* GameActivitySDK.framework */,
  121 + 756B306F2297981F00FC3611 /* GameSDK.framework */,
  122 + 756B306D229795D900FC3611 /* StoreKit.framework */,
  123 + 756B306B229795C600FC3611 /* CFNetwork.framework */,
  124 + 756B3069229795BE00FC3611 /* libz.tbd */,
  125 + 756B3067229795AE00FC3611 /* SystemConfiguration.framework */,
  126 + 756B3065229795A100FC3611 /* MobileCoreServices.framework */,
  127 + 756B30632297946700FC3611 /* GameLoginSDK.framework */,
  128 + EBF50E9DF0470BF03E9B344C /* libPods-NNewGumpSDKDemo.a */,
  129 + );
  130 + name = Frameworks;
  131 + sourceTree = "<group>";
  132 + };
  133 +/* End PBXGroup section */
  134 +
  135 +/* Begin PBXNativeTarget section */
  136 + 756B30492297903F00FC3611 /* NNewGumpSDKDemo */ = {
  137 + isa = PBXNativeTarget;
  138 + buildConfigurationList = 756B30602297904100FC3611 /* Build configuration list for PBXNativeTarget "NNewGumpSDKDemo" */;
  139 + buildPhases = (
  140 + E5EB7625F3A85AD19B7D73C3 /* [CP] Check Pods Manifest.lock */,
  141 + 756B30462297903F00FC3611 /* Sources */,
  142 + 756B30472297903F00FC3611 /* Frameworks */,
  143 + 756B30482297903F00FC3611 /* Resources */,
  144 + );
  145 + buildRules = (
  146 + );
  147 + dependencies = (
  148 + );
  149 + name = NNewGumpSDKDemo;
  150 + productName = NNewGumpSDKDemo;
  151 + productReference = 756B304A2297903F00FC3611 /* NNewGumpSDKDemo.app */;
  152 + productType = "com.apple.product-type.application";
  153 + };
  154 +/* End PBXNativeTarget section */
  155 +
  156 +/* Begin PBXProject section */
  157 + 756B30422297903F00FC3611 /* Project object */ = {
  158 + isa = PBXProject;
  159 + attributes = {
  160 + LastUpgradeCheck = 1020;
  161 + ORGANIZATIONNAME = yanglele;
  162 + TargetAttributes = {
  163 + 756B30492297903F00FC3611 = {
  164 + CreatedOnToolsVersion = 10.2.1;
  165 + };
  166 + };
  167 + };
  168 + buildConfigurationList = 756B30452297903F00FC3611 /* Build configuration list for PBXProject "NNewGumpSDKDemo" */;
  169 + compatibilityVersion = "Xcode 9.3";
  170 + developmentRegion = en;
  171 + hasScannedForEncodings = 0;
  172 + knownRegions = (
  173 + en,
  174 + Base,
  175 + );
  176 + mainGroup = 756B30412297903F00FC3611;
  177 + productRefGroup = 756B304B2297903F00FC3611 /* Products */;
  178 + projectDirPath = "";
  179 + projectRoot = "";
  180 + targets = (
  181 + 756B30492297903F00FC3611 /* NNewGumpSDKDemo */,
  182 + );
  183 + };
  184 +/* End PBXProject section */
  185 +
  186 +/* Begin PBXResourcesBuildPhase section */
  187 + 756B30482297903F00FC3611 /* Resources */ = {
  188 + isa = PBXResourcesBuildPhase;
  189 + buildActionMask = 2147483647;
  190 + files = (
  191 + 756B305A2297904100FC3611 /* LaunchScreen.storyboard in Resources */,
  192 + 756B30572297904100FC3611 /* Assets.xcassets in Resources */,
  193 + 756B30742297984400FC3611 /* GameSDKResources.bundle in Resources */,
  194 + 756B30552297903F00FC3611 /* Main.storyboard in Resources */,
  195 + );
  196 + runOnlyForDeploymentPostprocessing = 0;
  197 + };
  198 +/* End PBXResourcesBuildPhase section */
  199 +
  200 +/* Begin PBXShellScriptBuildPhase section */
  201 + E5EB7625F3A85AD19B7D73C3 /* [CP] Check Pods Manifest.lock */ = {
  202 + isa = PBXShellScriptBuildPhase;
  203 + buildActionMask = 2147483647;
  204 + files = (
  205 + );
  206 + inputFileListPaths = (
  207 + );
  208 + inputPaths = (
  209 + "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
  210 + "${PODS_ROOT}/Manifest.lock",
  211 + );
  212 + name = "[CP] Check Pods Manifest.lock";
  213 + outputFileListPaths = (
  214 + );
  215 + outputPaths = (
  216 + "$(DERIVED_FILE_DIR)/Pods-NNewGumpSDKDemo-checkManifestLockResult.txt",
  217 + );
  218 + runOnlyForDeploymentPostprocessing = 0;
  219 + shellPath = /bin/sh;
  220 + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
  221 + showEnvVarsInLog = 0;
  222 + };
  223 +/* End PBXShellScriptBuildPhase section */
  224 +
  225 +/* Begin PBXSourcesBuildPhase section */
  226 + 756B30462297903F00FC3611 /* Sources */ = {
  227 + isa = PBXSourcesBuildPhase;
  228 + buildActionMask = 2147483647;
  229 + files = (
  230 + 756B30522297903F00FC3611 /* ViewController.m in Sources */,
  231 + 756B305D2297904100FC3611 /* main.m in Sources */,
  232 + 756B304F2297903F00FC3611 /* AppDelegate.m in Sources */,
  233 + );
  234 + runOnlyForDeploymentPostprocessing = 0;
  235 + };
  236 +/* End PBXSourcesBuildPhase section */
  237 +
  238 +/* Begin PBXVariantGroup section */
  239 + 756B30532297903F00FC3611 /* Main.storyboard */ = {
  240 + isa = PBXVariantGroup;
  241 + children = (
  242 + 756B30542297903F00FC3611 /* Base */,
  243 + );
  244 + name = Main.storyboard;
  245 + sourceTree = "<group>";
  246 + };
  247 + 756B30582297904100FC3611 /* LaunchScreen.storyboard */ = {
  248 + isa = PBXVariantGroup;
  249 + children = (
  250 + 756B30592297904100FC3611 /* Base */,
  251 + );
  252 + name = LaunchScreen.storyboard;
  253 + sourceTree = "<group>";
  254 + };
  255 +/* End PBXVariantGroup section */
  256 +
  257 +/* Begin XCBuildConfiguration section */
  258 + 756B305E2297904100FC3611 /* Debug */ = {
  259 + isa = XCBuildConfiguration;
  260 + buildSettings = {
  261 + ALWAYS_SEARCH_USER_PATHS = NO;
  262 + CLANG_ANALYZER_NONNULL = YES;
  263 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  264 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  265 + CLANG_CXX_LIBRARY = "libc++";
  266 + CLANG_ENABLE_MODULES = YES;
  267 + CLANG_ENABLE_OBJC_ARC = YES;
  268 + CLANG_ENABLE_OBJC_WEAK = YES;
  269 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  270 + CLANG_WARN_BOOL_CONVERSION = YES;
  271 + CLANG_WARN_COMMA = YES;
  272 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  273 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  274 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  275 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  276 + CLANG_WARN_EMPTY_BODY = YES;
  277 + CLANG_WARN_ENUM_CONVERSION = YES;
  278 + CLANG_WARN_INFINITE_RECURSION = YES;
  279 + CLANG_WARN_INT_CONVERSION = YES;
  280 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  281 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
  282 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  283 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  284 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  285 + CLANG_WARN_STRICT_PROTOTYPES = YES;
  286 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  287 + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
  288 + CLANG_WARN_UNREACHABLE_CODE = YES;
  289 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  290 + CODE_SIGN_IDENTITY = "iPhone Developer";
  291 + COPY_PHASE_STRIP = NO;
  292 + DEBUG_INFORMATION_FORMAT = dwarf;
  293 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  294 + ENABLE_TESTABILITY = YES;
  295 + GCC_C_LANGUAGE_STANDARD = gnu11;
  296 + GCC_DYNAMIC_NO_PIC = NO;
  297 + GCC_NO_COMMON_BLOCKS = YES;
  298 + GCC_OPTIMIZATION_LEVEL = 0;
  299 + GCC_PREPROCESSOR_DEFINITIONS = (
  300 + "DEBUG=1",
  301 + "$(inherited)",
  302 + );
  303 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  304 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  305 + GCC_WARN_UNDECLARED_SELECTOR = YES;
  306 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  307 + GCC_WARN_UNUSED_FUNCTION = YES;
  308 + GCC_WARN_UNUSED_VARIABLE = YES;
  309 + IPHONEOS_DEPLOYMENT_TARGET = 9.0;
  310 + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
  311 + MTL_FAST_MATH = YES;
  312 + ONLY_ACTIVE_ARCH = YES;
  313 + SDKROOT = iphoneos;
  314 + };
  315 + name = Debug;
  316 + };
  317 + 756B305F2297904100FC3611 /* Release */ = {
  318 + isa = XCBuildConfiguration;
  319 + buildSettings = {
  320 + ALWAYS_SEARCH_USER_PATHS = NO;
  321 + CLANG_ANALYZER_NONNULL = YES;
  322 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  323 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  324 + CLANG_CXX_LIBRARY = "libc++";
  325 + CLANG_ENABLE_MODULES = YES;
  326 + CLANG_ENABLE_OBJC_ARC = YES;
  327 + CLANG_ENABLE_OBJC_WEAK = YES;
  328 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  329 + CLANG_WARN_BOOL_CONVERSION = YES;
  330 + CLANG_WARN_COMMA = YES;
  331 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  332 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  333 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  334 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  335 + CLANG_WARN_EMPTY_BODY = YES;
  336 + CLANG_WARN_ENUM_CONVERSION = YES;
  337 + CLANG_WARN_INFINITE_RECURSION = YES;
  338 + CLANG_WARN_INT_CONVERSION = YES;
  339 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  340 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
  341 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  342 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  343 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  344 + CLANG_WARN_STRICT_PROTOTYPES = YES;
  345 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  346 + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
  347 + CLANG_WARN_UNREACHABLE_CODE = YES;
  348 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  349 + CODE_SIGN_IDENTITY = "iPhone Developer";
  350 + COPY_PHASE_STRIP = NO;
  351 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  352 + ENABLE_NS_ASSERTIONS = NO;
  353 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  354 + GCC_C_LANGUAGE_STANDARD = gnu11;
  355 + GCC_NO_COMMON_BLOCKS = YES;
  356 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  357 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  358 + GCC_WARN_UNDECLARED_SELECTOR = YES;
  359 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  360 + GCC_WARN_UNUSED_FUNCTION = YES;
  361 + GCC_WARN_UNUSED_VARIABLE = YES;
  362 + IPHONEOS_DEPLOYMENT_TARGET = 9.0;
  363 + MTL_ENABLE_DEBUG_INFO = NO;
  364 + MTL_FAST_MATH = YES;
  365 + SDKROOT = iphoneos;
  366 + VALIDATE_PRODUCT = YES;
  367 + };
  368 + name = Release;
  369 + };
  370 + 756B30612297904100FC3611 /* Debug */ = {
  371 + isa = XCBuildConfiguration;
  372 + baseConfigurationReference = 3542F531EBEE40BC67CFFF09 /* Pods-NNewGumpSDKDemo.debug.xcconfig */;
  373 + buildSettings = {
  374 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  375 + CODE_SIGN_IDENTITY = "iPhone Developer";
  376 + CODE_SIGN_STYLE = Manual;
  377 + DEVELOPMENT_TEAM = T65VA5M82Q;
  378 + FRAMEWORK_SEARCH_PATHS = (
  379 + "$(inherited)",
  380 + "$(PROJECT_DIR)",
  381 + "$(PROJECT_DIR)/GameLoginSDK.framework",
  382 + "$(PROJECT_DIR)/GameActivitySDK.framework",
  383 + "$(PROJECT_DIR)/GameSDK.framework",
  384 + );
  385 + HEADER_SEARCH_PATHS = (
  386 + "$(inherited)",
  387 + "\"${PODS_ROOT}/Headers/Public\"",
  388 + "\"${PODS_ROOT}/Headers/Public/AFNetworking\"",
  389 + "\"${PODS_ROOT}/Headers/Public/SDWebImage\"",
  390 + "$(PROJECT_DIR)/GameLoginSDK.framework/**",
  391 + "$(PROJECT_DIR)/GameSDK.framework/**",
  392 + "$(PROJECT_DIR)/GameActivitySDK.framework/**",
  393 + );
  394 + INFOPLIST_FILE = NNewGumpSDKDemo/Info.plist;
  395 + IPHONEOS_DEPLOYMENT_TARGET = 9.0;
  396 + LD_RUNPATH_SEARCH_PATHS = (
  397 + "$(inherited)",
  398 + "@executable_path/Frameworks",
  399 + );
  400 + OTHER_LIBTOOLFLAGS = "";
  401 + PRODUCT_BUNDLE_IDENTIFIER = com.deepwireless.crabcrab;
  402 + PRODUCT_NAME = "$(TARGET_NAME)";
  403 + PROVISIONING_PROFILE_SPECIFIER = comdeepwirelesscrabcrabDev;
  404 + TARGETED_DEVICE_FAMILY = "1,2";
  405 + };
  406 + name = Debug;
  407 + };
  408 + 756B30622297904100FC3611 /* Release */ = {
  409 + isa = XCBuildConfiguration;
  410 + baseConfigurationReference = 1EDB11E6B0C8AEEDAEC140CE /* Pods-NNewGumpSDKDemo.release.xcconfig */;
  411 + buildSettings = {
  412 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  413 + CODE_SIGN_IDENTITY = "iPhone Distribution";
  414 + CODE_SIGN_STYLE = Manual;
  415 + DEVELOPMENT_TEAM = T65VA5M82Q;
  416 + FRAMEWORK_SEARCH_PATHS = (
  417 + "$(inherited)",
  418 + "$(PROJECT_DIR)",
  419 + "$(PROJECT_DIR)/GameLoginSDK.framework",
  420 + "$(PROJECT_DIR)/GameActivitySDK.framework",
  421 + "$(PROJECT_DIR)/GameSDK.framework",
  422 + );
  423 + HEADER_SEARCH_PATHS = (
  424 + "$(inherited)",
  425 + "\"${PODS_ROOT}/Headers/Public\"",
  426 + "\"${PODS_ROOT}/Headers/Public/AFNetworking\"",
  427 + "\"${PODS_ROOT}/Headers/Public/SDWebImage\"",
  428 + "$(PROJECT_DIR)/GameLoginSDK.framework/**",
  429 + "$(PROJECT_DIR)/GameSDK.framework/**",
  430 + "$(PROJECT_DIR)/GameActivitySDK.framework/**",
  431 + );
  432 + INFOPLIST_FILE = NNewGumpSDKDemo/Info.plist;
  433 + IPHONEOS_DEPLOYMENT_TARGET = 9.0;
  434 + LD_RUNPATH_SEARCH_PATHS = (
  435 + "$(inherited)",
  436 + "@executable_path/Frameworks",
  437 + );
  438 + OTHER_LIBTOOLFLAGS = "";
  439 + PRODUCT_BUNDLE_IDENTIFIER = com.deepwireless.crabcrab;
  440 + PRODUCT_NAME = "$(TARGET_NAME)";
  441 + PROVISIONING_PROFILE_SPECIFIER = comdeepwirelesscrabcrabDis;
  442 + TARGETED_DEVICE_FAMILY = "1,2";
  443 + };
  444 + name = Release;
  445 + };
  446 +/* End XCBuildConfiguration section */
  447 +
  448 +/* Begin XCConfigurationList section */
  449 + 756B30452297903F00FC3611 /* Build configuration list for PBXProject "NNewGumpSDKDemo" */ = {
  450 + isa = XCConfigurationList;
  451 + buildConfigurations = (
  452 + 756B305E2297904100FC3611 /* Debug */,
  453 + 756B305F2297904100FC3611 /* Release */,
  454 + );
  455 + defaultConfigurationIsVisible = 0;
  456 + defaultConfigurationName = Release;
  457 + };
  458 + 756B30602297904100FC3611 /* Build configuration list for PBXNativeTarget "NNewGumpSDKDemo" */ = {
  459 + isa = XCConfigurationList;
  460 + buildConfigurations = (
  461 + 756B30612297904100FC3611 /* Debug */,
  462 + 756B30622297904100FC3611 /* Release */,
  463 + );
  464 + defaultConfigurationIsVisible = 0;
  465 + defaultConfigurationName = Release;
  466 + };
  467 +/* End XCConfigurationList section */
  468 + };
  469 + rootObject = 756B30422297903F00FC3611 /* Project object */;
  470 +}
NNewGumpSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
... ... @@ -0,0 +1,7 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Workspace
  3 + version = "1.0">
  4 + <FileRef
  5 + location = "self:NNewGumpSDKDemo.xcodeproj">
  6 + </FileRef>
  7 +</Workspace>
NNewGumpSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
... ... @@ -0,0 +1,8 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>IDEDidComputeMac32BitWarning</key>
  6 + <true/>
  7 +</dict>
  8 +</plist>
NNewGumpSDKDemo.xcodeproj/project.xcworkspace/xcuserdata/yanglele.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
NNewGumpSDKDemo.xcodeproj/xcuserdata/yanglele.xcuserdatad/xcschemes/xcschememanagement.plist
... ... @@ -0,0 +1,14 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>SchemeUserState</key>
  6 + <dict>
  7 + <key>NNewGumpSDKDemo.xcscheme_^#shared#^_</key>
  8 + <dict>
  9 + <key>orderHint</key>
  10 + <integer>2</integer>
  11 + </dict>
  12 + </dict>
  13 +</dict>
  14 +</plist>
NNewGumpSDKDemo.xcworkspace/contents.xcworkspacedata
... ... @@ -0,0 +1,10 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Workspace
  3 + version = "1.0">
  4 + <FileRef
  5 + location = "group:NNewGumpSDKDemo.xcodeproj">
  6 + </FileRef>
  7 + <FileRef
  8 + location = "group:Pods/Pods.xcodeproj">
  9 + </FileRef>
  10 +</Workspace>
NNewGumpSDKDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
... ... @@ -0,0 +1,8 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>IDEDidComputeMac32BitWarning</key>
  6 + <true/>
  7 +</dict>
  8 +</plist>
NNewGumpSDKDemo.xcworkspace/xcuserdata/yanglele.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
NNewGumpSDKDemo.xcworkspace/xcuserdata/yanglele.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
... ... @@ -0,0 +1,5 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Bucket
  3 + type = "0"
  4 + version = "2.0">
  5 +</Bucket>
NNewGumpSDKDemo/AppDelegate.h
... ... @@ -0,0 +1,17 @@
  1 +//
  2 +// AppDelegate.h
  3 +// NNewGumpSDKDemo
  4 +//
  5 +// Created by yanglele on 2019/5/24.
  6 +// Copyright © 2019 yanglele. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@interface AppDelegate : UIResponder <UIApplicationDelegate>
  12 +
  13 +@property (strong, nonatomic) UIWindow *window;
  14 +
  15 +
  16 +@end
  17 +
NNewGumpSDKDemo/AppDelegate.m
... ... @@ -0,0 +1,77 @@
  1 +//
  2 +// AppDelegate.m
  3 +// NNewGumpSDKDemo
  4 +//
  5 +// Created by yanglele on 2019/5/24.
  6 +// Copyright © 2019 yanglele. All rights reserved.
  7 +//
  8 +
  9 +#import "AppDelegate.h"
  10 +#import "ViewController.h"
  11 +#import "LetsGameAPI.h"
  12 +#import "LetsGameActivityAPI.h"
  13 +
  14 +
  15 +@interface AppDelegate ()
  16 +
  17 +@end
  18 +
  19 +@implementation AppDelegate
  20 +
  21 +
  22 +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  23 + // Override point for customization after application launch.
  24 + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  25 + ViewController *vc = [[ViewController alloc] init];
  26 + self.window.rootViewController = vc;
  27 +
  28 + self.window.backgroundColor = [UIColor whiteColor];
  29 + [self.window makeKeyAndVisible];
  30 +
  31 + //设置sdk测试服务器
  32 +// [[LetsGameAPI instance] decideIsDebug:1];
  33 + //设置第三方支付版本,不设置时,默认是v3,设置为1的时候是v4版本
  34 +// [[LetsGameAPI instance] decideWebToVersion:1];
  35 +
  36 + [[UIApplication sharedApplication] setStatusBarHidden:YES];
  37 + //注册苹果内购支付
  38 + [[LetsGameAPI instance] registeIapObserver];
  39 +
  40 + return YES;
  41 +}
  42 +
  43 +
  44 +- (void)applicationWillResignActive:(UIApplication *)application {
  45 + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
  46 + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
  47 +}
  48 +
  49 +
  50 +- (void)applicationDidEnterBackground:(UIApplication *)application {
  51 + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
  52 + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
  53 +}
  54 +
  55 +
  56 +- (void)applicationWillEnterForeground:(UIApplication *)application {
  57 + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
  58 +}
  59 +
  60 +
  61 +- (void)applicationDidBecomeActive:(UIApplication *)application {
  62 + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
  63 +}
  64 +
  65 +
  66 +- (void)applicationWillTerminate:(UIApplication *)application {
  67 + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
  68 +}
  69 +
  70 +-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
  71 + return [[LetsGameAPI instance] handleOpenURL:url sourceApplication:sourceApplication];
  72 +
  73 +}
  74 +
  75 +
  76 +
  77 +@end
NNewGumpSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
... ... @@ -0,0 +1,98 @@
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "iphone",
  5 + "size" : "20x20",
  6 + "scale" : "2x"
  7 + },
  8 + {
  9 + "idiom" : "iphone",
  10 + "size" : "20x20",
  11 + "scale" : "3x"
  12 + },
  13 + {
  14 + "idiom" : "iphone",
  15 + "size" : "29x29",
  16 + "scale" : "2x"
  17 + },
  18 + {
  19 + "idiom" : "iphone",
  20 + "size" : "29x29",
  21 + "scale" : "3x"
  22 + },
  23 + {
  24 + "idiom" : "iphone",
  25 + "size" : "40x40",
  26 + "scale" : "2x"
  27 + },
  28 + {
  29 + "idiom" : "iphone",
  30 + "size" : "40x40",
  31 + "scale" : "3x"
  32 + },
  33 + {
  34 + "idiom" : "iphone",
  35 + "size" : "60x60",
  36 + "scale" : "2x"
  37 + },
  38 + {
  39 + "idiom" : "iphone",
  40 + "size" : "60x60",
  41 + "scale" : "3x"
  42 + },
  43 + {
  44 + "idiom" : "ipad",
  45 + "size" : "20x20",
  46 + "scale" : "1x"
  47 + },
  48 + {
  49 + "idiom" : "ipad",
  50 + "size" : "20x20",
  51 + "scale" : "2x"
  52 + },
  53 + {
  54 + "idiom" : "ipad",
  55 + "size" : "29x29",
  56 + "scale" : "1x"
  57 + },
  58 + {
  59 + "idiom" : "ipad",
  60 + "size" : "29x29",
  61 + "scale" : "2x"
  62 + },
  63 + {
  64 + "idiom" : "ipad",
  65 + "size" : "40x40",
  66 + "scale" : "1x"
  67 + },
  68 + {
  69 + "idiom" : "ipad",
  70 + "size" : "40x40",
  71 + "scale" : "2x"
  72 + },
  73 + {
  74 + "idiom" : "ipad",
  75 + "size" : "76x76",
  76 + "scale" : "1x"
  77 + },
  78 + {
  79 + "idiom" : "ipad",
  80 + "size" : "76x76",
  81 + "scale" : "2x"
  82 + },
  83 + {
  84 + "idiom" : "ipad",
  85 + "size" : "83.5x83.5",
  86 + "scale" : "2x"
  87 + },
  88 + {
  89 + "idiom" : "ios-marketing",
  90 + "size" : "1024x1024",
  91 + "scale" : "1x"
  92 + }
  93 + ],
  94 + "info" : {
  95 + "version" : 1,
  96 + "author" : "xcode"
  97 + }
  98 +}
0 99 \ No newline at end of file
NNewGumpSDKDemo/Assets.xcassets/Contents.json
... ... @@ -0,0 +1,6 @@
  1 +{
  2 + "info" : {
  3 + "version" : 1,
  4 + "author" : "xcode"
  5 + }
  6 +}
0 7 \ No newline at end of file
NNewGumpSDKDemo/Base.lproj/LaunchScreen.storyboard
... ... @@ -0,0 +1,25 @@
  1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
  3 + <dependencies>
  4 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
  5 + <capability name="Safe area layout guides" minToolsVersion="9.0"/>
  6 + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  7 + </dependencies>
  8 + <scenes>
  9 + <!--View Controller-->
  10 + <scene sceneID="EHf-IW-A2E">
  11 + <objects>
  12 + <viewController id="01J-lp-oVM" sceneMemberID="viewController">
  13 + <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
  14 + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
  15 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  16 + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  17 + <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
  18 + </view>
  19 + </viewController>
  20 + <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
  21 + </objects>
  22 + <point key="canvasLocation" x="53" y="375"/>
  23 + </scene>
  24 + </scenes>
  25 +</document>
NNewGumpSDKDemo/Base.lproj/Main.storyboard
... ... @@ -0,0 +1,24 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
  3 + <dependencies>
  4 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
  5 + <capability name="Safe area layout guides" minToolsVersion="9.0"/>
  6 + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  7 + </dependencies>
  8 + <scenes>
  9 + <!--View Controller-->
  10 + <scene sceneID="tne-QT-ifu">
  11 + <objects>
  12 + <viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="" sceneMemberID="viewController">
  13 + <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
  14 + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
  15 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  16 + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  17 + <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
  18 + </view>
  19 + </viewController>
  20 + <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
  21 + </objects>
  22 + </scene>
  23 + </scenes>
  24 +</document>
NNewGumpSDKDemo/Info.plist
... ... @@ -0,0 +1,44 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>CFBundleDevelopmentRegion</key>
  6 + <string>$(DEVELOPMENT_LANGUAGE)</string>
  7 + <key>CFBundleExecutable</key>
  8 + <string>$(EXECUTABLE_NAME)</string>
  9 + <key>CFBundleIdentifier</key>
  10 + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
  11 + <key>CFBundleInfoDictionaryVersion</key>
  12 + <string>6.0</string>
  13 + <key>CFBundleName</key>
  14 + <string>$(PRODUCT_NAME)</string>
  15 + <key>CFBundlePackageType</key>
  16 + <string>APPL</string>
  17 + <key>CFBundleShortVersionString</key>
  18 + <string>1.0</string>
  19 + <key>CFBundleVersion</key>
  20 + <string>1</string>
  21 + <key>LSRequiresIPhoneOS</key>
  22 + <true/>
  23 + <key>UILaunchStoryboardName</key>
  24 + <string>LaunchScreen</string>
  25 + <key>UIMainStoryboardFile</key>
  26 + <string>Main</string>
  27 + <key>UIRequiredDeviceCapabilities</key>
  28 + <array>
  29 + <string>armv7</string>
  30 + </array>
  31 + <key>UISupportedInterfaceOrientations</key>
  32 + <array>
  33 + <string>UIInterfaceOrientationLandscapeLeft</string>
  34 + <string>UIInterfaceOrientationLandscapeRight</string>
  35 + </array>
  36 + <key>UISupportedInterfaceOrientations~ipad</key>
  37 + <array>
  38 + <string>UIInterfaceOrientationPortrait</string>
  39 + <string>UIInterfaceOrientationPortraitUpsideDown</string>
  40 + <string>UIInterfaceOrientationLandscapeLeft</string>
  41 + <string>UIInterfaceOrientationLandscapeRight</string>
  42 + </array>
  43 +</dict>
  44 +</plist>
NNewGumpSDKDemo/ViewController.h
... ... @@ -0,0 +1,15 @@
  1 +//
  2 +// ViewController.h
  3 +// NNewGumpSDKDemo
  4 +//
  5 +// Created by yanglele on 2019/5/24.
  6 +// Copyright © 2019 yanglele. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@interface ViewController : UIViewController
  12 +
  13 +
  14 +@end
  15 +
NNewGumpSDKDemo/ViewController.m
... ... @@ -0,0 +1,241 @@
  1 +//
  2 +// LSGMainViewController.m
  3 +// letsgameDemo
  4 +//
  5 +// Created by zhy on 14-5-24.
  6 +//
  7 +//
  8 +
  9 +#import "ViewController.h"
  10 +#import "LetsGameAPI.h"
  11 +#import "LetsGameActivityAPI.h"
  12 +#import "GPGameLoginSDK.h"
  13 +
  14 +
  15 +
  16 +@interface ViewController ()
  17 +
  18 +@property (nonatomic, strong) UILabel *resultLabel;
  19 +
  20 +@property(nonatomic,strong) NSNumber *userId;
  21 +
  22 +@property(nonatomic, assign) BOOL payToWeb;
  23 +
  24 +@property(nonatomic, strong) UITextField *activityTextField;
  25 +@end
  26 +
  27 +@implementation ViewController
  28 +
  29 +- (void)loadView {
  30 + [super loadView];
  31 + NSLog(@"i come in");
  32 + // self.view.backgroundColor = [UIColor whiteColor];
  33 + self.view.backgroundColor = [UIColor blackColor];
  34 +
  35 + UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(110, 40, 100, 30)];
  36 + btn.backgroundColor = [UIColor orangeColor];
  37 + [btn setTitle:@"测试入口" forState:UIControlStateNormal];
  38 + [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  39 + btn.titleLabel.font = [UIFont systemFontOfSize:15];
  40 + [btn addTarget:self action:@selector(onClickTest) forControlEvents:UIControlEventTouchUpInside];
  41 + [self.view addSubview:btn];
  42 +
  43 + UILabel *payWarnLabel = [[UILabel alloc] initWithFrame:CGRectMake(110, 85, 150, 10)];
  44 + payWarnLabel.text = @"默认V3支付,点击Switch是V4支付";
  45 + payWarnLabel.backgroundColor = [UIColor clearColor];
  46 + payWarnLabel.font = [UIFont systemFontOfSize:9];
  47 + [payWarnLabel setTextColor:[UIColor whiteColor]];
  48 + [self.view addSubview:payWarnLabel];
  49 +
  50 + UIButton *payBtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 100, 100, 30)];
  51 + payBtn.backgroundColor = [UIColor orangeColor];
  52 + [payBtn setTitle:@"支付" forState:UIControlStateNormal];
  53 + [payBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  54 + payBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  55 + [payBtn addTarget:self action:@selector(onPayTest) forControlEvents:UIControlEventTouchUpInside];
  56 + [self.view addSubview:payBtn];
  57 +
  58 + self.payToWeb = NO;
  59 + UISwitch *webVersion = [[UISwitch alloc] initWithFrame:CGRectMake(220,100,60,30)];
  60 + [webVersion addTarget:self action:@selector(onPayWebTo) forControlEvents:UIControlEventValueChanged];
  61 + [self.view addSubview:webVersion];
  62 +
  63 + UIButton *iapBtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 160, 100, 30)];
  64 + iapBtn.backgroundColor = [UIColor orangeColor];
  65 + [iapBtn setTitle:@"IAP" forState:UIControlStateNormal];
  66 + [iapBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  67 + iapBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  68 + [iapBtn addTarget:self action:@selector(onIapTest) forControlEvents:UIControlEventTouchUpInside];
  69 + [self.view addSubview:iapBtn];
  70 +
  71 + UIButton *activityBtn = [[UIButton alloc] initWithFrame:CGRectMake(110, 220, 100, 30)];
  72 + activityBtn.backgroundColor = [UIColor orangeColor];
  73 + [activityBtn setTitle:@"Activity" forState:UIControlStateNormal];
  74 + [activityBtn setTintColor:[UIColor whiteColor]];
  75 + activityBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  76 + [activityBtn addTarget:self action:@selector(onActivity) forControlEvents:UIControlEventTouchUpInside];
  77 + [self.view addSubview:activityBtn];
  78 +
  79 + UIButton *cleanUserInfoBtn = [[UIButton alloc] initWithFrame:CGRectMake(300, 40, 100, 30)];
  80 + cleanUserInfoBtn.backgroundColor = [UIColor orangeColor];
  81 + [cleanUserInfoBtn setTitle:@"cleanUserInfo" forState:UIControlStateNormal];
  82 + [cleanUserInfoBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  83 + cleanUserInfoBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  84 + [cleanUserInfoBtn addTarget:self action:@selector(cleanUserInfoClick) forControlEvents:UIControlEventTouchUpInside];
  85 + [self.view addSubview:cleanUserInfoBtn];
  86 +
  87 + UIButton *linkBtn = [[UIButton alloc] initWithFrame:CGRectMake(300, 100, 100, 30)];
  88 + linkBtn.backgroundColor = [UIColor orangeColor];
  89 + [linkBtn setTitle:@"link" forState:UIControlStateNormal];
  90 + [linkBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  91 + linkBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  92 + [linkBtn addTarget:self action:@selector(linkBtnClick) forControlEvents:UIControlEventTouchUpInside];
  93 + [self.view addSubview:linkBtn];
  94 +
  95 +
  96 + UIButton *switchSysBtn = [[UIButton alloc] initWithFrame:CGRectMake(300, 160, 100, 30)];
  97 + switchSysBtn.backgroundColor = [UIColor orangeColor];
  98 + [switchSysBtn setTitle:@"switchGameCenter" forState:UIControlStateNormal];
  99 + [switchSysBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  100 + switchSysBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  101 + [switchSysBtn addTarget:self action:@selector(switchGameCentBtnClick) forControlEvents:UIControlEventTouchUpInside];
  102 + [self.view addSubview:switchSysBtn];
  103 +
  104 + UITextField *activityField = [[UITextField alloc] initWithFrame:CGRectMake(220, 220, 100, 30)];
  105 + activityField.placeholder = @"活动类型";
  106 + activityField.backgroundColor = [UIColor whiteColor];
  107 + self.activityTextField = activityField;
  108 + [self.view addSubview:self.activityTextField];
  109 +
  110 +}
  111 +
  112 +- (UILabel *)resultLabel {
  113 + if (!_resultLabel) {
  114 + _resultLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.view.frame) - 90, self.view.frame.size.width, 60)];
  115 + _resultLabel.backgroundColor = [UIColor clearColor];
  116 + _resultLabel.textAlignment = NSTextAlignmentCenter;
  117 + _resultLabel.textColor = [UIColor redColor];
  118 + _resultLabel.font = [UIFont systemFontOfSize:15];
  119 + _resultLabel.numberOfLines = 4;
  120 + _resultLabel.lineBreakMode = NSLineBreakByWordWrapping;
  121 + [self.view addSubview:_resultLabel];
  122 + }
  123 +
  124 + return _resultLabel;
  125 +}
  126 +
  127 +
  128 +- (void)onClickTest {
  129 + [[GPGameLoginSDK instance] GPGameLoginWithViewController:self appID:@"10022" channelId:@"1000"];
  130 + [GPGameLoginSDK instance].succBlock = ^(NSNumber *userId, ACCOUNTENTERTYPE type) {
  131 + self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
  132 + self.userId = userId;
  133 + };
  134 + [GPGameLoginSDK instance].failBlock = ^{
  135 + self.resultLabel.text = @"login error";
  136 + };
  137 +}
  138 +
  139 +
  140 +-(void)onPayTest{
  141 +
  142 + [LetsGameAPI instance].appId = @"100";//@"10056";//10022
  143 + NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
  144 + [payInfo setValue:@"100" forKey:@"serverId"];
  145 + [payInfo setValue:@"41080" forKey:@"roleId"];
  146 + [payInfo setValue:@"1000" forKey:@"channelId"];
  147 + [payInfo setValue:self.userId forKey:@"userId"];
  148 + [payInfo setValue:@"0.01" forKey:@"amount"];
  149 + [payInfo setValue:@"ios demo" forKey:@"extraInfo"];
  150 + [payInfo setValue:@"test" forKey:@"product"];
  151 + // [[LetsGameAPI instance] pay:payInfo handleCallBack:^{
  152 + // NSLog(@"第三方支付完成");
  153 + // }];
  154 + [[LetsGameAPI instance] pWeb:payInfo handleCallBack:^{
  155 + NSLog(@"第三方支付完成");
  156 + }];
  157 +}
  158 +
  159 +-(void)onIapTest{
  160 +
  161 + [LetsGameAPI instance].appId = @"10106";
  162 + NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
  163 + [payInfo setValue:@"s1" forKey:@"serverId"];
  164 + [payInfo setValue:@"1445336" forKey:@"roleId"];
  165 + [payInfo setValue:@"1556194018524984" forKey:@"userId"];
  166 + [payInfo setValue:@"1014" forKey:@"channelId"];
  167 + [payInfo setValue:@"0" forKey:@"amount"];
  168 + [payInfo setValue:@"iap2019052315101445336962060" forKey:@"extraInfo"];
  169 + [payInfo setValue:@"s12" forKey:@"product"];
  170 + [[LetsGameAPI instance] iap:payInfo succCallback:^(NSString *orderId) {
  171 + //注意测试仅仅是通知客户端成功,但是还需要向服务器请求验证是否成功,以服务端验证为准
  172 + NSLog(@"IAP completed orderId of Gumptech:%@",orderId);
  173 + } failCallback:^(NSString *orderId) {
  174 + NSLog(@"IAP file orderId of Gumptech:%@",orderId);
  175 + }];
  176 +
  177 + // [LetsGameAPI instance].appId = @"100";
  178 + // NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
  179 + // [payInfo setValue:@"100" forKey:@"serverId"];
  180 + // [payInfo setValue:@"41080" forKey:@"roleId"];
  181 + // [payInfo setValue:self.userId forKey:@"userId"];
  182 + // [payInfo setValue:@"1000" forKey:@"channelId"];
  183 + // [payInfo setValue:@"10" forKey:@"amount"];
  184 + // [payInfo setValue:@"ios demo" forKey:@"extraInfo"];
  185 + // [payInfo setValue:@"com.gump.pro1" forKey:@"product"];
  186 + // [[LetsGameAPI instance] iap:payInfo succCallback:^(NSString *orderId) {
  187 + // //注意测试仅仅是通知客户端成功,但是还需要向服务器请求验证是否成功,以服务端验证为准
  188 + // NSLog(@"IAP completed orderId of Gumptech:%@",orderId);
  189 + // } failCallback:^(NSString *orderId) {
  190 + // NSLog(@"IAP file orderId of Gumptech:%@",orderId);
  191 + // }];
  192 +}
  193 +
  194 +-(void)onActivity{
  195 +
  196 + [[LetsGameActivityAPI instance] decideIsDebug:1];
  197 + NSMutableDictionary *activityInfo = [NSMutableDictionary dictionary];
  198 + [activityInfo setValue:@"100" forKey:@"appId"];
  199 + [activityInfo setValue:@"17670327" forKey:@"userId"];
  200 + [activityInfo setValue:@"55" forKey:@"serverId"];
  201 + [activityInfo setValue:@"Pidmon" forKey:@"serverName"];
  202 + [activityInfo setValue:@"55004444" forKey:@"roleId"];
  203 + [activityInfo setValue:@"Marin" forKey:@"roleName"];
  204 + [activityInfo setValue:@"140" forKey:@"diamond"];
  205 + [activityInfo setValue:self.activityTextField.text forKey:@"campaignType"];
  206 + [[LetsGameActivityAPI instance] GameActivityWithParaDictory:activityInfo handleCallBackL:^{
  207 + NSLog(@"activity finish!");
  208 + }];
  209 +}
  210 +
  211 +-(void)linkBtnClick{
  212 + NSMutableDictionary *linkParaDic = [NSMutableDictionary dictionary];
  213 + [linkParaDic setObject:@"10022" forKey:@"appId"];
  214 + [linkParaDic setObject:self.userId forKey:@"userId"];
  215 + //仅在切换账号成功的时候有返回值
  216 + [[GPGameLoginSDK instance] GPGameAccountLinkViewController:self InfoDic:linkParaDic callBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
  217 + self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
  218 + }];
  219 +}
  220 +
  221 +-(void)onPayWebTo{
  222 + if (!self.payToWeb) {
  223 + self.payToWeb = YES;
  224 + [[LetsGameAPI instance] decideWebToVersion:1];
  225 + }else{
  226 + self.payToWeb = NO;
  227 + [[LetsGameAPI instance] decideWebToVersion:0];
  228 + }
  229 +}
  230 +
  231 +-(void)switchGameCentBtnClick{
  232 + [[GPGameLoginSDK instance] GPSwitchGameCenterWithViewController:self switchCallBack:^{
  233 + self.resultLabel.text = @"Login Game Center";
  234 + }];
  235 +}
  236 +
  237 +-(void)cleanUserInfoClick{
  238 + [[GPGameLoginSDK instance] cleanUserInfo];
  239 +}
  240 +
  241 +@end
NNewGumpSDKDemo/main.m
... ... @@ -0,0 +1,16 @@
  1 +//
  2 +// main.m
  3 +// NNewGumpSDKDemo
  4 +//
  5 +// Created by yanglele on 2019/5/24.
  6 +// Copyright © 2019 yanglele. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +#import "AppDelegate.h"
  11 +
  12 +int main(int argc, char * argv[]) {
  13 + @autoreleasepool {
  14 + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  15 + }
  16 +}
... ... @@ -0,0 +1,9 @@
  1 +# Uncomment the next line to define a global platform for your project
  2 +platform :ios, '9.0'
  3 +
  4 +target 'NNewGumpSDKDemo' do
  5 + # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  6 + # use_frameworks!
  7 + pod 'AFNetworking','~>3.1.0'
  8 +
  9 +end
... ... @@ -0,0 +1,144 @@
  1 +# Gump IOS SDK使用文档
  2 +
  3 +
  4 +接入手册
  5 +登陆sdk:GameLoginSDK.framework v1.0.11
  6 +支付sdk: GameSDK.framework v4.0.7
  7 +2019年6月3日
  8 +
  9 +## 概述
  10 +#### 本SDK提供Game Center登陆 和 游客登陆两种账号登录,iap支付和第三方支付两种支付功能,活动SDK(大转盘等)。
  11 +
  12 +## 接入步骤
  13 +### 1、添加Framework和资源文件
  14 ++ 以下为必须添加的framework以及资源bundle:
  15 +MobileCoreServices.framework、SystemConfiguration.framework、libz.dylib、CFNetwork.framework、GumpLoginSDK.framework、GameSDK.framework、GameActivitySDK.framework、StoreKit.framework、GameSDKResources.bundle
  16 ++ 需要接入GameLoginSDK.framework 添加的AFNetworking,使用pod init创建Podfile,在其中添加pod 'AFNetworking','~>3.1.0', pod install 添加 AFNetworking到工程中。
  17 +
  18 +### 2、引入头文件,设置build setting
  19 +因sdk内使用了category,需要设置other linker flag为 -ObjC
  20 +
  21 +
  22 +### 3、增加必要配置
  23 +1)在application delegate中, 在application:openURL:sourceApplication:annotation:添加返回:
  24 +
  25 + return [[LetsGameAPI instance] handleOpenURL:url sourceApplication:sourceApplication];
  26 +
  27 +2) 在工程的Targets->Capablities->Game Center 打开
  28 +
  29 +3) 在Build Settings->Search Paths->Framework Search Paths 上设置framework的搜索路径是`(PROJECT_DIR)/GameSDK.framework`,这里的framework是登录、支付、活动的SDK,也看将framework拷贝到的具体位置在设置.
  30 +
  31 +4) 在Build Settings->Search Paths->Header Search Paths 上设置 `.h`文件的搜索路径是`(PROJECT_DIR)/GameSDK.framework`中,这里的framework是登录、支付、活动的SDK,也看将framework拷贝到的具体位置再设置.
  32 +
  33 +
  34 +### 4、在工程里添加SDK登录代码
  35 +
  36 +添加GameLoginSDK.framework,需要在工程中添加`AFNetworking`
  37 +
  38 +
  39 + [[GPGameLoginSDK instance] GPGameLoginWithViewController:self appID:@"100" channelId:@"10002"];
  40 + [GPGameLoginSDK instance].succBlock = ^(NSNumber *userId, ACCOUNTTYPE type) {
  41 + self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
  42 + };
  43 + [GPGameLoginSDK instance].failBlock = ^{
  44 + self.resultLabel.text = @"login error";
  45 + };
  46 +
  47 +
  48 +### 5、第三方支付
  49 + [LetsGameAPI instance].appId = @"10022";
  50 + NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
  51 + [payInfo setValue:@"5001" forKey:@"serverId"];//服务器id,必传参数
  52 + [payInfo setValue:@"10010" forKey:@"roleId"];//用户角色id
  53 + [payInfo setValue:@"1595907" forKey:@"userId"];//用户ID userId
  54 + [payInfo setValue:@"1000" forKey:@"channelId"];//渠道id
  55 + [payInfo setValue:@"10" forKey:@"amount"];//金额
  56 + [payInfo setValue:@"ios demo" forKey:@"extraInfo"];//外部订单信息
  57 + [payInfo setValue:@"test1" forKey:@"product"];//商品ID
  58 + [[LetsGameAPI instance] pWeb:payInfo handleCallBack:^{
  59 + //第三方支付完成时的回调(包括支付成功和支付失败,除了支付过程中取消的),取消的不会有回调
  60 + NSLog(@"第三方支付完成");
  61 + }]];
  62 +
  63 +### 6、IAP支付
  64 +若要使用apple IAP支付,需要在AppDelegate的application: didFinishLaunchingWithOptions:方法内注册iap observer,使用如下方法
  65 +
  66 + [[LetsGameAPI instance] registeIapObserver];
  67 +具体调用iap支付的方法如下:
  68 +
  69 + [LetsGameAPI instance].appId = @"100";
  70 + NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
  71 + [payInfo setValue:@"5001" forKey:@"serverId"];//当前用户所在的服务器Id
  72 + [payInfo setValue:@"10010" forKey:@"roleId"];//当前用户的角色id
  73 + [payInfo setValue:@"1595907" forKey:@"userId"];//用户ID userId
  74 + [payInfo setValue:@"1000" forKey:@"channelId"];//渠道id,用于统计
  75 + [payInfo setValue:@"10" forKey:@"amount"];//对应支付项的支付金额,实际支付金额以itunes配置为准
  76 + [payInfo setValue:@"ios demo" forKey:@"extraInfo"];//扩展信息,可以游戏自定义,建议传自有订单号
  77 + [payInfo setValue:@"test.product.1" forKey:@"product"];//itunes 后台配置的对应支付项的productId
  78 + [[LetsGameAPI instance] iap:payInfo succCallback:^(NSString *orderId) {
  79 + //此处的回调表明支付已经完成,但此时支付不一定成功,需要服务端验证支付结果
  80 + //orderId为gump生成的订单号,此订单号可以在gump server查询此笔支付是否成功
  81 + NSLog(@"IAP completed orderId of Gumptech:%@",orderId);
  82 + } failCallback:^(NSString *orderId) {
  83 + //支付失败
  84 + NSLog(@"IAP file orderId of Gumptech:%@",orderId);
  85 + }];
  86 +
  87 +
  88 +### 7、第三方支付版本
  89 +第三方支付,分成两个版本:没有gump币和有gump币,不设置时默认为不带gump币版本,如果使用带gump币的版本如下设置:
  90 +
  91 + 需要在 application:didFinishLaunchingWithOptions方法中添加:
  92 +
  93 + [[LetsGameAPI instance] decideWebToVersion:1]
  94 +
  95 +### 8、第三方支付横竖屏设置
  96 +添加GameSDK.framework
  97 + 首先设置支付SDK默认是横屏,在General->Deployment Info->Device Orientain下,只选择Landscape Left 和 Landscape Right,SDK的界面默认是横屏。
  98 + 其次如果想使用竖屏的模式,需要在General->Deployment Info->Device Orientain下,只选择Portrait模式,并且需要在AppDelegate中的方法:
  99 + - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;靠前的位置添加代码设置:
  100 +
  101 + [LetsGameAPI DeviceOrientationIsHorizontal:NO];
  102 +
  103 +### 9、活动添加
  104 +添加GameActivitySDK.framework
  105 +设置:设置xxxx.plist
  106 +只支持HTTP的方式,需要将相应的项目的xxx.plist添加Information Property List->App Transport Security Settings -> Allow Arbitrary Loads设置为YES
  107 +
  108 +工程中添加SDK登录代码:
  109 +
  110 + NSMutableDictionary *activityInfo = [NSMutableDictionary dictionary];
  111 + [activityInfo setValue:@"100" forKey:@"appId"];
  112 + [activityInfo setValue:@"123456" forKey:@"userId"];
  113 + [activityInfo setValue:@"111" forKey:@"serverId"];
  114 + [activityInfo setValue:@"aaa" forKey:@"serverName"];
  115 + [activityInfo setValue:@"222" forKey:@"roleId"];
  116 + [activityInfo setValue:@"ccc" forKey:@"roleName"];
  117 + [activityInfo setValue:@"888" forKey:@"diamond"];
  118 + //活动关闭的回调
  119 + [[LetsGameActivityAPI instance] GameActivityWithParaDictory:activityInfo handleCallBackL:^{
  120 + NSLog(@"activity finish!");
  121 + }];
  122 +
  123 +### 10、账号联动
  124 +需要提供按钮绑定,点击事件调用下面方法。
  125 +此功能涉及账号的绑定和切换,回调只有在切换成功之后才会出现,其他情况的回调都是失败的回调。
  126 +工程中添加SDK账号联动代码:
  127 +
  128 + NSMutableDictionary *linkParaDic = [NSMutableDictionary dictionary];
  129 + [linkParaDic setObject:@"10022" forKey:@"appId"];
  130 + [linkParaDic setObject:self.userId forKey:@"userId"];
  131 + //仅在切换账号成功的时候有返回值
  132 + [[GPGameLoginSDK instance] GPGameAccountLinkViewController:self InfoDic:linkParaDic callBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
  133 + self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
  134 + }];
  135 +
  136 +### 11、切换系统账号
  137 +需要提供按钮切换系统账号,点击事件调用下面方法。
  138 +需要用户自己去往Game Center切换账号,之后再次登陆游戏才能实现账号切换。
  139 +工程中添加SDK切换系统账号代码:
  140 +
  141 + [[GPGameLoginSDK instance] GPSwitchGameCenterWithViewController:self switchCallBack:^{
  142 + self.resultLabel.text = @"Login Game Center";
  143 + }];
  144 +