更换游戏sdk

This commit is contained in:
liyuhua
2023-09-13 10:18:45 +08:00
parent be7ee4235f
commit 884482b8ae
64 changed files with 292 additions and 1518 deletions

View File

@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 52;
objectVersion = 51;
objects = {
/* Begin PBXBuildFile section */
@@ -130,6 +130,8 @@
18F404BB2760982000A6C548 /* ChatLimitModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F404BA2760982000A6C548 /* ChatLimitModel.m */; };
18F404C3276098F100A6C548 /* Api+Message.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F404C2276098F100A6C548 /* Api+Message.m */; };
18F404C927609A4300A6C548 /* MessagePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F404C827609A4300A6C548 /* MessagePresenter.m */; };
232C43E52AB074AD00D4B2ED /* SudMGP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 232C43E42AB074AD00D4B2ED /* SudMGP.framework */; };
232C43E72AB0755200D4B2ED /* SudMGP.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 232C43E42AB074AD00D4B2ED /* SudMGP.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
2331C0DC2A5E9E9000E1D940 /* PIFullScreenBannerAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2331C0DB2A5E9E9000E1D940 /* PIFullScreenBannerAnimation.m */; };
2331C1632A5EB71000E1D940 /* XPNobleCenterPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 2331C1322A5EB71000E1D940 /* XPNobleCenterPresenter.m */; };
2331C1642A5EB71000E1D940 /* NobleInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 2331C1362A5EB71000E1D940 /* NobleInfo.m */; };
@@ -181,8 +183,6 @@
233423D92AB0438400B1253F /* PIMessageContentServiceReplyModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 233423D82AB0438400B1253F /* PIMessageContentServiceReplyModel.m */; };
2369F9912A89CE0E00563B48 /* PIUserSexView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2369F9902A89CE0E00563B48 /* PIUserSexView.m */; };
2369F9932A8B21EB00563B48 /* pi_treasure_fairy_gift_bg.svga in Resources */ = {isa = PBXBuildFile; fileRef = 2369F9922A8B21EA00563B48 /* pi_treasure_fairy_gift_bg.svga */; };
236B2E1E2AA0786E003967A8 /* SudMGP.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 236B2E1D2AA0786E003967A8 /* SudMGP.xcframework */; };
236B2E1F2AA079A7003967A8 /* SudMGP.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 236B2E1D2AA0786E003967A8 /* SudMGP.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
236B2E422AA07D06003967A8 /* SudCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = 236B2E232AA07D06003967A8 /* SudCommon.m */; };
236B2E432AA07D06003967A8 /* NSString+RW.m in Sources */ = {isa = PBXBuildFile; fileRef = 236B2E252AA07D06003967A8 /* NSString+RW.m */; };
236B2E442AA07D06003967A8 /* UIColor+RW.m in Sources */ = {isa = PBXBuildFile; fileRef = 236B2E272AA07D06003967A8 /* UIColor+RW.m */; };
@@ -1364,12 +1364,21 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
236B2E1F2AA079A7003967A8 /* SudMGP.xcframework in Embed Frameworks */,
1427212629A7566100C7C423 /* ZegoAudioRoom.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
232C43E62AB0754700D4B2ED /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
232C43E72AB0755200D4B2ED /* SudMGP.framework in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
@@ -1632,6 +1641,7 @@
18F404C6276099DF00A6C548 /* MessageProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageProtocol.h; sourceTree = "<group>"; };
18F404C727609A4300A6C548 /* MessagePresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessagePresenter.h; sourceTree = "<group>"; };
18F404C827609A4300A6C548 /* MessagePresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessagePresenter.m; sourceTree = "<group>"; };
232C43E42AB074AD00D4B2ED /* SudMGP.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SudMGP.framework; sourceTree = "<group>"; };
2331C0DA2A5E9E9000E1D940 /* PIFullScreenBannerAnimation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIFullScreenBannerAnimation.h; sourceTree = "<group>"; };
2331C0DB2A5E9E9000E1D940 /* PIFullScreenBannerAnimation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIFullScreenBannerAnimation.m; sourceTree = "<group>"; };
2331C1312A5EB71000E1D940 /* XPNobleCenterPresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPNobleCenterPresenter.h; sourceTree = "<group>"; };
@@ -1736,7 +1746,6 @@
2369F98F2A89CE0E00563B48 /* PIUserSexView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIUserSexView.h; sourceTree = "<group>"; };
2369F9902A89CE0E00563B48 /* PIUserSexView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIUserSexView.m; sourceTree = "<group>"; };
2369F9922A8B21EA00563B48 /* pi_treasure_fairy_gift_bg.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = pi_treasure_fairy_gift_bg.svga; sourceTree = "<group>"; };
236B2E1D2AA0786E003967A8 /* SudMGP.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = SudMGP.xcframework; sourceTree = "<group>"; };
236B2E222AA07D06003967A8 /* SudGameConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SudGameConfig.h; sourceTree = "<group>"; };
236B2E232AA07D06003967A8 /* SudCommon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SudCommon.m; sourceTree = "<group>"; };
236B2E252AA07D06003967A8 /* NSString+RW.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+RW.m"; sourceTree = "<group>"; };
@@ -3967,9 +3976,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
232C43E52AB074AD00D4B2ED /* SudMGP.framework in Frameworks */,
73FFADDC93E195344047A2EC /* Pods_YuMi.framework in Frameworks */,
186A531926FC592100D67B2C /* libresolv.tbd in Frameworks */,
236B2E1E2AA0786E003967A8 /* SudMGP.xcframework in Frameworks */,
E87888F42738C30E00BF1D57 /* StoreKit.framework in Frameworks */,
9BA8A47727C60DF7000365A3 /* AVFoundation.framework in Frameworks */,
1427212529A7566100C7C423 /* ZegoAudioRoom.framework in Frameworks */,
@@ -5021,19 +5030,11 @@
236B2E1B2AA0786E003967A8 /* Library */ = {
isa = PBXGroup;
children = (
236B2E1C2AA0786E003967A8 /* SudMGPSDK */,
232C43E42AB074AD00D4B2ED /* SudMGP.framework */,
);
path = Library;
sourceTree = "<group>";
};
236B2E1C2AA0786E003967A8 /* SudMGPSDK */ = {
isa = PBXGroup;
children = (
236B2E1D2AA0786E003967A8 /* SudMGP.xcframework */,
);
path = SudMGPSDK;
sourceTree = "<group>";
};
236B2E202AA07D06003967A8 /* LittleGame */ = {
isa = PBXGroup;
children = (
@@ -9890,6 +9891,7 @@
8311720C3643AC2030B96510 /* [CP] Embed Pods Frameworks */,
4C25F8F9E2D1F501119C383D /* [CP] Copy Pods Resources */,
18E7B21326E8CD220064BC9B /* Embed Frameworks */,
232C43E62AB0754700D4B2ED /* CopyFiles */,
);
buildRules = (
);
@@ -10160,10 +10162,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-YuMi/Pods-YuMi-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-YuMi/Pods-YuMi-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-YuMi/Pods-YuMi-resources.sh\"\n";
@@ -11494,6 +11500,7 @@
"$(PROJECT_DIR)/YuMi/Main/RTC/Library",
"$(PROJECT_DIR)/YuMi/Modules/YMRTC/Library",
"$(PROJECT_DIR)/YuMi/Resources/Client",
"$(PROJECT_DIR)/YuMi/Library",
);
GCC_PREFIX_HEADER = YuMi/Structure/PrefixHeader.pch;
INFOPLIST_FILE = YuMi/Info.plist;
@@ -11527,6 +11534,7 @@
"$(PROJECT_DIR)/YuMi/Main/RTC/Library",
"$(PROJECT_DIR)/YuMi/Modules/YMRTC/Library",
"$(PROJECT_DIR)/YuMi/Resources/Client",
"$(PROJECT_DIR)/YuMi/Library",
);
GCC_PREFIX_HEADER = YuMi/Structure/PrefixHeader.pch;
INFOPLIST_FILE = YuMi/Info.plist;

View File

@@ -0,0 +1,27 @@
//
// Created by guanghui on 2022/7/5.
//
#import <Foundation/Foundation.h>
typedef NS_ENUM(NSUInteger, GameCheckoutStatus) {
/** 等待执行 */
GAME_CHECKOUT_WAITING,
/** 开始执行 */
GAME_CHECKOUT_STARTED,
/** 下载中 */
GAME_CHECKOUT_CHECKOUTING,
/** 已暂停 */
GAME_CHECKOUT_PAUSE,
/** 已完成 */
GAME_CHECKOUT_COMPLETED,
/** 已取消 */
GAME_CHECKOUT_CANCELED,
};

View File

@@ -0,0 +1,54 @@
//
// Created by guanghui on 2022/2/28.
//
#import <Foundation/Foundation.h>
@protocol ISudCfg <NSObject>
/// 获取加载游戏时,是否显示游戏背景图
/// @return true:显示 false:隐藏 默认:显示true
/// 最低版本v1.1.46.xx
-(BOOL) getShowLoadingGameBg;
/// 设置加载游戏时,是否显示游戏背景图
/// @param show true:显示 false:隐藏
/// 最低版本v1.1.46.xx
-(void) setShowLoadingGameBg:(BOOL) show;
/// 获取加载游戏时是否要显示自定义的Loading效果
/// @return true:显示 false:SDK默认Loading效果 默认:显示SDK默认Loading效果
/// 最低版本v1.1.52.xx
- (BOOL)getShowCustomLoading;
/// 设置加载游戏时是否要显示自定义的Loading效果
/// @param show true:自定义 false:SDK默认Loading效果
/// 最低版本v1.1.52.xx
- (void)setShowCustomLoading:(BOOL) show;
/// 添加游戏嵌入包路径
/// @param mgId 游戏id
/// @param mgPath 游戏路径app assets路径下
/// 最低版本v1.1.52.xx
- (void)addEmbeddedMGPkg:(int64_t) mgId mgPath:(NSString*) mgPath;
/// 移除游戏嵌入包
/// @param mgId
/// 最低版本v1.1.52.xx
- (void)removeEmbeddedMGPkg:(int64_t) mgId;
/// 获取游戏嵌入包路径
/// @param mgId 游戏ID
/// @return mgPath
/// 最低版本v1.1.52.xx
- (NSString *)getEmbeddedMGPkgPath:(int64_t) mgId;
/// 设置加载游戏时是否使用后台模式默认为true
/// @param mode true: 使用后台模式 false使用默认模式
/// 最低版本v1.2.7.xx
- (void) setBackgroundMode:(BOOL) mode;
/// 获取加载游戏时是否使用后台模式默认为true
/// @return true: 使用后台模式 false使用默认模式
/// 最低版本v1.2.7.xx
- (BOOL) getBackgroundMode;
@end

View File

@@ -10,7 +10,15 @@ NS_ASSUME_NONNULL_BEGIN
/// 最低版本v1.1.30.xx
-(void) onGameLog:(NSString*)dataJson;
/// 游戏开始
/// 游戏加载进度(loadMG)
/// @param stage start=1,loading=2,end=3
/// @param retCode 错误码0成功
/// @param progress [0, 100]
/// 最低版本v1.1.30.xx
-(void) onGameLoadingProgress:(int)stage retCode:(int)retCode progress:(int)progress;
/// 游戏开始(游戏长连接建立完成)
/// 最低版本v1.1.30.xx
-(void) onGameStarted;

View File

@@ -1,12 +1,10 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "ISudListenerNotifyStateChange.h"
#import "ISudListenerASR.h"
NS_ASSUME_NONNULL_BEGIN
@protocol ISudFSMMG;
@protocol ISudASR;
@protocol ISudFSTAPP <NSObject>
@@ -18,6 +16,9 @@ NS_ASSUME_NONNULL_BEGIN
/// @return boolean
- (bool)destroyMG;
/// 重新加载游戏
- (void)reloadMG;
/// 更新短期令牌code
/// @param code 短期令牌code
/// @param listener 回调只表示APP状态通知到了小游戏不表示小游戏执行了别的逻辑代码比如游戏业务逻辑网络请求一般传null。

View File

@@ -4,6 +4,6 @@ NS_ASSUME_NONNULL_BEGIN
@class GameInfo;
typedef void (^ISudListenerGetFQSInfo)(int retCode, const NSString* retMsg, NSString* sdkTokenUrl);
typedef void (^ISudListenerGetFQSInfo)(int retCode, const NSString* retMsg);
NS_ASSUME_NONNULL_END
NS_ASSUME_NONNULL_END

View File

@@ -4,6 +4,6 @@ NS_ASSUME_NONNULL_BEGIN
@class GameInfo;
typedef void (^ISudListenerGetMGInfo)(int retCode, const NSString* retMsg, GameInfo* gameInfo);
typedef void (^ISudListenerGetMGInfo)(int retCode, const NSString* retMsg, GameInfo* _Nullable gameInfo);
NS_ASSUME_NONNULL_END
NS_ASSUME_NONNULL_END

View File

@@ -2,6 +2,6 @@
NS_ASSUME_NONNULL_BEGIN
typedef void (^ISudListenerGetMGList)(int retCode, const NSString* retMsg, const NSString* dataJson);
typedef void (^ISudListenerGetMGList)(int retCode, const NSString* retMsg, const NSString* _Nullable dataJson);
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,17 @@
#import <Foundation/Foundation.h>
#import "GameCheckoutStatus.h"
NS_ASSUME_NONNULL_BEGIN
@protocol ISudListenerPrepareGame <NSObject>
-(void) onPrepareSuccess:(int64_t) mgId;
-(void) onPrepareFailure:(int64_t) mgId errCode:(int) errCode errMsg:(NSString *) errMsg;
-(void) onPrepareStatus:(int64_t) mgId checkoutedSize:(long) checkoutedSize totalSize:(long) totalSize status:(GameCheckoutStatus) status;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,7 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef void (^ISudListenerReportStatsEvent)(const NSString* event, int retCode, const NSString* stats);
NS_ASSUME_NONNULL_END

View File

@@ -5,37 +5,37 @@ NS_ASSUME_NONNULL_BEGIN
/**
* Priority constant for the println method; use Log.v.
*/
#define LogVERBOSE 2
#define SudLogVERBOSE 2
/**
* Priority constant for the println method; use Log.d.
*/
#define LogDEBUG 3
#define SudLogDEBUG 3
/**
* Priority constant for the println method; use Log.i.
*/
#define LogINFO 4
#define SudLogINFO 4
/**
* Priority constant for the println method; use Log.w.
*/
#define LogWARN 5
#define SudLogWARN 5
/**
* Priority constant for the println method; use Log.e.
*/
#define LogERROR 6
#define SudLogERROR 6
/**
* Priority constant for the println method.
*/
#define LogASSERT 7
#define SudLogASSERT 7
@protocol ISudLogger <NSObject>
- (void) setLogLevel:(int) level;
- (void) log:(int) level tag:(NSString*) tag msg:(NSString*) msg;
- (void) log:(int) level tag:(NSString*) tag msg:(NSString*) msg error:(NSError *) error;
- (void) log:(int) level tag:(NSString*) tag msg:(NSString*) msg detailLine:(NSString *)detailLine;
- (void) log:(int) level tag:(NSString*) tag msg:(NSString*) msg error:(NSError *) error detailLine:(NSString *)detailLine;
@end
NS_ASSUME_NONNULL_END
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,21 @@
//
// Created by guanghui on 2022/7/5.
//
#import <Foundation/Foundation.h>
@interface SudInitSDKParamModel : NSObject
/// appId Sud互动小游戏平台生成
@property (nonatomic, copy) NSString *appId;
/// appKey Sud互动小游戏平台生成
@property (nonatomic, copy) NSString *appKey;
/// isTestEnv true:测试环境 false:生产环境
@property (nonatomic, assign) BOOL isTestEnv;
- (instancetype)init;
- (BOOL)check;
@end

View File

@@ -0,0 +1,15 @@
//
// Created by guanghui on 2022/7/5.
//
#import <Foundation/Foundation.h>
typedef NS_ENUM(NSInteger, SudLoadMGMode)
{
/// unspecified
kSudLoadMGModeUnspecified = -1,
/// normal, 正常模式
kSudLoadMGModeNormal = 0,
/// AuthCrossApp跨域App
kSudLoadMgModeAppCrossAuth = 1,
};

View File

@@ -0,0 +1,36 @@
//
// Created by guanghui on 2022/7/5.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface SudLoadMGParamModel : NSObject
/// loadMG模式
@property (nonatomic, assign) int loadMGMode;
/// game view container
@property (nonatomic, strong) UIView *gameViewContainer;
/// 用户ID业务系统保证每个用户拥有唯一ID
@property (nonatomic, copy) NSString *userId;
/// 房间ID业务系统保证唯一性进入同一房间内
@property (nonatomic, copy) NSString *roomId;
/// code 短期令牌Code
@property (nonatomic, copy) NSString *code;
/// 小游戏ID测试环境和生产环境小游戏ID是一致的
@property (nonatomic, assign) long mgId;
/// language 游戏语言 现支持简体zh-CN 繁体zh-TW 英语en-US 马来语ms-MY 等
@property (nonatomic, copy) NSString *language;
/// 当loadMgMode为kLoadMgModeCrossApp时该字段有效
@property (nonatomic, copy) NSString *authorizationSecret;
- (instancetype)init;
- (BOOL) check;
@end

View File

@@ -12,23 +12,23 @@
#import "ISudListenerGetFQSInfo.h"
#import "ISudListenerGetMGInfo.h"
#import "GameCheckoutStatus.h"
#import "ISudAPPD.h"
#import "ISudASR.h"
#import "ISudCfg.h"
#import "ISudFSMMG.h"
#import "ISudFSMStateHandle.h"
#import "ISudFSTAPP.h"
#import "ISudListenerASR.h"
#import "ISudListenerGetMGList.h"
#import "ISudListenerInitSDK.h"
#import "ISudListenerNotifyStateChange.h"
#import "ISudListenerPrepareGame.h"
#import "ISudListenerReportStatsEvent.h"
#import "ISudListenerUninitSDK.h"
#import "ISudLogger.h"
#import "SudInitSDKParamModel.h"
#import "SudLoadMGMode.h"
#import "SudLoadMGParamModel.h"
#import "SudMGP.h"
#import "IRTSS.h"
#import "IRTSSEventHandler.h"
#import "RTSSResult.h"
#import "SmRtAsr.h"
#import "SmRtAsrClient.h"
FOUNDATION_EXPORT double SudMGPVersionNumber;
FOUNDATION_EXPORT const unsigned char SudMGPVersionString[];

View File

@@ -3,11 +3,16 @@
#import "ISudListenerInitSDK.h"
#import "ISudListenerGetMGList.h"
#import "ISudListenerUninitSDK.h"
#import "ISudListenerReportStatsEvent.h"
NS_ASSUME_NONNULL_BEGIN
@protocol ISudFSTAPP;
@protocol ISudFSMMG;
@protocol ISudCfg;
@protocol ISudListenerPrepareGame;
@class SudInitSDKParamModel;
@class SudLoadMGParamModel;
@interface SudMGP : NSObject
@@ -17,9 +22,16 @@ NS_ASSUME_NONNULL_BEGIN
*/
+ (NSString*_Nonnull)getVersion;
/**
* SDK版本别名
* @return :"v1.1.35.286-et"
*/
+ (NSString*_Nonnull)getVersionAlias;
+ (id<ISudCfg>_Nonnull)getCfg;
/**
* SDK
* @param context Context
* @param appId
* @param appKey
* @param isTestEnv true: false:
@@ -29,6 +41,14 @@ NS_ASSUME_NONNULL_BEGIN
appKey:(NSString*_Nonnull)appKey
isTestEnv:(BOOL)isTestEnv
listener:(ISudListenerInitSDK _Nullable )listener;
/**
* SDK
* @param model SudInitSDKParamModel
* @param listener ISudListenerInitSDK
* v1.1.54.xx
*/
+ (void)initSDK:(SudInitSDKParamModel*)model
listener:(ISudListenerInitSDK _Nullable )listener;
/**
* SDK
@@ -50,7 +70,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param mgId IDID是一致的
* @param language zh-CN zh-TW en-US ms-MY
* @param fsmMG ISudFSMMG
* @param rootView
* @param rootView gameViewContainer
* @return ISudFSTAPP
*/
+ (id<ISudFSTAPP>_Nonnull)loadMG:(NSString*_Nonnull)userId
@@ -61,16 +81,51 @@ NS_ASSUME_NONNULL_BEGIN
fsmMG:(id<ISudFSMMG>_Nonnull)fsmMG
rootView:(UIView*_Nonnull)rootView;
/**
*
* @param model SudLoadMGParamModel
* @param fsmMG ISudFSMMG
* @return ISudFSTAPP
* v1.1.54.xx
*/
+ (id<ISudFSTAPP>_Nonnull)loadMG:(SudLoadMGParamModel*_Nonnull)model
fsmMG:(id<ISudFSMMG>_Nonnull)fsmMG;
/**
*
* @param fstApp ISudFSTAPP
* @param fstAPP ISudFSTAPP
* @return boolean
*/
+ (bool)destroyMG:(id<ISudFSTAPP>_Nonnull) fstAPP;
/**
*
* @param mgIdList ID列表
*/
+ (void) prepareGameList:(NSArray<NSNumber *> *) mgIdList listener:(id<ISudListenerPrepareGame>) listener;
/**
*
* @param mgIdList ID列表
*/
+ (void) cancelPrepareGameList:(NSArray<NSNumber *> *) mgIdList;
/**
* userId
* @param userId ID
*/
+ (void)setUserId:(NSString*)userId;
/**
*
* @param listener
* @return
*/
+ (bool)setReportStatsEventListener:(ISudListenerReportStatsEvent)listener;
/**
*
* @param logLevel log的等级,LogVERBOSE,LogDEBUG,LogINFO ISudLogger.h
* @param logLevel log的等级,SudLogVERBOSE,SudLogDEBUG,SudLogINFO ISudLogger.h
*/
+ (void)setLogLevel:(int)logLevel;

Binary file not shown.

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AvailableLibraries</key>
<array>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64_armv7</string>
<key>LibraryPath</key>
<string>SudMGP.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>armv7</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>ios-x86_64-simulator</string>
<key>LibraryPath</key>
<string>SudMGP.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>

View File

@@ -1,52 +0,0 @@
//
// Created by Herbert on 2021/10/21.
//
#import <Foundation/Foundation.h>
@protocol IRTSSEventHandler;
@interface IRTSSStartOption : NSObject
@property (nonatomic, copy) NSString * keyword;
@property (nonatomic, copy) NSArray * keywordList;
@property (nonatomic, copy) NSString * wordLanguage;
@property (nonatomic, copy) NSString * wordType;
@property (nonatomic, assign) BOOL isCloseConnHitted;
@property (nonatomic, assign) BOOL enableIsHit;
@property (nonatomic, assign) BOOL enableIsReturnText;
@property (nonatomic, copy) NSDictionary * extra;
@end
/*
* 接口要确保在UI线程中调用
*/
@protocol IRTSS <NSObject>
/// 初始化SDK
/// @param organization <#organization description#>
/// @param accessKey <#accessKey description#>
/// @param appId <#appId description#>
/// @param wsURL <#wsURL description#>
/// @param httpUrl <#httpUrl description#>
- (BOOL)init:(NSString *)organization accessKey:(NSString *)accessKey appId:(NSString *)appId wsURL:(NSString*)wsURL httpUrl:(NSString*)httpUrl language:(NSString *)language;
- (BOOL)start:(IRTSSStartOption *)option listener:(id<IRTSSEventHandler>)listener;
/// 传入的音频数据必须是PCM格式采样率16000 采样位数16 声道数: MONO
/// @param data PCM数据
- (void)push:(NSData *)data;
/// 断开连接如果想继续工作必须重新调用start()新建连接
- (void)stop;
/// 销毁SDK
- (void)destroy;
@end

View File

@@ -1,15 +0,0 @@
//
// Created by Herbert on 2021/10/21.
//
#import <Foundation/Foundation.h>
#import "RTSSResult.h"
@protocol IRTSSEventHandler <NSObject>
-(void)onRtssSuccess:(RTSSResult *)result repeated:(BOOL) repeated;
-(void)onRtssError:(NSInteger)errCode errMsg:(NSString *)errMsg;
@end

View File

@@ -1,15 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@protocol ISudASR <NSObject>
/**
* 传入的音频数据必须是PCM格式采样率16000 采样位数16 声道数: MONO
* data一定都要是有效数据否则精确性有影响
*/
- (void) pushAudio:(NSData *)data;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,55 +0,0 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "ISudListenerNotifyStateChange.h"
#import "ISudListenerASR.h"
NS_ASSUME_NONNULL_BEGIN
@protocol ISudFSMMG;
@protocol ISudASR;
@protocol ISudFSTAPP <NSObject>
/// 获取游戏View
/// @return UIView
- (UIView *)getGameView;
/// 销毁游戏
/// @return boolean
- (bool)destroyMG;
/// 更新短期令牌code
/// @param code 短期令牌code
/// @param listener 回调只表示APP状态通知到了小游戏不表示小游戏执行了别的逻辑代码比如游戏业务逻辑网络请求一般传null。
- (void)updateCode:(NSString *) code listener:(ISudListenerNotifyStateChange) listener;
/// 获取游戏状态
/// @param state state
/// @return json
- (NSString*)getGameState:(NSString*) state;
/// 获取玩家状态
/// @param userId userId
/// @param state state
/// @return json
- (NSString*)getPlayerState:(NSString*) userId state:(NSString*) state;
/// APP状态通知给小游戏
/// @param state state
/// @param dataJson example: {"key": "value"}
/// @param listener 回调只表示APP状态通知到了小游戏不表示小游戏执行了别的逻辑代码比如游戏业务逻辑网络请求一般传null。
- (void)notifyStateChange:(const NSString *)state dataJson:(NSString *)dataJson listener:(ISudListenerNotifyStateChange) listener;
/// 继续游戏
- (void) playMG;
/// 暂停游戏
- (void) pauseMG;
/// 传入的音频数据必须是PCM格式采样率16000 采样位数16 声道数: MONO
/// @param data pcm数据
- (void)pushAudio:(NSData *)data;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,6 +0,0 @@
NS_ASSUME_NONNULL_BEGIN
typedef void (^ISudListenerASRResult)(NSString * asrResult, NSArray * asrResults);
NS_ASSUME_NONNULL_END

View File

@@ -1,9 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class GameInfo;
typedef void (^ISudListenerGetFQSInfo)(int retCode, const NSString* retMsg, NSString* sdkTokenUrl);
NS_ASSUME_NONNULL_END

View File

@@ -1,9 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class GameInfo;
typedef void (^ISudListenerGetMGInfo)(int retCode, const NSString* retMsg, GameInfo* gameInfo);
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef void (^ISudListenerGetMGList)(int retCode, const NSString* retMsg, const NSString* dataJson);
NS_ASSUME_NONNULL_END

View File

@@ -1,41 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
/**
* Priority constant for the println method; use Log.v.
*/
#define LogVERBOSE 2
/**
* Priority constant for the println method; use Log.d.
*/
#define LogDEBUG 3
/**
* Priority constant for the println method; use Log.i.
*/
#define LogINFO 4
/**
* Priority constant for the println method; use Log.w.
*/
#define LogWARN 5
/**
* Priority constant for the println method; use Log.e.
*/
#define LogERROR 6
/**
* Priority constant for the println method.
*/
#define LogASSERT 7
@protocol ISudLogger <NSObject>
- (void) setLogLevel:(int) level;
- (void) log:(int) level tag:(NSString*) tag msg:(NSString*) msg;
- (void) log:(int) level tag:(NSString*) tag msg:(NSString*) msg error:(NSError *) error;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,22 +0,0 @@
//
// Created by Herbert on 2021/10/21.
//
#import <Foundation/Foundation.h>
@interface RTSSResult : NSObject
@property (nonatomic, assign) BOOL isHit;
@property (nonatomic, copy) NSString * keyword;
@property (nonatomic, copy) NSString * text;
@property (nonatomic, copy) NSString * wordType;
@property (nonatomic, copy) NSArray * keyWordList;
@property (nonatomic, copy) NSArray * numberList;
@end

View File

@@ -1,19 +0,0 @@
//
// SmRtAsr.h
// SmRtAsr
//
// Created by wangyankun on 2021/10/27.
//
#import <Foundation/Foundation.h>
////! Project version number for SmRtAsr.
//FOUNDATION_EXPORT double SmRtAsrVersionNumber;
//
////! Project version string for SmRtAsr.
//FOUNDATION_EXPORT const unsigned char SmRtAsrVersionString[];
//
//// In this header, you should import all the public headers of your framework using statements like #import <SmRtAsr/PublicHeader.h>
//
#import "SmRtAsrClient.h"

View File

@@ -1,126 +0,0 @@
//
// SmRtAsrClient.h
// SmRtAsr
//
// Created by wangyankun on 2021/10/28.
//
#import <Foundation/Foundation.h>
/**
uninit idle sending
create 去到idle 不允许,回调错误 不允许,回调错误
startSession 不允许 去到sending 去到sending
postAudio 不允许 去到idle sending
stopSession 不允许 去到idle 去到idle
destroy unint unint unint
*/
//SmRtAsrClient的配置文件
@interface SmRtAsrOption : NSObject
@property NSString *organization;
@property NSString *appId;
@property NSString *accessKey;
@property NSString *wsUrl;
@property NSString *httpSessionUrl;
@end
//定义response
@interface SmAsrResponse : NSObject
@property int code;
@property NSString * requestId;
@property NSString * tokenId;
@property NSString * sessionId;
@property int segId;
@property NSInteger type;
@property long startTime;
@property long endTime;
@property NSString * text;
@property NSString * eventId;
@property long wsTime;
@property long weTime;
@property long sessionStartTime;
@property long sessionEndTime;
@property long segStartTime;
@property long segEndTime;
@property NSArray<NSDictionary*> *matchedResults;
@property int requestSegId;
@property int responseSegId;
@property NSDictionary* raw;
//[
//{"hitItemContent":"","positions":[[2,9],[10,13]]},
//{"hitItemContent":"","positions":[[2,9],[10,13]]}
//]
@property NSArray<NSDictionary*> *numbers;
@property NSString *message;
@property NSDictionary *detail;//{"errorCode":1}
-(BOOL)isHit;
@end
//定义delegate
@protocol SmRtDelegate <NSObject>
@required -(void) onRtReceived:(NSString*) sessionId
requestId:(NSString*)requestId
response:(SmAsrResponse *)response;
@required -(void) onRtError:(NSString*) sessionId
requestId:(NSString*)requestId
errorCode:(NSInteger)errorCode
message:(NSString*)message;
@end
//定义session的config配置
@interface SmRtSessionConfig : NSObject
@property NSArray<NSString*> *keyWords;
@property BOOL returnAll;
@property NSString *voiceType;
@property NSString *voiceEncode;
@property NSString *tokenId;
@property NSString *eventId;
@property int voiceSample;
@property BOOL enableMatch;
@property BOOL returnText;
@property NSString *language;
@property NSString *matchMode;
@property BOOL returnNumbers;
@property NSDictionary *extra;
@property NSString* authToken;
@property __weak id delegate;
-(NSDictionary*) toJson;
@end
@interface SmRtAsrClient : NSObject
- (instancetype)init NS_UNAVAILABLE;
+(instancetype)shareInstance;
-(instancetype)initWithOption:(SmRtAsrOption *)option;
-(void) startSession:(SmRtSessionConfig*) config;
-(BOOL) postAudio:(NSData *)audioClip;
-(void) stopSession;
-(void) destroy;
-(NSString*) getSDKVersion;
-(SmRtAsrOption *) getAsrOption;
@end

View File

@@ -1,52 +0,0 @@
//
// Created by Herbert on 2021/10/21.
//
#import <Foundation/Foundation.h>
@protocol IRTSSEventHandler;
@interface IRTSSStartOption : NSObject
@property (nonatomic, copy) NSString * keyword;
@property (nonatomic, copy) NSArray * keywordList;
@property (nonatomic, copy) NSString * wordLanguage;
@property (nonatomic, copy) NSString * wordType;
@property (nonatomic, assign) BOOL isCloseConnHitted;
@property (nonatomic, assign) BOOL enableIsHit;
@property (nonatomic, assign) BOOL enableIsReturnText;
@property (nonatomic, copy) NSDictionary * extra;
@end
/*
* 接口要确保在UI线程中调用
*/
@protocol IRTSS <NSObject>
/// 初始化SDK
/// @param organization <#organization description#>
/// @param accessKey <#accessKey description#>
/// @param appId <#appId description#>
/// @param wsURL <#wsURL description#>
/// @param httpUrl <#httpUrl description#>
- (BOOL)init:(NSString *)organization accessKey:(NSString *)accessKey appId:(NSString *)appId wsURL:(NSString*)wsURL httpUrl:(NSString*)httpUrl language:(NSString *)language;
- (BOOL)start:(IRTSSStartOption *)option listener:(id<IRTSSEventHandler>)listener;
/// 传入的音频数据必须是PCM格式采样率16000 采样位数16 声道数: MONO
/// @param data PCM数据
- (void)push:(NSData *)data;
/// 断开连接如果想继续工作必须重新调用start()新建连接
- (void)stop;
/// 销毁SDK
- (void)destroy;
@end

View File

@@ -1,15 +0,0 @@
//
// Created by Herbert on 2021/10/21.
//
#import <Foundation/Foundation.h>
#import "RTSSResult.h"
@protocol IRTSSEventHandler <NSObject>
-(void)onRtssSuccess:(RTSSResult *)result repeated:(BOOL) repeated;
-(void)onRtssError:(NSInteger)errCode errMsg:(NSString *)errMsg;
@end

View File

@@ -1,10 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface ISudAPPD : NSObject
+ (void)e:(int)v;
+ (void)d;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,15 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@protocol ISudASR <NSObject>
/**
* 传入的音频数据必须是PCM格式采样率16000 采样位数16 声道数: MONO
* data一定都要是有效数据否则精确性有影响
*/
- (void) pushAudio:(NSData *)data;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,55 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@protocol ISudFSMStateHandle;
@protocol ISudFSMMG <NSObject>
/// 游戏日志
/// 最低版本v1.1.30.xx
-(void) onGameLog:(NSString*)dataJson;
/// 游戏开始
/// 最低版本v1.1.30.xx
-(void) onGameStarted;
/// 游戏销毁
/// 最低版本v1.1.30.xx
-(void) onGameDestroyed;
/// 短期令牌code过期
/// APP接入方需要调用handle.success或handle.fail
/// @param dataJson {"code":"value"}
-(void) onExpireCode:(id<ISudFSMStateHandle>)handle dataJson:(NSString*)dataJson;
/// 获取游戏View信息
/// APP接入方需要调用handle.success或handle.fail
/// @param handle ISudFSMStateHandle
/// @param dataJson {}
-(void) onGetGameViewInfo:(id<ISudFSMStateHandle>) handle dataJson:(NSString*)dataJson;
/// 获取游戏Config
/// APP接入方需要调用handle.success或handle.fail
/// @param handle ISudFSMStateHandle
/// @param dataJson dataJson
/// 最低版本v1.1.30.xx
-(void) onGetGameCfg:(id<ISudFSMStateHandle>) handle dataJson:(NSString*)dataJson;
/// 游戏状态变化
/// APP接入方需要调用handle.success或handle.fail
/// @param handle ISudFSMStateHandle
/// @param state state
/// @param dataJson dataJson
-(void) onGameStateChange:(id<ISudFSMStateHandle>) handle state:(NSString*) state dataJson:(NSString*) dataJson;
/// 游戏玩家状态变化
/// APP接入方需要调用handle.success或handle.fail
/// @param handle ISudFSMStateHandle
/// @param userId userId
/// @param state state
/// @param dataJson dataJson
-(void) onPlayerStateChange:(nullable id<ISudFSMStateHandle>) handle userId:(NSString*) userId state:(NSString*) state dataJson:(NSString*) dataJson;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,11 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
/// APP接入方需要调用handle.success或handle.fail
@protocol ISudFSMStateHandle <NSObject>
-(void) success:(NSString*) dataJson;
-(void) failure:(NSString*) dataJson;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,6 +0,0 @@
NS_ASSUME_NONNULL_BEGIN
typedef void (^ISudListenerASRResult)(NSString * asrResult, NSArray * asrResults);
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef void (^ISudListenerInitSDK)(int retCode, const NSString* retMsg);
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef void (^ISudListenerNotifyStateChange)(int retCode, const NSString* retMsg, const NSString* dataJson);
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef void (^ISudListenerUninitSDK)(int retCode, const NSString* retMsg);
NS_ASSUME_NONNULL_END

View File

@@ -1,22 +0,0 @@
//
// Created by Herbert on 2021/10/21.
//
#import <Foundation/Foundation.h>
@interface RTSSResult : NSObject
@property (nonatomic, assign) BOOL isHit;
@property (nonatomic, copy) NSString * keyword;
@property (nonatomic, copy) NSString * text;
@property (nonatomic, copy) NSString * wordType;
@property (nonatomic, copy) NSArray * keyWordList;
@property (nonatomic, copy) NSArray * numberList;
@end

View File

@@ -1,19 +0,0 @@
//
// SmRtAsr.h
// SmRtAsr
//
// Created by wangyankun on 2021/10/27.
//
#import <Foundation/Foundation.h>
////! Project version number for SmRtAsr.
//FOUNDATION_EXPORT double SmRtAsrVersionNumber;
//
////! Project version string for SmRtAsr.
//FOUNDATION_EXPORT const unsigned char SmRtAsrVersionString[];
//
//// In this header, you should import all the public headers of your framework using statements like #import <SmRtAsr/PublicHeader.h>
//
#import "SmRtAsrClient.h"

View File

@@ -1,126 +0,0 @@
//
// SmRtAsrClient.h
// SmRtAsr
//
// Created by wangyankun on 2021/10/28.
//
#import <Foundation/Foundation.h>
/**
uninit idle sending
create 去到idle 不允许,回调错误 不允许,回调错误
startSession 不允许 去到sending 去到sending
postAudio 不允许 去到idle sending
stopSession 不允许 去到idle 去到idle
destroy unint unint unint
*/
//SmRtAsrClient的配置文件
@interface SmRtAsrOption : NSObject
@property NSString *organization;
@property NSString *appId;
@property NSString *accessKey;
@property NSString *wsUrl;
@property NSString *httpSessionUrl;
@end
//定义response
@interface SmAsrResponse : NSObject
@property int code;
@property NSString * requestId;
@property NSString * tokenId;
@property NSString * sessionId;
@property int segId;
@property NSInteger type;
@property long startTime;
@property long endTime;
@property NSString * text;
@property NSString * eventId;
@property long wsTime;
@property long weTime;
@property long sessionStartTime;
@property long sessionEndTime;
@property long segStartTime;
@property long segEndTime;
@property NSArray<NSDictionary*> *matchedResults;
@property int requestSegId;
@property int responseSegId;
@property NSDictionary* raw;
//[
//{"hitItemContent":"","positions":[[2,9],[10,13]]},
//{"hitItemContent":"","positions":[[2,9],[10,13]]}
//]
@property NSArray<NSDictionary*> *numbers;
@property NSString *message;
@property NSDictionary *detail;//{"errorCode":1}
-(BOOL)isHit;
@end
//定义delegate
@protocol SmRtDelegate <NSObject>
@required -(void) onRtReceived:(NSString*) sessionId
requestId:(NSString*)requestId
response:(SmAsrResponse *)response;
@required -(void) onRtError:(NSString*) sessionId
requestId:(NSString*)requestId
errorCode:(NSInteger)errorCode
message:(NSString*)message;
@end
//定义session的config配置
@interface SmRtSessionConfig : NSObject
@property NSArray<NSString*> *keyWords;
@property BOOL returnAll;
@property NSString *voiceType;
@property NSString *voiceEncode;
@property NSString *tokenId;
@property NSString *eventId;
@property int voiceSample;
@property BOOL enableMatch;
@property BOOL returnText;
@property NSString *language;
@property NSString *matchMode;
@property BOOL returnNumbers;
@property NSDictionary *extra;
@property NSString* authToken;
@property __weak id delegate;
-(NSDictionary*) toJson;
@end
@interface SmRtAsrClient : NSObject
- (instancetype)init NS_UNAVAILABLE;
+(instancetype)shareInstance;
-(instancetype)initWithOption:(SmRtAsrOption *)option;
-(void) startSession:(SmRtSessionConfig*) config;
-(BOOL) postAudio:(NSData *)audioClip;
-(void) stopSession;
-(void) destroy;
-(NSString*) getSDKVersion;
-(SmRtAsrOption *) getAsrOption;
@end

View File

@@ -1,35 +0,0 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
#import "ISudListenerGetFQSInfo.h"
#import "ISudListenerGetMGInfo.h"
#import "ISudAPPD.h"
#import "ISudASR.h"
#import "ISudFSMMG.h"
#import "ISudFSMStateHandle.h"
#import "ISudFSTAPP.h"
#import "ISudListenerASR.h"
#import "ISudListenerGetMGList.h"
#import "ISudListenerInitSDK.h"
#import "ISudListenerNotifyStateChange.h"
#import "ISudListenerUninitSDK.h"
#import "ISudLogger.h"
#import "SudMGP.h"
#import "IRTSS.h"
#import "IRTSSEventHandler.h"
#import "RTSSResult.h"
#import "SmRtAsr.h"
#import "SmRtAsrClient.h"
FOUNDATION_EXPORT double SudMGPVersionNumber;
FOUNDATION_EXPORT const unsigned char SudMGPVersionString[];

View File

@@ -1,84 +0,0 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "ISudListenerInitSDK.h"
#import "ISudListenerGetMGList.h"
#import "ISudListenerUninitSDK.h"
NS_ASSUME_NONNULL_BEGIN
@protocol ISudFSTAPP;
@protocol ISudFSMMG;
@interface SudMGP : NSObject
/**
* 获取SDK版本
* @return 示例:"1.1.35.286"
*/
+ (NSString*_Nonnull)getVersion;
/**
* 初始化SDK
* @param context Context
* @param appId 小游戏平台生成
* @param appKey 小游戏平台生成
* @param isTestEnv true:测试环境 false:生产环境
* @param listener ISudListenerInitSDK
*/
+ (void)initSDK:(NSString*_Nonnull)appId
appKey:(NSString*_Nonnull)appKey
isTestEnv:(BOOL)isTestEnv
listener:(ISudListenerInitSDK _Nullable )listener;
/**
* 反初始化SDK
* @param listener ISudListenerUninitSDK
*/
+ (void)uninitSDK:(ISudListenerUninitSDK _Nullable )listener;
/**
* 获取游戏列表
* @param listener ISudListenerGetMGList
*/
+ (void)getMGList:(ISudListenerGetMGList _Nullable )listener;
/**
* 加载游戏
* @param userId 用户ID业务系统保证每个用户拥有唯一ID
* @param roomId 房间ID业务系统保证唯一性进入同一房间内
* @param code 短期令牌Code
* @param mgId 小游戏ID测试环境和生成环境小游戏ID是一致的
* @param language 游戏语言 现支持简体zh-CN 繁体zh-TW 英语en-US 马来语ms-MY
* @param fsmMG ISudFSMMG
* @param rootView 用于显示游戏的根视图
* @return ISudFSTAPP
*/
+ (id<ISudFSTAPP>_Nonnull)loadMG:(NSString*_Nonnull)userId
roomId:(NSString*_Nonnull)roomId
code:(NSString*_Nonnull)code
mgId:(int64_t)mgId
language:(NSString*_Nonnull)language
fsmMG:(id<ISudFSMMG>_Nonnull)fsmMG
rootView:(UIView*_Nonnull)rootView;
/**
* 销毁游戏
* @param fstApp 加载游戏返回的对象ISudFSTAPP
* @return boolean
*/
+ (bool)destroyMG:(id<ISudFSTAPP>_Nonnull) fstAPP;
/**
* 设置日志等级
* @param logLevel 输出log的等级,LogVERBOSE,LogDEBUG,LogINFO 见ISudLogger.h
*/
+ (void)setLogLevel:(int)logLevel;
/// 设置是否由SDK设置AudioSession
/// @param autoSet 是否由SDK自动设置
+ (void)autoSetAudioSession:(BOOL)autoSet;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,6 +0,0 @@
framework module SudMGP {
umbrella header "SudMGP-umbrella.h"
export *
module * { export * }
}

View File

@@ -1,582 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>EgretNativeJSConsoleRes.bundle/Info.plist</key>
<data>
H4tosXOt5Jgj94JFJ+bQ7DZibxA=
</data>
<key>EgretNativeJSConsoleRes.bundle/_CodeSignature/CodeDirectory</key>
<data>
U4cubFPfT2n+QApbXIm2fGW1B4E=
</data>
<key>EgretNativeJSConsoleRes.bundle/_CodeSignature/CodeRequirements</key>
<data>
OnX22wWFKRSOFN1+obRynMCeyXM=
</data>
<key>EgretNativeJSConsoleRes.bundle/_CodeSignature/CodeRequirements-1</key>
<data>
muj1o6L+njvxx86d5ZSUAnpTP84=
</data>
<key>EgretNativeJSConsoleRes.bundle/_CodeSignature/CodeResources</key>
<data>
/H+GCq1u2MTuKeO3UnDWOp72vHI=
</data>
<key>EgretNativeJSConsoleRes.bundle/_CodeSignature/CodeSignature</key>
<data>
2jmj7l5rSw0yVb/vlWAYkK/YBwk=
</data>
<key>EgretNativeJSConsoleRes.bundle/index.html</key>
<data>
K/tLkR3L9CMKspWcGjDkJx9cc/Y=
</data>
<key>Headers/IRTSS.h</key>
<data>
f8hSf6ZxCFGUre1kLu6mbYVADi0=
</data>
<key>Headers/IRTSSEventHandler.h</key>
<data>
U1L6bqMpj9HnlnslXq2FOg7WCiQ=
</data>
<key>Headers/ISudAPPD.h</key>
<data>
05P2/6AiTFKVAetmtU1REHdE/W0=
</data>
<key>Headers/ISudASR.h</key>
<data>
z/fF/gwkFzbH6ef/Q1mk8qcyNas=
</data>
<key>Headers/ISudFSMMG.h</key>
<data>
r1CyFyzrDUpN0ti2gOy2g14t1CU=
</data>
<key>Headers/ISudFSMStateHandle.h</key>
<data>
FJ3VAY39qQGfsA5RzchJsPYbjvI=
</data>
<key>Headers/ISudFSTAPP.h</key>
<data>
aItvrTmWvreLyI4LUg68DlFUGfw=
</data>
<key>Headers/ISudListenerASR.h</key>
<data>
e1c1vcvpzWtzpR0M8LXL7DAPJ+M=
</data>
<key>Headers/ISudListenerGetFQSInfo.h</key>
<data>
Z7i09z+EjOM7yuUAv56AhHTf+aM=
</data>
<key>Headers/ISudListenerGetMGInfo.h</key>
<data>
xLG4pxPnoyh3NGW1ERjDuXfSioM=
</data>
<key>Headers/ISudListenerGetMGList.h</key>
<data>
A0jH/DMV6f0s6FRS2BrasrFQzSA=
</data>
<key>Headers/ISudListenerInitSDK.h</key>
<data>
99sNc7pHhNMhxhE/ugBuz/xFC+4=
</data>
<key>Headers/ISudListenerNotifyStateChange.h</key>
<data>
iZ8b1pdDNuD7nHEQYBLp65/hkV4=
</data>
<key>Headers/ISudListenerUninitSDK.h</key>
<data>
ClT1ZLLUSYZr2uY6o7Itdtw1i/Y=
</data>
<key>Headers/ISudLogger.h</key>
<data>
jTVkYtMibuUnks31dwc+LW0ScQE=
</data>
<key>Headers/RTSSResult.h</key>
<data>
80kyv8aQpoAipg6Ia8MkA8kinNQ=
</data>
<key>Headers/SmRtAsr.h</key>
<data>
wvXLscKLU/iJogrD+w0w3hzlhaI=
</data>
<key>Headers/SmRtAsrClient.h</key>
<data>
hshBcpfi1tW5ptVbt6Ox0YI/Wog=
</data>
<key>Headers/SudMGP-umbrella.h</key>
<data>
CiDY/99QZbrSottMgxuMLMyad9M=
</data>
<key>Headers/SudMGP.h</key>
<data>
jnWohTHm9H1gS2UqqpuB7FST1Vc=
</data>
<key>Info.plist</key>
<data>
aBVqUCKzbhq6WmVyMO6W7Pew/nc=
</data>
<key>Modules/module.modulemap</key>
<data>
SqkCCW826QrTr8CHz/pkF0Gg7Uk=
</data>
<key>fsm_mgp_game_loading_progress.png</key>
<data>
dtpNcJpsR3zafFe134BfDkM+F/8=
</data>
<key>fsm_mgp_game_loading_progress_bg.png</key>
<data>
G5Xy+4h7dGMY6FJB5kqFR+sdgmo=
</data>
<key>plugin.zip</key>
<data>
DT5CFEb70VfK0g/AcgYOm5zx5pU=
</data>
<key>sud.png</key>
<data>
vQlHDEdu0+Q1In7/lmqL55xESZU=
</data>
</dict>
<key>files2</key>
<dict>
<key>EgretNativeJSConsoleRes.bundle/Info.plist</key>
<dict>
<key>hash</key>
<data>
H4tosXOt5Jgj94JFJ+bQ7DZibxA=
</data>
<key>hash2</key>
<data>
VrgR5Aq6QlBTDjXaZYYuLo3XXjmQxHt7n+PhvO5wJlc=
</data>
</dict>
<key>EgretNativeJSConsoleRes.bundle/_CodeSignature/CodeDirectory</key>
<dict>
<key>hash</key>
<data>
U4cubFPfT2n+QApbXIm2fGW1B4E=
</data>
<key>hash2</key>
<data>
wyRBJ57jjdWBHfyHsD3FjEx+hRbs5MA9T0rtCkAdbjw=
</data>
</dict>
<key>EgretNativeJSConsoleRes.bundle/_CodeSignature/CodeRequirements</key>
<dict>
<key>hash</key>
<data>
OnX22wWFKRSOFN1+obRynMCeyXM=
</data>
<key>hash2</key>
<data>
mHkgkE6rZQ51eIwFSqCwUk5qgL/HGqMt+NI3phdD+YY=
</data>
</dict>
<key>EgretNativeJSConsoleRes.bundle/_CodeSignature/CodeRequirements-1</key>
<dict>
<key>hash</key>
<data>
muj1o6L+njvxx86d5ZSUAnpTP84=
</data>
<key>hash2</key>
<data>
p4ZGdcZRsD5sItRbkkNihcG9edsDi6w7duzPJwUJ6m0=
</data>
</dict>
<key>EgretNativeJSConsoleRes.bundle/_CodeSignature/CodeResources</key>
<dict>
<key>hash</key>
<data>
/H+GCq1u2MTuKeO3UnDWOp72vHI=
</data>
<key>hash2</key>
<data>
Xz9YqA4rNI0tJMd5iF39XvmYDFNr/Hiq9RiILIbB/AY=
</data>
</dict>
<key>EgretNativeJSConsoleRes.bundle/_CodeSignature/CodeSignature</key>
<dict>
<key>hash</key>
<data>
2jmj7l5rSw0yVb/vlWAYkK/YBwk=
</data>
<key>hash2</key>
<data>
47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
</data>
</dict>
<key>EgretNativeJSConsoleRes.bundle/index.html</key>
<dict>
<key>hash</key>
<data>
K/tLkR3L9CMKspWcGjDkJx9cc/Y=
</data>
<key>hash2</key>
<data>
gC2TRtg8NJ8h6hVrPmNen2ffzD1Q2jUcUnOpVwi3ue8=
</data>
</dict>
<key>Headers/IRTSS.h</key>
<dict>
<key>hash</key>
<data>
f8hSf6ZxCFGUre1kLu6mbYVADi0=
</data>
<key>hash2</key>
<data>
9IadkR3YfDRV5+/J6zBMbk1mY321NOBoZkoUl73Hg6s=
</data>
</dict>
<key>Headers/IRTSSEventHandler.h</key>
<dict>
<key>hash</key>
<data>
U1L6bqMpj9HnlnslXq2FOg7WCiQ=
</data>
<key>hash2</key>
<data>
0QmC550UmI5oVhvqRAutWrtwRPOF3v2wVvMMcwQm4EE=
</data>
</dict>
<key>Headers/ISudAPPD.h</key>
<dict>
<key>hash</key>
<data>
05P2/6AiTFKVAetmtU1REHdE/W0=
</data>
<key>hash2</key>
<data>
iLOzMPy0oThM1XmDMM6C7c4UWFPM6QlHQZ51R9VFD+Y=
</data>
</dict>
<key>Headers/ISudASR.h</key>
<dict>
<key>hash</key>
<data>
z/fF/gwkFzbH6ef/Q1mk8qcyNas=
</data>
<key>hash2</key>
<data>
qFUhmka9/RnhpNwRpSnwObjSu65Tuhd6QLcQE7wxQU4=
</data>
</dict>
<key>Headers/ISudFSMMG.h</key>
<dict>
<key>hash</key>
<data>
r1CyFyzrDUpN0ti2gOy2g14t1CU=
</data>
<key>hash2</key>
<data>
B9ptVM7f8cBx/ZSr6oHGwR+vMmnJiY1UlCi3lpl3BmU=
</data>
</dict>
<key>Headers/ISudFSMStateHandle.h</key>
<dict>
<key>hash</key>
<data>
FJ3VAY39qQGfsA5RzchJsPYbjvI=
</data>
<key>hash2</key>
<data>
fLMmUKo+hrfIj90HWIRHdfq7v8MI/x0MWQRd9lN1cPE=
</data>
</dict>
<key>Headers/ISudFSTAPP.h</key>
<dict>
<key>hash</key>
<data>
aItvrTmWvreLyI4LUg68DlFUGfw=
</data>
<key>hash2</key>
<data>
en0ZkBmchkyvslIrw3Io4hxHho1yObQIgflmboI/7B4=
</data>
</dict>
<key>Headers/ISudListenerASR.h</key>
<dict>
<key>hash</key>
<data>
e1c1vcvpzWtzpR0M8LXL7DAPJ+M=
</data>
<key>hash2</key>
<data>
ZvLZlglJKF/cbA2rxnPKK/qnPFnSrFjK7mN35COkbT0=
</data>
</dict>
<key>Headers/ISudListenerGetFQSInfo.h</key>
<dict>
<key>hash</key>
<data>
Z7i09z+EjOM7yuUAv56AhHTf+aM=
</data>
<key>hash2</key>
<data>
dgMWSRbsVB/VI4dn14KgIuHyVohZCd6uylOjNtfIHpE=
</data>
</dict>
<key>Headers/ISudListenerGetMGInfo.h</key>
<dict>
<key>hash</key>
<data>
xLG4pxPnoyh3NGW1ERjDuXfSioM=
</data>
<key>hash2</key>
<data>
6XPIfoDCaW2Su+1yD1OKwaNEuOLpqT8Q/6Op7rnBDqg=
</data>
</dict>
<key>Headers/ISudListenerGetMGList.h</key>
<dict>
<key>hash</key>
<data>
A0jH/DMV6f0s6FRS2BrasrFQzSA=
</data>
<key>hash2</key>
<data>
E5N+JajMeuuFCA+bQm/ITWtLis1fB8B6o0SjxC39OVA=
</data>
</dict>
<key>Headers/ISudListenerInitSDK.h</key>
<dict>
<key>hash</key>
<data>
99sNc7pHhNMhxhE/ugBuz/xFC+4=
</data>
<key>hash2</key>
<data>
BpI0OJM3O2t4jgTcMi4o+3Z7mU8f1kFE73Z3VRVbWv4=
</data>
</dict>
<key>Headers/ISudListenerNotifyStateChange.h</key>
<dict>
<key>hash</key>
<data>
iZ8b1pdDNuD7nHEQYBLp65/hkV4=
</data>
<key>hash2</key>
<data>
PWJ/qoGQoZ7q06cdLh64YQbMcdOfkPQ76KGjgzLEbPU=
</data>
</dict>
<key>Headers/ISudListenerUninitSDK.h</key>
<dict>
<key>hash</key>
<data>
ClT1ZLLUSYZr2uY6o7Itdtw1i/Y=
</data>
<key>hash2</key>
<data>
Cuq7ZfNPUJdvjQh33Bn4AiC5gjOAavE6Pu9n6FVoVwM=
</data>
</dict>
<key>Headers/ISudLogger.h</key>
<dict>
<key>hash</key>
<data>
jTVkYtMibuUnks31dwc+LW0ScQE=
</data>
<key>hash2</key>
<data>
iCdKI3ofxZf+tL///BgQljkcPTaFTTY5fU0ptZqIceg=
</data>
</dict>
<key>Headers/RTSSResult.h</key>
<dict>
<key>hash</key>
<data>
80kyv8aQpoAipg6Ia8MkA8kinNQ=
</data>
<key>hash2</key>
<data>
pU2NBhGvfAME1J7lBpqvtZhFVMFZuDiajV/0wiZNDNk=
</data>
</dict>
<key>Headers/SmRtAsr.h</key>
<dict>
<key>hash</key>
<data>
wvXLscKLU/iJogrD+w0w3hzlhaI=
</data>
<key>hash2</key>
<data>
eDzfspvlVv95CQYGVBtfIw/sq8Xp831Y9aewbgc0BpA=
</data>
</dict>
<key>Headers/SmRtAsrClient.h</key>
<dict>
<key>hash</key>
<data>
hshBcpfi1tW5ptVbt6Ox0YI/Wog=
</data>
<key>hash2</key>
<data>
wZqO4WGOpYS+n8/gPU5eimIMFfeYuZCaezw/2uzmh6w=
</data>
</dict>
<key>Headers/SudMGP-umbrella.h</key>
<dict>
<key>hash</key>
<data>
CiDY/99QZbrSottMgxuMLMyad9M=
</data>
<key>hash2</key>
<data>
guPQE5ynbPZNhglA9m1j1LEVSet0AmuMV7bUVmscRa4=
</data>
</dict>
<key>Headers/SudMGP.h</key>
<dict>
<key>hash</key>
<data>
jnWohTHm9H1gS2UqqpuB7FST1Vc=
</data>
<key>hash2</key>
<data>
4bMB1wRViS9RykPPIBLHvJkQ5Y87+6xIrwQjRLTwFaU=
</data>
</dict>
<key>Modules/module.modulemap</key>
<dict>
<key>hash</key>
<data>
SqkCCW826QrTr8CHz/pkF0Gg7Uk=
</data>
<key>hash2</key>
<data>
82DYi24VDJO9ZsI9GZScAIDV9kyxpUfN6/NyRZTI990=
</data>
</dict>
<key>fsm_mgp_game_loading_progress.png</key>
<dict>
<key>hash</key>
<data>
dtpNcJpsR3zafFe134BfDkM+F/8=
</data>
<key>hash2</key>
<data>
PmZ2XWgwRMBpMFC0fewgSN0AQWnYtYfKIc73k87S9No=
</data>
</dict>
<key>fsm_mgp_game_loading_progress_bg.png</key>
<dict>
<key>hash</key>
<data>
G5Xy+4h7dGMY6FJB5kqFR+sdgmo=
</data>
<key>hash2</key>
<data>
kWsbDMHTQ7BUH2wEALcw8lnRExfB0XZ+DgAVGha920M=
</data>
</dict>
<key>plugin.zip</key>
<dict>
<key>hash</key>
<data>
DT5CFEb70VfK0g/AcgYOm5zx5pU=
</data>
<key>hash2</key>
<data>
tLA/Jt5EMBrB1OYfN5RMEx4QjkdrTxizY217oGxA+SU=
</data>
</dict>
<key>sud.png</key>
<dict>
<key>hash</key>
<data>
vQlHDEdu0+Q1In7/lmqL55xESZU=
</data>
<key>hash2</key>
<data>
jGjXGnBah08RrghQiM7wJELGteiQM/iZdJDXE8Bq6C8=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB