commit e1795f2de27ea931627f941f5cf403c21a216fae Author: zoujing Date: Mon Apr 10 18:48:16 2023 +0800 feat: 自定义的插件 diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK b/Libs/ATAuthSDK.framework/ATAuthSDK new file mode 100644 index 0000000..7bc6d90 Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK differ diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@2x.png b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@2x.png new file mode 100644 index 0000000..db2ab5b Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@2x.png differ diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@3x.png b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@3x.png new file mode 100644 index 0000000..61e1dd6 Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@3x.png differ diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@2x.png b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@2x.png new file mode 100644 index 0000000..96f784b Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@2x.png differ diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@3x.png b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@3x.png new file mode 100644 index 0000000..d4f2dad Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@3x.png differ diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@2x.png b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@2x.png new file mode 100755 index 0000000..c97068b Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@2x.png differ diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@3x.png b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@3x.png new file mode 100755 index 0000000..4ee63e0 Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@3x.png differ diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@2x.png b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@2x.png new file mode 100755 index 0000000..4faed82 Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@2x.png differ diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@3x.png b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@3x.png new file mode 100755 index 0000000..e4e17e4 Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@3x.png differ diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@2x.png b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@2x.png new file mode 100644 index 0000000..e200be8 Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@2x.png differ diff --git a/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@3x.png b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@3x.png new file mode 100644 index 0000000..bdc8daa Binary files /dev/null and b/Libs/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@3x.png differ diff --git a/Libs/ATAuthSDK.framework/Headers/ATAuthSDK.h b/Libs/ATAuthSDK.framework/Headers/ATAuthSDK.h new file mode 100644 index 0000000..c7e260b --- /dev/null +++ b/Libs/ATAuthSDK.framework/Headers/ATAuthSDK.h @@ -0,0 +1,26 @@ +// +// ATAuthSDK.h +// ATAuthSDK +// +// Created by yangli on 2020/11/11. +// Copyright © 2020. All rights reserved. +// + +#import + +//! Project version number for ATAuthSDK. +FOUNDATION_EXPORT double ATAuthSDKVersionNumber; + +//! Project version string for ATAuthSDK. +FOUNDATION_EXPORT const unsigned char ATAuthSDKVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import "TXCommonHandler.h" +#import "TXCommonUtils.h" +#import "PNSReturnCode.h" + +#import "TXCustomModel.h" + +#import "PNSReporter.h" + diff --git a/Libs/ATAuthSDK.framework/Headers/PNSReporter.h b/Libs/ATAuthSDK.framework/Headers/PNSReporter.h new file mode 100644 index 0000000..acb094c --- /dev/null +++ b/Libs/ATAuthSDK.framework/Headers/PNSReporter.h @@ -0,0 +1,37 @@ +// +// PNSReporter.h +// ATAuthSDK +// +// Created by 刘超的MacBook on 2020/5/21. +// Copyright © 2020. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, PNSLoggerLevel) { + PNSLoggerLevelVerbose = 1, + PNSLoggerLevelDebug, + PNSLoggerLevelInfo, + PNSLoggerLevelWarn, + PNSLoggerLevelError +}; + +@interface PNSReporter : NSObject + +/** + * 控制台日志输出开关,若开启会以PNS_LOGGER为开始标记对日志进行输出,Release模式记得关闭! + * @param enable 开关参数,默认为NO + */ +- (void)setConsolePrintLoggerEnable:(BOOL)enable; + +/** + * 设置日志及埋点上传开关,但不会对通过 setupUploader: 接口实现的自定义上传方法起作用 + * @param enable 开关设置BOOL值,默认为YES + */ +- (void)setUploadEnable:(BOOL)enable; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libs/ATAuthSDK.framework/Headers/PNSReturnCode.h b/Libs/ATAuthSDK.framework/Headers/PNSReturnCode.h new file mode 100644 index 0000000..55d1a45 --- /dev/null +++ b/Libs/ATAuthSDK.framework/Headers/PNSReturnCode.h @@ -0,0 +1,68 @@ +// +// PNSReturnCode.h +// ATAuthSDK +// +// Created by 刘超的MacBook on 2019/9/4. +// Copyright © 2019. All rights reserved. +// + +#ifndef PNSReturnCode_h +#define PNSReturnCode_h + +#import + +#pragma mark - 该返回码为阿里云号码认证SDK⾃身的返回码,请注意600011及600012错误内均含有运营商返回码,具体错误在碰到之后查阅 https://help.aliyun.com/document_detail/85351.html?spm=a2c4g.11186623.6.561.32a7360cxvWk6H + + +/// 接口成功 +static NSString * const PNSCodeSuccess = @"600000"; +/// 获取运营商配置信息失败 +static NSString * const PNSCodeGetOperatorInfoFailed = @"600004"; +/// 未检测到sim卡 +static NSString * const PNSCodeNoSIMCard = @"600007"; +/// 蜂窝网络未开启 +static NSString * const PNSCodeNoCellularNetwork = @"600008"; +/// 无法判运营商 +static NSString * const PNSCodeUnknownOperator = @"600009"; +/// 未知异常 +static NSString * const PNSCodeUnknownError = @"600010"; +/// 获取token失败 +static NSString * const PNSCodeGetTokenFailed = @"600011"; +/// 预取号失败 +static NSString * const PNSCodeGetMaskPhoneFailed = @"600012"; +/// 运营商维护升级,该功能不可用 +static NSString * const PNSCodeInterfaceDemoted = @"600013"; +/// 运营商维护升级,该功能已达最大调用次数 +static NSString * const PNSCodeInterfaceLimited = @"600014"; +/// 接口超时 +static NSString * const PNSCodeInterfaceTimeout = @"600015"; +/// AppID、Appkey解析失败 +static NSString * const PNSCodeDecodeAppInfoFailed = @"600017"; +/// 运营商已切换 +static NSString * const PNSCodeCarrierChanged = @"600021"; +/// 终端环境检测失败(终端不支持认证 / 终端检测参数错误) +static NSString * const PNSCodeEnvCheckFail = @"600025"; + +/*************** 号码认证授权页相关返回码 START ***************/ + +/// 唤起授权页成功 +static NSString * const PNSCodeLoginControllerPresentSuccess = @"600001"; +/// 唤起授权页失败 +static NSString * const PNSCodeLoginControllerPresentFailed = @"600002"; +/// 授权页已加载时不允许调用加速或预取号接口 +static NSString * const PNSCodeCallPreLoginInAuthPage = @"600026"; +/// 点击返回,⽤户取消一键登录 +static NSString * const PNSCodeLoginControllerClickCancel = @"700000"; +/// 点击切换按钮,⽤户取消免密登录 +static NSString * const PNSCodeLoginControllerClickChangeBtn = @"700001"; +/// 点击登录按钮事件 +static NSString * const PNSCodeLoginControllerClickLoginBtn = @"700002"; +/// 点击CheckBox事件 +static NSString * const PNSCodeLoginControllerClickCheckBoxBtn = @"700003"; +/// 点击协议富文本文字 +static NSString * const PNSCodeLoginControllerClickProtocol = @"700004"; + +/*************** 号码认证授权页相关返回码 FINISH ***************/ + + +#endif /* PNSReturnCode_h */ diff --git a/Libs/ATAuthSDK.framework/Headers/TXCommonHandler.h b/Libs/ATAuthSDK.framework/Headers/TXCommonHandler.h new file mode 100644 index 0000000..07dddd7 --- /dev/null +++ b/Libs/ATAuthSDK.framework/Headers/TXCommonHandler.h @@ -0,0 +1,115 @@ +// +// TXCommonHandler.h +// ATAuthSDK +// +// Created by yangli on 15/03/2018. + +#import +#import + +#import "TXCustomModel.h" +#import "PNSReporter.h" + +typedef NS_ENUM(NSInteger, PNSAuthType) { + PNSAuthTypeVerifyToken = 1, //本机号码校验 + PNSAuthTypeLoginToken = 2 //一键登录 +}; + +@interface TXCommonHandler : NSObject + +/** + * 获取该类的单例实例对象 + * @return 单例实例对象 + */ ++ (instancetype _Nonnull )sharedInstance; + +/** + * 获取当前SDK版本号 + * @return 字符串,sdk版本号 + */ +- (NSString *_Nonnull)getVersion; + +/** + * 初始化SDK调用参数,app生命周期内调用一次 + * @param info app对应的秘钥 + * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode + */ +- (void)setAuthSDKInfo:(NSString * _Nonnull)info complete:(void(^_Nullable)(NSDictionary * _Nonnull resultDic))complete; + +/** + * 检查当前环境是否支持一键登录或号码认证,resultDic 返回 PNSCodeSuccess 说明当前环境支持 + * @param authType 服务类型 PNSAuthTypeVerifyToken 本机号码校验流程,PNSAuthTypeLoginToken 一键登录流程 + * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode,只有成功回调才能保障后续接口调用 + */ +- (void)checkEnvAvailableWithAuthType:(PNSAuthType)authType complete:(void (^_Nullable)(NSDictionary * _Nullable resultDic))complete; + +/** + * 加速获取本机号码校验token,防止调用 getVerifyTokenWithTimeout:complete: 获取token时间过长 + * @param timeout 接口超时时间,单位s,默认为3.0s + * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, token:..., msg:...},其他情况时"resultCode"值请参考PNSReturnCode + */ +- (void)accelerateVerifyWithTimeout:(NSTimeInterval)timeout complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete; + +/** + * 获取本机号码校验Token + * @param timeout 接口超时时间,单位s,默认为3.0s + * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, token:..., msg:...},其他情况时"resultCode"值请参考PNSReturnCode + */ +- (void)getVerifyTokenWithTimeout:(NSTimeInterval)timeout complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete; + +/** + * 加速一键登录授权页弹起,防止调用 getLoginTokenWithTimeout:controller:model:complete: 等待弹起授权页时间过长 + * @param timeout 接口超时时间,单位s,默认为3.0s + * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode + */ +- (void)accelerateLoginPageWithTimeout:(NSTimeInterval)timeout complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete; + +/** + * 获取一键登录Token,调用该接口首先会弹起授权页,点击授权页的登录按钮获取Token + * @warning 注意的是,如果前面没有调用 accelerateLoginPageWithTimeout:complete: 接口,该接口内部会自动先帮我们调用,成功后才会弹起授权页,所以有一个明显的等待过程 + * @param timeout 接口超时时间,单位s,默认为3.0s + * @param controller 唤起自定义授权页的容器,内部会对其进行验证,检查是否符合条件 + * @param model 自定义授权页面选项,可为nil,采用默认的授权页面,具体请参考TXCustomModel.h文件 + * @param complete 结果异步回调到主线程,"resultDic"里面的"resultCode"值请参考PNSReturnCode,如下: + * + * 授权页控件点击事件:700000(点击授权页返回按钮)、700001(点击切换其他登录方式)、 + * 700002(点击登录按钮事件,根据返回字典里面的 "isChecked"字段来区分check box是否被选中,只有被选中的时候内部才会去获取Token)、700003(点击check box事件)、700004(点击协议富文本文字) + 接口回调其他事件:600001(授权页唤起成功)、600002(授权页唤起失败)、600000(成功获取Token)、600011(获取Token失败)、 + * 600015(获取Token超时)、600013(运营商维护升级,该功能不可用)、600014(运营商维护升级,该功能已达最大调用次数)..... + */ +- (void)getLoginTokenWithTimeout:(NSTimeInterval)timeout controller:(UIViewController *_Nonnull)controller model:(TXCustomModel *_Nullable)model complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete; + +/** + * 此接口仅用于开发期间用于一键登录页面不同机型尺寸适配调试(可支持模拟器),非正式页面,手机掩码为0,不能正常登录,请开发者注意下 + * @param controller 唤起自定义授权页的容器,内部会对其进行验证,检查是否符合条件 + * @param model 自定义授权页面选项,可为nil,采用默认的授权页面,具体请参考TXCustomModel.h文件 + * @param complete 结果异步回调到主线程,"resultDic"里面的"resultCode"值请参考PNSReturnCode + */ +- (void)debugLoginUIWithController:(UIViewController *_Nonnull)controller model:(TXCustomModel *_Nullable)model complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete; + +/** + * 手动隐藏一键登录获取登录Token之后的等待动画,默认为自动隐藏,当设置 TXCustomModel 实例 autoHideLoginLoading = NO 时, 可调用该方法手动隐藏 + */ +- (void)hideLoginLoading; + +/** + * 注销授权页,建议用此方法,对于移动卡授权页的消失会清空一些数据 + * @param flag 是否添加动画 + * @param complete 成功返回 + */ +- (void)cancelLoginVCAnimated:(BOOL)flag complete:(void (^_Nullable)(void))complete; + +/** + * 获取日志埋点相关控制对象 + */ +- (PNSReporter * _Nonnull)getReporter; + + + +/** + * 检查及准备调用环境,resultDic返回PNSCodeSuccess才能调用下面的功能接口 + * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode,只有成功回调才能保障后续接口调用 + */ +- (void)checkEnvAvailableWithComplete:(void (^_Nullable)(NSDictionary * _Nullable resultDic))complete DEPRECATED_MSG_ATTRIBUTE("Please use checkEnvAvailableWithAuthType:complete: instead"); + +@end diff --git a/Libs/ATAuthSDK.framework/Headers/TXCommonUtils.h b/Libs/ATAuthSDK.framework/Headers/TXCommonUtils.h new file mode 100644 index 0000000..9ecf79c --- /dev/null +++ b/Libs/ATAuthSDK.framework/Headers/TXCommonUtils.h @@ -0,0 +1,82 @@ +// +// TXCommonUtils.h +// authsdk +// +// Created by yangli on 12/03/2018. + +#import +#import + +@interface TXCommonUtils : NSObject + +/** + 判断当前设备蜂窝数据网络是否开启,即3G/4G + @return 结果 + */ ++ (BOOL)checkDeviceCellularDataEnable; + +/** +判断当前上网卡运营商是否是中国联通 +@return 结果 +*/ ++ (BOOL)isChinaUnicom; + +/** +判断当前上网卡运营商是否是中国移动 +@return 结果 +*/ ++ (BOOL)isChinaMobile; + +/** +判断当前上网卡运营商是否是中国电信 +@return 结果 +*/ ++ (BOOL)isChinaTelecom; + +/** +获取当前上网卡运营商名称,比如中国移动、中国电信、中国联通 +@return 结果 +*/ ++ (NSString *)getCurrentCarrierName; + +/** +获取当前上网卡网络类型,比如WiFi,4G +@return 结果 +*/ ++ (NSString *)getNetworktype; + +/** +判断当前设备是否有SIM卡 +@return 结果 +*/ ++ (BOOL)simSupportedIsOK; + +/** + 判断wwan是否开着(通过p0网卡判断,无wifi或有wifi情况下都能检测到) + @return 结果 + */ ++ (BOOL)isWWANOpen; + +/** + 判断wwan是否开着(仅无wifi情况下) + @return 结果 + */ ++ (BOOL)reachableViaWWAN; + +/** + 获取设备当前网络私网IP地址 + @return 结果 + */ ++ (NSString *)getMobilePrivateIPAddress:(BOOL)preferIPv4; + +/** + 获取当前设备的唯一标识ID + */ ++ (NSString *)getUniqueID; + +/** +通过颜色设置生成图片,支持弧度设置,比如一键登录按钮背景图片 +*/ ++ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size isRoundedCorner:(BOOL )isRounded radius:(CGFloat)radius; + +@end diff --git a/Libs/ATAuthSDK.framework/Headers/TXCustomModel.h b/Libs/ATAuthSDK.framework/Headers/TXCustomModel.h new file mode 100644 index 0000000..5db53fe --- /dev/null +++ b/Libs/ATAuthSDK.framework/Headers/TXCustomModel.h @@ -0,0 +1,294 @@ +// +// TXCustomModel.h +// ATAuthSDK +// +// Created by yangli on 2019/4/4. +// Copyright © 2019. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, PNSPresentationDirection){ + PNSPresentationDirectionBottom = 0, + PNSPresentationDirectionRight, + PNSPresentationDirectionTop, + PNSPresentationDirectionLeft, +}; + +/** + * 构建控件的frame,view布局时会调用该block得到控件的frame + * @param screenSize 屏幕的size,可以通过该size来判断是横屏还是竖屏 + * @param superViewSize 该控件的super view的size,可以通过该size,辅助该控件重新布局 + * @param frame 控件默认的位置 + * @return 控件新设置的位置 + */ +typedef CGRect(^PNSBuildFrameBlock)(CGSize screenSize, CGSize superViewSize, CGRect frame); + +@interface TXCustomModel : NSObject + +/** + * 说明,可设置的Y轴距离,waring: 以下所有关于Y轴的设置<=0都将不生效,请注意 + * 全屏模式:默认是以375x667pt为基准,其他屏幕尺寸可以根据(ratio = 屏幕高度/667)比率来适配,比如 Y*ratio + */ + +#pragma mark- 全屏、弹窗模式设置 +/** + * 授权页面中,渲染并显示所有控件的view,称content view,不实现该block默认为全屏模式 + * 实现弹窗的方案 x >= 0 || y >= 0 width <= 屏幕宽度 || height <= 屏幕高度 + */ +@property (nonatomic, copy) PNSBuildFrameBlock contentViewFrameBlock; + +#pragma mark- 竖屏、横屏模式设置 +/** 屏幕是否支持旋转方向,默认UIInterfaceOrientationMaskPortrait,注意:在刘海屏,UIInterfaceOrientationMaskPortraitUpsideDown属性慎用! */ +@property (nonatomic, assign) UIInterfaceOrientationMask supportedInterfaceOrientations; + +#pragma mark- 仅弹窗模式属性 +/** 底部蒙层背景颜色,默认黑色 */ +@property (nonatomic, strong) UIColor *alertBlurViewColor; +/** 底部蒙层背景透明度,默认0.5 */ +@property (nonatomic, assign) CGFloat alertBlurViewAlpha; +/** contentView背景颜色,默认白色 */ +@property (nonatomic, strong) UIColor *alertContentViewColor; +/** contentView背景透明度,默认1.0 ,即不透明*/ +@property (nonatomic, assign) CGFloat alertContentViewAlpha; +/** contentView的四个圆角值,顺序为左上,左下,右下,右上,需要填充4个值,不足4个值则无效,如果值<=0则为直角 */ +@property (nonatomic, copy) NSArray *alertCornerRadiusArray; +/** 标题栏背景颜色 */ +@property (nonatomic, strong) UIColor *alertTitleBarColor; +/** 标题栏是否隐藏,默认NO */ +@property (nonatomic, assign) BOOL alertBarIsHidden; +/** 标题栏标题,内容、字体、大小、颜色 */ +@property (nonatomic, copy) NSAttributedString *alertTitle; +/** 标题栏右侧关闭按钮图片设置*/ +@property (nonatomic, strong) UIImage *alertCloseImage; +/** 标题栏右侧关闭按钮是否显示,默认NO*/ +@property (nonatomic, assign) BOOL alertCloseItemIsHidden; + +/** 构建标题栏的frame,view布局或布局发生变化时调用,不实现则按默认处理,实现时仅有height生效 */ +@property (nonatomic, copy) PNSBuildFrameBlock alertTitleBarFrameBlock; +/** 构建标题栏标题的frame,view布局或布局发生变化时调用,不实现则按默认处理 */ +@property (nonatomic, copy) PNSBuildFrameBlock alertTitleFrameBlock; +/** 构建标题栏右侧关闭按钮的frame,view布局或布局发生变化时调用,不实现则按默认处理 */ +@property (nonatomic, copy) PNSBuildFrameBlock alertCloseItemFrameBlock; + +#pragma mark- 导航栏(只对全屏模式有效) +/**授权页显示中,导航栏是否隐藏,默认NO*/ +@property (nonatomic, assign) BOOL navIsHidden; +/**授权页push到其他页面后,导航栏是否隐藏,默认NO*/ +@property (nonatomic, assign) BOOL navIsHiddenAfterLoginVCDisappear; +/** 导航栏主题色 */ +@property (nonatomic, strong) UIColor *navColor; +/** 导航栏标题,内容、字体、大小、颜色 */ +@property (nonatomic, copy) NSAttributedString *navTitle; +/** 导航栏返回图片 */ +@property (nonatomic, strong) UIImage *navBackImage; +/** 是否隐藏授权页导航栏返回按钮,默认不隐藏 */ +@property (nonatomic, assign) BOOL hideNavBackItem; +/** 导航栏右侧自定义控件,可以在创建该VIEW的时候添加手势操作,或者创建按钮或其他赋值给VIEW */ +@property (nonatomic, strong) UIView *navMoreView; + +/** 构建导航栏返回按钮的frame,view布局或布局发生变化时调用,不实现则按默认处理 */ +@property (nonatomic, copy) PNSBuildFrameBlock navBackButtonFrameBlock; +/** 构建导航栏标题的frame,view布局或布局发生变化时调用,不实现则按默认处理 */ +@property (nonatomic, copy) PNSBuildFrameBlock navTitleFrameBlock; +/** 构建导航栏右侧more view的frame,view布局或布局发生变化时调用,不实现则按默认处理,边界 CGRectGetMinX(frame) >= (superViewSizeViewSize / 0.3) && CGRectGetWidth(frame) <= (superViewSize.width / 3.0) */ +@property (nonatomic, copy) PNSBuildFrameBlock navMoreViewFrameBlock; + +#pragma mark- 全屏、弹窗模式共同属性 + +#pragma mark- 授权页动画相关 +/** 授权页弹出方向,默认PNSPresentationDirectionBottom,该属性只对自带动画起效,不影响自定义动画 */ +@property (nonatomic, assign) PNSPresentationDirection presentDirection; +/** 授权页显示和消失动画时间,默认为0.25s,<= 0 时关闭动画,该属性只对自带动画起效,不影响自定义动画 **/ +@property (nonatomic, assign) CGFloat animationDuration; + +/** 授权页显示动画(弹窗 & 全屏),不设置或设置为nil默认使用自带动画,SDK内部会主动更改动画的一些属性(包括:removedOnCompletion = NO、fillMode = kCAFillModeForwards 及 delegate) **/ +@property (nonatomic, strong, nullable) CAAnimation *entryAnimation; +/** 授权页消失动画(弹窗 & 全屏),不设置或设置为nil默认使用自带动画,SDK内部会主动更改动画的一些属性(包括:removedOnCompletion = NO、fillMode = kCAFillModeForwards 及 delegate) **/ +@property (nonatomic, strong, nullable) CAAnimation *exitAnimation; + +/** 授权页显示时的背景动画(仅弹窗),不设置或设置为nil默认使用自带动画,SDK内部会主动更改动画的一些属性(包括:removedOnCompletion = NO、fillMode = kCAFillModeForwards 及 delegate) **/ +@property (nonatomic, strong, nullable) CAAnimation *bgEntryAnimation; +/** 授权页消失时的背景动画(仅弹窗),不设置或设置为nil默认使用自带动画,SDK内部会主动更改动画的一些属性(包括:removedOnCompletion = NO、fillMode = kCAFillModeForwards 及 delegate) **/ +@property (nonatomic, strong, nullable) CAAnimation *bgExitAnimation; + +#pragma mark- 状态栏 +/** 状态栏是否隐藏,默认NO */ +@property (nonatomic, assign) BOOL prefersStatusBarHidden; +/** 状态栏主题风格,默认UIStatusBarStyleDefault */ +@property (nonatomic, assign) UIStatusBarStyle preferredStatusBarStyle; + +#pragma mark- logo图片 +/** logo图片设置 */ +@property (nonatomic, strong) UIImage *logoImage; +/** logo是否隐藏,默认NO */ +@property (nonatomic, assign) BOOL logoIsHidden; + +/** 构建logo的frame,view布局或布局发生变化时调用,不实现则按默认处理 */ +@property (nonatomic, copy) PNSBuildFrameBlock logoFrameBlock; +/** logo的宽设置 */ +@property (nonatomic, assign) CGFloat logoWidth DEPRECATED_MSG_ATTRIBUTE("Please use logoFrameBlock instead"); +/** logo的高设置 */ +@property (nonatomic, assign) CGFloat logoHeight DEPRECATED_MSG_ATTRIBUTE("Please use logoFrameBlock instead"); +/** logo相对导航栏底部或标题栏底部的Y轴距离 */ +@property (nonatomic, assign) CGFloat logoTopOffetY DEPRECATED_MSG_ATTRIBUTE("Please use logoFrameBlock instead"); + +#pragma mark- slogan +/** slogan文案,内容、字体、大小、颜色 */ +@property (nonatomic, copy) NSAttributedString *sloganText; +/** slogan是否隐藏,默认NO */ +@property (nonatomic, assign) BOOL sloganIsHidden; + +/** 构建slogan的frame,view布局或布局发生变化时调用,不实现则按默认处理 */ +@property (nonatomic, copy) PNSBuildFrameBlock sloganFrameBlock; +/** slogan相对导航栏底部或标题栏底部的Y轴距离 */ +@property (nonatomic, assign) CGFloat sloganTopOffetY DEPRECATED_MSG_ATTRIBUTE("Please use sloganFrameBlock instead"); + +#pragma mark- 号码 +/** 号码颜色设置 */ +@property (nonatomic, strong) UIColor *numberColor; +/** 号码字体大小设置,大小小于16则不生效 */ +@property (nonatomic, strong) UIFont *numberFont; + +/** + * 构建号码的frame,view布局或布局发生变化时调用,只有x、y生效,不实现则按默认处理, + * 注:设置不能超出父视图 content view + */ +@property (nonatomic, copy) PNSBuildFrameBlock numberFrameBlock; +/** + * 号码相对导航栏底部或标题栏底部的Y轴距离,不设置则按默认处理 + * 注:设置超出父视图 content view 时不生效 + */ +@property (nonatomic, assign) CGFloat numberTopOffetY DEPRECATED_MSG_ATTRIBUTE("Please use numberFrameBlock instead"); +/** + * 号码相对屏幕中线的X轴偏移距离,不设置则按默认处理,默认为0水平居中 + * 注:设置不能超出父视图 content view + */ +@property (nonatomic, assign) CGFloat numberOffetX DEPRECATED_MSG_ATTRIBUTE("Please use numberFrameBlock instead"); + +#pragma mark- 登录 +/** 登陆按钮文案,内容、字体、大小、颜色*/ +@property (nonatomic, strong) NSAttributedString *loginBtnText; +/** 登录按钮背景图片组,默认高度50.0pt,@[激活状态的图片,失效状态的图片,高亮状态的图片] */ +@property (nonatomic, strong) NSArray *loginBtnBgImgs; +/** + * 是否自动隐藏点击登录按钮之后授权页上转圈的 loading, 默认为YES,在获取登录Token成功后自动隐藏 + * 如果设置为 NO,需要自己手动调用 [[TXCommonHandler sharedInstance] hideLoginLoading] 隐藏 + */ +@property (nonatomic, assign) BOOL autoHideLoginLoading; +/** + * 构建登录按钮的frame,view布局或布局发生变化时调用,不实现则按默认处理 + * 注:不能超出父视图 content view,height不能小于20,width不能小于父视图宽度的一半 + */ +@property (nonatomic, copy) PNSBuildFrameBlock loginBtnFrameBlock; +/** + * 登录按钮相对导航栏底部或标题栏底部的Y轴距离,不设置则按默认处理 + * 注:设置超出父视图 content view 时不生效 + */ +@property (nonatomic, assign) CGFloat loginBtnTopOffetY DEPRECATED_MSG_ATTRIBUTE("Please use loginBtnFrameBlock instead"); +/** 登录按钮高度,小于20.0pt不生效,不设置则按默认处理 */ +@property (nonatomic, assign) CGFloat loginBtnHeight DEPRECATED_MSG_ATTRIBUTE("Please use loginBtnFrameBlock instead"); +/** 登录按钮相对content view的左右边距,按钮宽度必须大于等于屏幕的一半,不设置则按默认处理 */ +@property (nonatomic, assign) CGFloat loginBtnLRPadding DEPRECATED_MSG_ATTRIBUTE("Please use loginBtnFrameBlock instead"); + +#pragma mark- 协议 +/** checkBox图片组,[uncheckedImg,checkedImg]*/ +@property (nonatomic, copy) NSArray *checkBoxImages; +/** checkBox图片距离控件边框的填充,默认为 UIEdgeInsetsZero,确保控件大小减去内填充大小为资源图片大小情况下,图片才不会变形 **/ +@property (nonatomic, assign) UIEdgeInsets checkBoxImageEdgeInsets; +/** checkBox是否勾选,默认NO */ +@property (nonatomic, assign) BOOL checkBoxIsChecked; +/** checkBox是否隐藏,默认NO */ +@property (nonatomic, assign) BOOL checkBoxIsHidden; +/** checkBox大小,高宽一样,必须大于0 */ +@property (nonatomic, assign) CGFloat checkBoxWH; + +/** 协议1,[协议名称,协议Url],注:三个协议名称不能相同 */ +@property (nonatomic, copy) NSArray *privacyOne; +/** 协议2,[协议名称,协议Url],注:三个协议名称不能相同 */ +@property (nonatomic, copy) NSArray *privacyTwo; +/** 协议3,[协议名称,协议Url],注:三个协议名称不能相同 */ +@property (nonatomic, copy) NSArray *privacyThree; +/** 协议名称之间连接字符串数组,默认 ["和","、","、"] ,即第一个为"和",其他为"、",按顺序读取,为空则取默认 */ +@property (nonatomic, copy) NSArray *privacyConectTexts; +/** 协议内容颜色数组,[非点击文案颜色,点击文案颜色] */ +@property (nonatomic, copy) NSArray *privacyColors; +/** 协议文案支持居中、居左设置,默认居左 */ +@property (nonatomic, assign) NSTextAlignment privacyAlignment; +/** 协议整体文案,前缀部分文案 */ +@property (nonatomic, copy) NSString *privacyPreText; +/** 协议整体文案,后缀部分文案 */ +@property (nonatomic, copy) NSString *privacySufText; +/** 运营商协议名称前缀文案,仅支持 <([《(【『 */ +@property (nonatomic, copy) NSString *privacyOperatorPreText; +/** 运营商协议名称后缀文案,仅支持 >)]》)】』*/ +@property (nonatomic, copy) NSString *privacyOperatorSufText; +/** 运营商协议指定显示顺序,默认0,即第1个协议显示,最大值可为3,即第4个协议显示*/ +@property (nonatomic, assign) NSInteger privacyOperatorIndex; +/** 协议整体文案字体大小,小于12.0不生效 */ +@property (nonatomic, strong) UIFont *privacyFont; + +/** + * 构建协议整体(包括checkBox)的frame,view布局或布局发生变化时调用,不实现则按默认处理 + * 如果设置的width小于checkBox的宽则不生效,最小x、y为0,最大width、height为父试图宽高 + * 最终会根据设置进来的width对协议文本进行自适应,得到的size是协议控件的最终大小 + */ +@property (nonatomic, copy) PNSBuildFrameBlock privacyFrameBlock; +/** 协议整体相对屏幕底部的Y轴距离,与其他有区别!!不能小于0 */ +@property (nonatomic, assign) CGFloat privacyBottomOffetY DEPRECATED_MSG_ATTRIBUTE("Please use privacyFrameBlock instead"); +/** 协议整体(包括checkBox)相对content view的左右边距,当协议整体宽度小于(content view宽度-2*左右边距)且居中模式,则左右边距设置无效,不能小于0 */ +@property (nonatomic, assign) CGFloat privacyLRPadding DEPRECATED_MSG_ATTRIBUTE("Please use privacyFrameBlock instead"); + +#pragma mark- 切换到其他方式 +/** changeBtn标题,内容、字体、大小、颜色 */ +@property (nonatomic, copy) NSAttributedString *changeBtnTitle; +/** changeBtn是否隐藏,默认NO*/ +@property (nonatomic, assign) BOOL changeBtnIsHidden; + +/** 构建changeBtn的frame,view布局或布局发生变化时调用,不实现则按默认处理 */ +@property (nonatomic, copy) PNSBuildFrameBlock changeBtnFrameBlock; +/** changeBtn相对导航栏底部或标题栏底部的Y轴距离 */ +@property (nonatomic, assign) CGFloat changeBtnTopOffetY DEPRECATED_MSG_ATTRIBUTE("Please use changeBtnFrameBlock instead"); + +#pragma mark- 协议详情页 +/** 协议详情页容器是否自定义,默认NO,若为YES,则根据 PNSCodeLoginControllerClickProtocol 返回码获取协议点击详情信息 */ +@property (nonatomic, assign) BOOL privacyVCIsCustomized; +/** 导航栏背景颜色设置 */ +@property (nonatomic, strong) UIColor *privacyNavColor; +/** 导航栏标题字体、大小 */ +@property (nonatomic, strong) UIFont *privacyNavTitleFont; +/** 导航栏标题颜色 */ +@property (nonatomic, strong) UIColor *privacyNavTitleColor; +/** 导航栏返回图片 */ +@property (nonatomic, strong) UIImage *privacyNavBackImage; + +#pragma mark- 其他自定义控件添加及布局 + +/** + * 自定义控件添加,注意:自定义视图的创建初始化和添加到父视图,都需要在主线程!! + * @param superCustomView 父视图 +*/ +@property (nonatomic, copy) void(^customViewBlock)(UIView *superCustomView); + +/** + * 每次授权页布局完成时会调用该block,可以在该block实现里面可设置自定义添加控件的frame + * @param screenSize 屏幕的size + * @param contentViewFrame content view的frame, + * @param navFrame 导航栏的frame,仅全屏时有效 + * @param titleBarFrame 标题栏的frame,仅弹窗时有效 + * @param logoFrame logo图片的frame + * @param sloganFrame slogan的frame + * @param numberFrame 号码栏的frame + * @param loginFrame 登录按钮的frame + * @param changeBtnFrame 切换到其他方式按钮的frame + * @param privacyFrame 协议整体(包括checkBox)的frame +*/ +@property (nonatomic, copy) void(^customViewLayoutBlock)(CGSize screenSize, CGRect contentViewFrame, CGRect navFrame, CGRect titleBarFrame, CGRect logoFrame, CGRect sloganFrame, CGRect numberFrame, CGRect loginFrame, CGRect changeBtnFrame, CGRect privacyFrame); + +@end + +NS_ASSUME_NONNULL_END + diff --git a/Libs/ATAuthSDK.framework/Info.plist b/Libs/ATAuthSDK.framework/Info.plist new file mode 100644 index 0000000..ecd93c7 Binary files /dev/null and b/Libs/ATAuthSDK.framework/Info.plist differ diff --git a/Libs/ATAuthSDK.framework/Modules/module.modulemap b/Libs/ATAuthSDK.framework/Modules/module.modulemap new file mode 100644 index 0000000..be47bf2 --- /dev/null +++ b/Libs/ATAuthSDK.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module ATAuthSDK { + umbrella header "ATAuthSDK.h" + + export * + module * { export * } +} diff --git a/Libs/ATAuthSDKUniPlugin.framework/ATAuthSDKUniPlugin b/Libs/ATAuthSDKUniPlugin.framework/ATAuthSDKUniPlugin new file mode 100644 index 0000000..b97aa35 Binary files /dev/null and b/Libs/ATAuthSDKUniPlugin.framework/ATAuthSDKUniPlugin differ diff --git a/Libs/ATAuthSDKUniPlugin.framework/Info.plist b/Libs/ATAuthSDKUniPlugin.framework/Info.plist new file mode 100644 index 0000000..d365501 Binary files /dev/null and b/Libs/ATAuthSDKUniPlugin.framework/Info.plist differ diff --git a/Libs/BMKLocationKit.framework/BMKLocationKit b/Libs/BMKLocationKit.framework/BMKLocationKit new file mode 100644 index 0000000..aa91cdd Binary files /dev/null and b/Libs/BMKLocationKit.framework/BMKLocationKit differ diff --git a/Libs/BMKLocationKit.framework/Headers/BMKGeoFenceManager.h b/Libs/BMKLocationKit.framework/Headers/BMKGeoFenceManager.h new file mode 100644 index 0000000..ef834cd --- /dev/null +++ b/Libs/BMKLocationKit.framework/Headers/BMKGeoFenceManager.h @@ -0,0 +1,141 @@ +// +// BMKGeoFenceManager.h +// BMKLocationKit +// +// Created by baidu on 2017/3/2. +// Copyright © 2017年 baidu. All rights reserved. +// + +#import "BMKGeoFenceRegion.h" + +@protocol BMKGeoFenceManagerDelegate; + +///地理围栏监听状态类型 +typedef NS_OPTIONS(NSUInteger, BMKGeoFenceActiveAction) +{ + BMKGeoFenceActiveActionNone = 0, ///< 不进行监听 + BMKGeoFenceActiveActionInside = 1 << 0, ///< 在范围内 + BMKGeoFenceActiveActionOutside = 1 << 1, ///< 在范围外 + BMKGeoFenceActiveActionStayed = 1 << 2, ///< 停留(在范围内超过10分钟) +}; + +///BMKGeoFence errorDomain +FOUNDATION_EXPORT NSErrorDomain const _Nonnull BMKGeoFenceErrorDomain; + +///地理围栏错误码 +typedef NS_ENUM(NSInteger, BMKGeoFenceErrorCode) { + BMKGeoFenceErrorUnknown = 1, ///< 未知错误 + BMKGeoFenceErrorInvalidParameter = 2, ///< 参数错误 + BMKGeoFenceErrorFailureConnection = 3, ///< 网络连接异常 + BMKGeoFenceErrorFailureAuth = 4, ///< 鉴权失败 + BMKGeoFenceErrorNoValidFence = 5, ///< 无可用围栏 + BMKGeoFenceErroFailureLocating = 6, ///< 定位错误 +}; + + +///地理围栏管理类 +@interface BMKGeoFenceManager : NSObject + + +///实现了 BMKGeoFenceManagerDelegate 协议的类指针。 +@property (nonatomic, weak, nullable) id delegate; + + +///需要进行通知的行为,默认为BMKGeoFenceActiveActionInside。 +@property (nonatomic, assign) BMKGeoFenceActiveAction activeAction; + + +///指定定位是否会被系统自动暂停。默认为NO。 +@property (nonatomic, assign) BOOL pausesLocationUpdatesAutomatically; + + +///是否允许后台定位。默认为NO。只在iOS 9.0及之后起作用。设置为YES的时候必须保证 Background Modes 中的 Location updates 处于选中状态,否则会抛出异常。 +@property (nonatomic, assign) BOOL allowsBackgroundLocationUpdates; + + +/** + * @brief 添加一个圆形围栏 + * @param center 围栏的中心点经纬度坐标 + * @param radius 围栏的半径,单位:米,要求大于0 + * @param type 围栏的坐标系类型 + * @param customID 用户自定义ID,可选,SDK原值返回 + */ +- (void)addCircleRegionForMonitoringWithCenter:(CLLocationCoordinate2D)center radius:(CLLocationDistance)radius coorType:(BMKLocationCoordinateType)type customID:(NSString * _Nullable)customID; + + +/** + * @brief 根据经纬度坐标数据添加一个闭合的多边形围栏,点与点之间按顺序尾部相连, 第一个点与最后一个点相连 + * @param coordinates 经纬度坐标点数据,coordinates对应的内存会拷贝,调用者负责该内存的释放 + * @param count 经纬度坐标点的个数,不可小于3个 + * @param type 围栏的坐标系类型 + * @param customID 用户自定义ID,可选,SDK原值返回 + */ +- (void)addPolygonRegionForMonitoringWithCoordinates:(CLLocationCoordinate2D * _Nonnull)coordinates count:(NSInteger)count coorType:(BMKLocationCoordinateType)type customID:(NSString * _Nullable)customID; + + +/** + * @brief 根据customID获得指定的围栏,如果customID传nil,则返回全部围栏 + * @param customID 用户执行添加围栏函数时传入的customID + * @return 获得的围栏构成的数组,如果没有结果,返回nil + */ +- (NSArray * _Nullable)geoFenceRegionsWithCustomID:(NSString * _Nullable)customID; + + +/** + * @brief 移除指定围栏 + * @param region 要停止监控的围栏 + */ +- (void)removeTheGeoFenceRegion:(BMKGeoFenceRegion * _Nonnull)region; + + +/** + * @brief 移除指定customID的围栏 + * @param customID 用户执行添加围栏函数时传入的customID + */ +- (void)removeGeoFenceRegionsWithCustomID:(NSString * _Nullable)customID; + + +/** + * @brief 移除所有围栏 + */ +- (void)removeAllGeoFenceRegions; + + +@end + + + +///地理围栏代理协议,该协议定义了获取地理围栏相关回调方法,包括添加、状态改变等。 +@protocol BMKGeoFenceManagerDelegate + +@optional + +/** + * @brief 为了适配app store关于新的后台定位的审核机制(app store要求如果开发者只配置了使用期间定位,则代码中不能出现申请后台定位的逻辑),当开发者在plist配置NSLocationAlwaysUsageDescription或者NSLocationAlwaysAndWhenInUseUsageDescription时,需要在该delegate中调用后台定位api:[locationManager requestAlwaysAuthorization]。开发者如果只配置了NSLocationWhenInUseUsageDescription,且只有使用期间的定位需求,则无需在delegate中实现逻辑。 + * @param manager 定位 BMKGeoFenceManager 类。 + * @param locationManager 系统 CLLocationManager 类 。 + * @since 1.7.0 + */ +- (void)BMKGeoFenceManager:(BMKGeoFenceManager * _Nonnull)manager doRequestAlwaysAuthorization:(CLLocationManager * _Nonnull)locationManager; + +/** + * @brief 添加地理围栏完成后的回调,成功与失败都会调用 + * @param manager 地理围栏管理类 + * @param regions 成功添加的一个或多个地理围栏构成的数组 + * @param customID 用户执行添加围栏函数时传入的customID + * @param error 添加失败的错误信息 + */ +- (void)BMKGeoFenceManager:(BMKGeoFenceManager * _Nonnull)manager didAddRegionForMonitoringFinished:(NSArray * _Nullable)regions customID:(NSString * _Nullable)customID error:(NSError * _Nullable)error; + + +/** + * @brief 地理围栏状态改变时回调,当围栏状态的值发生改变,定位失败都会调用 + * @param manager 地理围栏管理类 + * @param region 状态改变的地理围栏 + * @param customID 用户执行添加围栏函数时传入的customID + * @param error 错误信息,如定位相关的错误 + */ +- (void)BMKGeoFenceManager:(BMKGeoFenceManager * _Nonnull)manager didGeoFencesStatusChangedForRegion:(BMKGeoFenceRegion * _Nullable)region customID:(NSString * _Nullable)customID error:(NSError * _Nullable)error; + +@end + diff --git a/Libs/BMKLocationKit.framework/Headers/BMKGeoFenceRegion.h b/Libs/BMKLocationKit.framework/Headers/BMKGeoFenceRegion.h new file mode 100644 index 0000000..119358f --- /dev/null +++ b/Libs/BMKLocationKit.framework/Headers/BMKGeoFenceRegion.h @@ -0,0 +1,114 @@ +// +// BMKGeoFenceRegion.h +// BMKLocationKit +// +// Created by baidu on 2017/3/2. +// Copyright © 2017年 baidu. All rights reserved. +// + +#import +#import +#import "BMKLocationManager.h" + +///BMKGeoFence Region State +typedef NS_ENUM(NSInteger, BMKGeoFenceRegionStatus) +{ + BMKGeoFenceRegionStatusUnknown = 0, ///< 未知 + BMKGeoFenceRegionStatusInside = 1, ///< 在范围内 + BMKGeoFenceRegionStatusOutside = 1 << 1, ///< 在范围外 + BMKGeoFenceRegionStatusStayed = 1 << 2, ///< 停留(在范围内超过10分钟) +}; + +#pragma mark - BMKGeoFenceRegion + + +///地理围栏基类,不可直接使用 +@interface BMKGeoFenceRegion : NSObject + + +///BMKGeoFenceRegion的唯一标识符 +@property (nonatomic, copy, readonly) NSString *identifier; + + +///用户自定义ID,可为nil。 +@property (nonatomic, copy, readonly) NSString *customID; + + +///坐标点和围栏的关系,比如用户的位置和围栏的关系 +@property (nonatomic, assign) BMKGeoFenceRegionStatus fenceStatus; + +///设定围栏坐标系类型。默认为 BMKLocationCoordinateTypeGCJ02。 +@property(nonatomic, readonly) BMKLocationCoordinateType coordinateType; + +///上次发生状态变化的时间 +@property(nonatomic, assign)NSTimeInterval lastEventTime; + + +/** + * @brief 判断位置与围栏状态 + * @param CLLocationCoordinate2D 坐标值 + * @return 返回BMKGeoFenceRegionStatus状态 + */ +-(BMKGeoFenceRegionStatus)judgeStatusWithCoor:(CLLocationCoordinate2D)coor; + +@end + + +#pragma mark - BMKLocationCircleRegion + + +///圆形地理围栏 +@interface BMKGeoFenceCircleRegion : BMKGeoFenceRegion + + +///中心点的经纬度坐标 +@property (nonatomic, readonly) CLLocationCoordinate2D center; + + +///半径,单位:米 +@property (nonatomic, readonly) CLLocationDistance radius; + +/** + * @brief 构造圆形围栏 + * @param customid 用户自定义ID + * @param identityid 识别id + * @param center 中心坐标 + * @param radius 围栏半径 + * @param type 坐标系类型 + * @return BMKGeoFenceCircleRegion id + */ +- (id)initWithCustomID:(NSString *)customid identityID:(NSString *)identityid center:(CLLocationCoordinate2D)center radius:(CLLocationDistance)radius coor:(BMKLocationCoordinateType)type; + + + +@end + + +#pragma mark -BMKGeoFencePolygonRegion + + +///多边形地理围栏 +@interface BMKGeoFencePolygonRegion : BMKGeoFenceRegion + + +///经纬度坐标点数据 +@property (nonatomic, readonly) CLLocationCoordinate2D *coordinates; + + +///经纬度坐标点的个数 +@property (nonatomic, readonly) NSInteger count; + + +/** + * @brief 构造多边形围栏 + * @param customid 用户自定义ID + * @param identityid 识别id + * @param coor 多边形顶点 + * @param count 顶点个数 + * @param type 坐标系类型 + * @return BMKGeoFencePolygonRegion id + */ +- (id)initWithCustomID:(NSString *)customid identityID:(NSString *)identityid coor:(CLLocationCoordinate2D *)coor count:(NSInteger)count coor:(BMKLocationCoordinateType)type; + +@end + diff --git a/Libs/BMKLocationKit.framework/Headers/BMKLocation.h b/Libs/BMKLocationKit.framework/Headers/BMKLocation.h new file mode 100644 index 0000000..eae633c --- /dev/null +++ b/Libs/BMKLocationKit.framework/Headers/BMKLocation.h @@ -0,0 +1,97 @@ +// +// BMKLocation.h +// LocationComponent +// +// Created by baidu on 2017/8/16. +// Copyright © 2017年 baidu. All rights reserved. +// + +#ifndef BMKLocation_h +#define BMKLocation_h + +#import +#import "BMKLocationReGeocode.h" + +/** + * BMKLocationProvider 位置数据来源,分iOS系统定位和其他定位服务结果两种,目前仅支持iOS系统定位服务 + * + */ +typedef NS_ENUM(int, BMKLocationProvider) { + + BMKLocationProviderIOS = 0, //!<位置来源于iOS本身定位 + BMKLocationProviderOther //!<位置来源于其他定位服务 + +}; + +///描述百度iOS 定位数据 +@interface BMKLocation : NSObject + +///BMKLocation 位置数据 +@property(nonatomic, copy, readonly) CLLocation * _Nullable location; + +///BMKLocation 地址数据 +@property(nonatomic, copy) BMKLocationReGeocode * _Nullable rgcData; + +///BMKLocation 位置来源 +@property(nonatomic, assign) BMKLocationProvider provider; + +///BMKLocation 位置ID +@property(nonatomic, retain) NSString * _Nullable locationID; + +/* + * floorString + * + * Discussion: + * 室内定位成功时返回的楼层信息,ex:f1 + */ +@property(readonly, nonatomic, copy, nullable) NSString *floorString; + +/* + * buildingID + * + * Discussion: + * 室内定位成功时返回的百度建筑物ID + */ +@property(readonly, nonatomic, copy, nullable) NSString *buildingID; + +/* + * buildingName + * + * Discussion: + * 室内定位成功时返回的百度建筑物名称 + */ +@property(readonly, nonatomic, copy, nullable) NSString *buildingName; + + +/* + * extraInfo + * + * Discussion: + * 定位附加信息,如停车位code识别结果、停车位code示例、vdr推算结果置信度等 + */ +@property(readonly, nonatomic, copy, nullable) NSDictionary * extraInfo; + +/** + * @brief 初始化BMKLocation实例 + * @param loc CLLocation对象 + * @param rgc BMKLocationReGeocode对象 + * @return BMKLocation id + */ +- (id _Nonnull)initWithLocation:(CLLocation * _Nullable)loc withRgcData:(BMKLocationReGeocode * _Nullable)rgc; + +/** + * @brief 构造BMKLocation + * @param location CLLocation + * @param floorString 楼层字符串 + * @param buildingID 建筑物ID + * @param buildingName 建筑物名称 + * @param info 位置附加信息 + * @return BMKLocation id + */ +-(id _Nonnull)initWithLocation:(CLLocation * _Nullable)location floorString:(NSString * _Nullable)floorString buildingID:(NSString * _Nullable)buildingID + buildingName:(NSString * _Nullable)buildingName extraInfo:(NSDictionary * _Nullable)info withRgcData:(BMKLocationReGeocode * _Nullable)rgc; + + +@end + +#endif /* BMKLocation_h */ diff --git a/Libs/BMKLocationKit.framework/Headers/BMKLocationAuth.h b/Libs/BMKLocationKit.framework/Headers/BMKLocationAuth.h new file mode 100644 index 0000000..9049464 --- /dev/null +++ b/Libs/BMKLocationKit.framework/Headers/BMKLocationAuth.h @@ -0,0 +1,56 @@ +// +// BMKLocationAuth.h +// LocationComponent +// +// Created by baidu on 2017/4/10. +// Copyright © 2017年 baidu. All rights reserved. +// + +#ifndef BMKLocationAuth_h +#define BMKLocationAuth_h + +///定位鉴权错误码 +typedef NS_ENUM(NSInteger, BMKLocationAuthErrorCode) { + BMKLocationAuthErrorUnknown = -1, ///< 未知错误 + BMKLocationAuthErrorSuccess = 0, ///< 鉴权成功 + BMKLocationAuthErrorNetworkFailed = 1, ///< 因网络鉴权失败 + BMKLocationAuthErrorFailed = 2, ///< KEY非法鉴权失败 + +}; +///通知Delegate +@protocol BMKLocationAuthDelegate +@optional + +/** + *@brief 返回授权验证错误 + *@param iError 错误号 : 为0时验证通过,具体参加BMKLocationAuthErrorCode + */ +- (void)onCheckPermissionState:(BMKLocationAuthErrorCode)iError; +@end + + +///BMKLocationAuth类。用于鉴权 +@interface BMKLocationAuth : NSObject + +///鉴权状态0:成功; 1:网络错误; 2:授权失败 +@property(nonatomic, readonly, assign) BMKLocationAuthErrorCode permisionState; + +/** + * @brief 得到BMKLocationAuth的单例 + */ ++ (BMKLocationAuth*)sharedInstance; + + +/** + *@brief 启动引擎 + *@param key 申请的有效key + *@param delegate 回调是否鉴权成功 + */ +-(void)checkPermisionWithKey:(NSString*)key authDelegate:(id)delegate; + + +@end + + + +#endif /* BMKLocationAuth_h */ diff --git a/Libs/BMKLocationKit.framework/Headers/BMKLocationComponent.h b/Libs/BMKLocationKit.framework/Headers/BMKLocationComponent.h new file mode 100644 index 0000000..0b6310f --- /dev/null +++ b/Libs/BMKLocationKit.framework/Headers/BMKLocationComponent.h @@ -0,0 +1,16 @@ +// +// BMKLocationComponent.h +// LocationComponent +// +// Created by Baidu on 3/31/14. +// Copyright (c) 2014 baidu. All rights reserved. +// + +#import "BMKLocationManager.h" +#import "BMKLocationKitVersion.h" +#import "BMKLocationPoi.h" +#import "BMKLocation.h" +#import "BMKGeoFenceRegion.h" +#import "BMKGeoFenceManager.h" +#import "BMKLocationReGeocode.h" +#import "BMKLocationAuth.h" diff --git a/Libs/BMKLocationKit.framework/Headers/BMKLocationKitVersion.h b/Libs/BMKLocationKit.framework/Headers/BMKLocationKitVersion.h new file mode 100644 index 0000000..0426c5e --- /dev/null +++ b/Libs/BMKLocationKit.framework/Headers/BMKLocationKitVersion.h @@ -0,0 +1,30 @@ +// +// BMKLocationKitVersion.h +// BMKLocationKit +// +// Created by baidu on 17/9/9. +// Copyright © 2017年 baidu. All rights reserved. +// + +#ifndef BMKLocationKitVersion_h +#define BMKLocationKitVersion_h + +#import + +/** + *获取当前定位sdk 的版本号 + *当前定位sdk版本 : 2.0.0 + *@return 返回当前定位sdk 的版本号 + */ +UIKIT_EXTERN NSString* BMKLocationKitVersion(); + +/** + *获取当前定位sdk 的float版本号 + *当前定位sdk版本 : 2.0 + *@return 返回当前定位sdk 的float版本号 + */ +UIKIT_EXTERN float BMKLocationKitFloatVersion(); + + + +#endif /* BMKLocationKitVersion_h */ diff --git a/Libs/BMKLocationKit.framework/Headers/BMKLocationManager.h b/Libs/BMKLocationKit.framework/Headers/BMKLocationManager.h new file mode 100644 index 0000000..d6e3ab8 --- /dev/null +++ b/Libs/BMKLocationKit.framework/Headers/BMKLocationManager.h @@ -0,0 +1,296 @@ +// +// BMKLocationManager.h +// BMKLocationKit +// +// Created by baidu on 2017/3/2. +// Copyright © 2017年 baidu. All rights reserved. +// + +#import +#import +#import +#import "BMKLocationReGeocode.h" +#import "BMKLocation.h" + +/** BMKLocationCoordinateType 枚举坐标系类型 + * + */ +typedef NS_ENUM(NSUInteger, BMKLocationCoordinateType) +{ + BMKLocationCoordinateTypeBMK09LL = 0, /// delegate; + +///设定定位的最小更新距离。默认为 kCLDistanceFilterNone。 +@property(nonatomic, assign) CLLocationDistance distanceFilter; + +///设定定位精度。默认为 kCLLocationAccuracyBest。 +@property(nonatomic, assign) CLLocationAccuracy desiredAccuracy; + +///设定定位类型。默认为 CLActivityTypeAutomotiveNavigation。 +@property(nonatomic, assign) CLActivityType activityType; + +///设定定位坐标系类型。默认为 BMKLocationCoordinateTypeGCJ02。 +@property(nonatomic, assign) BMKLocationCoordinateType coordinateType; + +///指定定位是否会被系统自动暂停。默认为NO。 +@property(nonatomic, assign) BOOL pausesLocationUpdatesAutomatically; + + +///是否允许后台定位。默认为NO。只在iOS 9.0及之后起作用。设置为YES的时候必须保证 Background Modes 中的 Location updates 处于选中状态,否则会抛出异常。由于iOS系统限制,需要在定位未开始之前或定位停止之后,修改该属性的值才会有效果。 +@property(nonatomic, assign) BOOL allowsBackgroundLocationUpdates; + +///指定单次定位超时时间,默认为10s。最小值是2s。注意单次定位请求前设置。注意: 单次定位超时时间从确定了定位权限(非kCLAuthorizationStatusNotDetermined状态)后开始计算。 +@property(nonatomic, assign) NSInteger locationTimeout; + +///指定单次定位逆地理超时时间,默认为10s。最小值是2s。注意单次定位请求前设置。 +@property(nonatomic, assign) NSInteger reGeocodeTimeout; + +///连续定位是否返回逆地理信息,默认YES。 +@property (nonatomic, assign) BOOL locatingWithReGeocode; + +///定位sdk-v1.3之后,开发者可以选择是否需要最新版本rgc数据,1.9之后默认是需要YES;YES的情况下,定位sdk会实时返回最新的rgc数据,如城市变更等数据都会实时更新 +@property (nonatomic, assign) BOOL isNeedNewVersionReGeocode; + + +///开发者可以指定该用户的id,用于后续统一识别用户,便于查找问题 +@property(nonatomic, copy, nullable) NSString * userID; + +///返回定位精度等级,IOS14之后用户可以直接控制返回定位的精度等级,开发者可以通过这个值适配不同定位等级下的产品逻辑 +@property (nonatomic, readonly) BMKLAccuracyAuthorization accuracyAuthorization; + + +/** + * @brief 单次定位。如果当前正在连续定位,调用此方法将会失败,返回NO。\n该方法将会根据设定的 desiredAccuracy 去获取定位信息。如果获取的定位信息精确度低于 desiredAccuracy ,将会持续的等待定位信息,直到超时后通过completionBlock返回精度最高的定位信息。\n可以通过 stopUpdatingLocation 方法去取消正在进行的单次定位请求。 + * @param withReGeocode 是否带有逆地理信息(获取逆地理信息需要联网) + * @param withNetWorkState 是否带有移动热点识别状态(需要联网) + * @param completionBlock 单次定位完成后的Block + * @return 是否成功添加单次定位Request + */ +- (BOOL)requestLocationWithReGeocode:(BOOL)withReGeocode withNetworkState:(BOOL)withNetWorkState completionBlock:(BMKLocatingCompletionBlock _Nonnull)completionBlock; + +/** + * @brief 开始连续定位。调用此方法会cancel掉所有的单次定位请求。 + */ +- (void)startUpdatingLocation; + +/** + * @brief 停止连续定位。调用此方法会cancel掉所有的单次定位请求,可以用来取消单次定位。 + */ +- (void)stopUpdatingLocation; + +/** + * @brief 请求网络状态结果回调。 + */ +- (void)requestNetworkState; + + +/** + * @brief 该方法返回设备是否支持设备朝向事件回调。 + * @return 是否支持设备朝向事件回调 + */ ++ (BOOL)headingAvailable; + +/** + * @brief 该方法为BMKLocationManager开始设备朝向事件回调。 + */ +- (void)startUpdatingHeading; + +/** + * @brief 该方法为BMKLocationManager停止设备朝向事件回调。 + */ +- (void)stopUpdatingHeading; + +/** + * @brief 该方法为BMKLocationManager尝试使用高精度室内定位。在特定的室内场景下会有更高精度的定位回调,只在室内定位版本生效。 + */ +- (void)tryIndoorLocation; + +/** + * @brief 该方法为BMKLocationManager会关闭高精度室内定位,只在室内定位版本生效。 + */ +- (void)stopIndoorLocation; + + +/** + * @brief 转换为百度经纬度的坐标 + * @param coordinate 待转换的经纬度 + * @param srctype 待转换坐标系类型 + * @param destype 目标百度坐标系类型(bd09ll,bd09mc) + * @return 目标百度坐标系经纬度 + */ ++ (CLLocationCoordinate2D) BMKLocationCoordinateConvert:(CLLocationCoordinate2D) coordinate SrcType:(BMKLocationCoordinateType)srctype DesType:(BMKLocationCoordinateType)destype; + +/** + * @brief 判断目标经纬度是否在大陆以及港、澳地区。 + * @param coordinate 待判断的目标经纬度 + * @param coortype 待判断经纬度的坐标系类型 + * @return 是否在大陆以及港、澳地区 + */ ++ (BOOL) BMKLocationDataAvailableForCoordinate:(CLLocationCoordinate2D)coordinate withCoorType:(BMKLocationCoordinateType)coortype; + + + +/** + * @brief 返回当前定位权限 + * @return CLAuthorizationStatus 定位权限枚举类型 + */ +- (CLAuthorizationStatus)authorizationStatus; + + +/** + * @brief 如果你没有全量定位等级精度权限,利用该接口可以临时请求一次全量定位精度等级,系统会抛出弹框让用户确认是否授权app授予相应权限 + * @param purposeKey info.plist中NSLocationTemporaryUsageDescriptionDictionary定义的key,对应相应的value可以详细描述申请全量定位精度等级的原因 + * @param completion 回调是否 + * @return + */ +- (void)requestTemporaryFullAccuracyAuthorizationWithPurposeKey:(NSString * _Nonnull)purposeKey completion:(void(^ _Nullable)(NSError * _Nullable))completion API_AVAILABLE(ios(14.0)); + +/** + * @brief 请求一次全量定位精度等级 + * @param purposeKey info.plist中NSLocationTemporaryUsageDescriptionDictionary定义的key + * @return + */ +- (void)requestTemporaryFullAccuracyAuthorizationWithPurposeKey:(NSString * _Nonnull)purposeKey API_AVAILABLE(ios(14.0)); + + +@end + +#pragma mark - BMKLocationManagerDelegate + + +///BMKLocationManagerDelegate 协议定义了发生错误时的错误回调方法,连续定位的回调方法等。 +@protocol BMKLocationManagerDelegate + +@optional + +/** + * @brief 为了适配app store关于新的后台定位的审核机制(app store要求如果开发者只配置了使用期间定位,则代码中不能出现申请后台定位的逻辑),当开发者在plist配置NSLocationAlwaysUsageDescription或者NSLocationAlwaysAndWhenInUseUsageDescription时,需要在该delegate中调用后台定位api:[locationManager requestAlwaysAuthorization]。开发者如果只配置了NSLocationWhenInUseUsageDescription,且只有使用期间的定位需求,则无需在delegate中实现逻辑。 + * @param manager 定位 BMKLocationManager 类。 + * @param locationManager 系统 CLLocationManager 类 。 + * @since 1.6.0 + */ +- (void)BMKLocationManager:(BMKLocationManager * _Nonnull)manager doRequestAlwaysAuthorization:(CLLocationManager * _Nonnull)locationManager; + +/** + * @brief 当定位发生错误时,会调用代理的此方法。 + * @param manager 定位 BMKLocationManager 类。 + * @param error 返回的错误,参考 CLError 。 + */ +- (void)BMKLocationManager:(BMKLocationManager * _Nonnull)manager didFailWithError:(NSError * _Nullable)error; + + +/** + * @brief 连续定位回调函数。 + * @param manager 定位 BMKLocationManager 类。 + * @param location 定位结果,参考BMKLocation。 + * @param error 错误信息。 + */ +- (void)BMKLocationManager:(BMKLocationManager * _Nonnull)manager didUpdateLocation:(BMKLocation * _Nullable)location orError:(NSError * _Nullable)error; + +/** + * @brief 定位权限状态改变时回调函数 + * @param manager 定位 BMKLocationManager 类。 + * @param status 定位权限状态。 + */ +- (void)BMKLocationManager:(BMKLocationManager * _Nonnull)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status API_DEPRECATED_WITH_REPLACEMENT("-BMKLocationManagerDidChangeAuthorization", ios(4.2, 14.0)); + + +/** + * @brief authorizationStatus或者accuracyAuthorization有变化时回调函数 + * @param manager 定位 BMKLocationManager 类。 + */ +- (void)BMKLocationManagerDidChangeAuthorization:(BMKLocationManager * _Nonnull)manager; + + +/** + * @brief 该方法为BMKLocationManager提示需要设备校正回调方法。 + * @param manager 提供该定位结果的BMKLocationManager类的实例。 + */ +- (BOOL)BMKLocationManagerShouldDisplayHeadingCalibration:(BMKLocationManager * _Nonnull)manager; + +/** + * @brief 该方法为BMKLocationManager提供设备朝向的回调方法。 + * @param manager 提供该定位结果的BMKLocationManager类的实例 + * @param heading 设备的朝向结果 + */ +- (void)BMKLocationManager:(BMKLocationManager * _Nonnull)manager + didUpdateHeading:(CLHeading * _Nullable)heading; + +/** + * @brief 该方法为BMKLocationManager所在App系统网络状态改变的回调事件。 + * @param manager 提供该定位结果的BMKLocationManager类的实例 + * @param state 当前网络状态 + * @param error 错误信息 + */ +- (void)BMKLocationManager:(BMKLocationManager * _Nonnull)manager + didUpdateNetworkState:(BMKLocationNetworkState)state orError:(NSError * _Nullable)error; + + +@end + + diff --git a/Libs/BMKLocationKit.framework/Headers/BMKLocationPoi.h b/Libs/BMKLocationKit.framework/Headers/BMKLocationPoi.h new file mode 100644 index 0000000..246316b --- /dev/null +++ b/Libs/BMKLocationKit.framework/Headers/BMKLocationPoi.h @@ -0,0 +1,42 @@ +// +// BMKLocationPoi.h +// BMKLocationKit +// +// Created by baidu on 2017/3/2. +// Copyright © 2017年 baidu. All rights reserved. +// + + +///描述Poi各属性 +@interface BMKLocationPoi : NSObject + +///BMKLocationPoi的id属性 +@property(nonatomic, copy, readonly) NSString *uid; + +///BMKLocationPoi的名字属性 +@property(nonatomic, copy, readonly) NSString *name; + +///BMKLocationPoi的标签属性 +@property(nonatomic, copy, readonly) NSString *tags; + +///BMKLocationPoi的地址属性 +@property(nonatomic, copy, readonly) NSString *addr; + +///BMKLocationPoi的可信度 +@property(nonatomic, assign, readonly) float relaiability; + + +/** + * @brief 通过NSDictionary初始化方法一 + */ +- (id)initWithDictionary:(NSDictionary *)dictionary; + + +/** + * @brief 通过NSDictionary初始化方法二 + */ +- (id)initWithTwoDictionary:(NSDictionary *)dictionary; + +@end + + diff --git a/Libs/BMKLocationKit.framework/Headers/BMKLocationPoiRegion.h b/Libs/BMKLocationKit.framework/Headers/BMKLocationPoiRegion.h new file mode 100644 index 0000000..f6edaf3 --- /dev/null +++ b/Libs/BMKLocationKit.framework/Headers/BMKLocationPoiRegion.h @@ -0,0 +1,35 @@ +// +// BMKLocationPoiRegion.h +// LocationComponent +// +// Created by Jiang,Fangsheng on 2019/9/4. +// Copyright © 2019 baidu. All rights reserved. +// + +#ifndef BMKLocationPoiRegion_h +#define BMKLocationPoiRegion_h + + +///描述PoiRegion各属性 +@interface BMKLocationPoiRegion : NSObject + +///BMKLocationPoiRegion的方向属性,如『内』、『外』 +@property(nonatomic, copy, readonly) NSString *directionDesc; + +///BMKLocationPoiRegion的名字属性 +@property(nonatomic, copy, readonly) NSString *name; + +///BMKLocationPoiRegion的标签属性 +@property(nonatomic, copy, readonly) NSString *tags; + + + +/** + * @brief 通过NSDictionary初始化方法一 + */ +- (id)initWithDictionary:(NSDictionary *)dictionary; + + +@end + +#endif /* BMKLocationPoiRegion_h */ diff --git a/Libs/BMKLocationKit.framework/Headers/BMKLocationReGeocode.h b/Libs/BMKLocationKit.framework/Headers/BMKLocationReGeocode.h new file mode 100644 index 0000000..2c51c20 --- /dev/null +++ b/Libs/BMKLocationKit.framework/Headers/BMKLocationReGeocode.h @@ -0,0 +1,67 @@ +// +// BMKLocationReGeocode.h +// BMKLocationKit +// +// Created by baidu on 2017/3/2. +// Copyright © 2017年 baidu. All rights reserved. +// +#import +#import "BMKLocationPoi.h" +#import "BMKLocationPoiRegion.h" + +///BMKLocationReGeocode类。描述跟地址有关的信息. +@interface BMKLocationReGeocode : NSObject + +///国家名字属性 +@property(nonatomic, copy, readonly) NSString *country; + +///国家编码属性 +@property(nonatomic, copy, readonly) NSString *countryCode; + +///省份名字属性 +@property(nonatomic, copy, readonly) NSString *province; + +///城市名字属性 +@property(nonatomic, copy, readonly) NSString *city; + +///区名字属性 +@property(nonatomic, copy, readonly) NSString *district; + +///乡镇名字属性 +@property(nonatomic, copy, readonly) NSString *town; + +///街道名字属性 +@property(nonatomic, copy, readonly) NSString *street; + +///街道号码属性 +@property(nonatomic, copy, readonly) NSString *streetNumber; + +///城市编码属性 +@property(nonatomic, copy, readonly) NSString *cityCode; + +///行政区划编码属性 +@property(nonatomic, copy, readonly) NSString *adCode; + + +///位置语义化结果的定位点在什么地方周围的描述信息 +@property(nonatomic, copy, readonly) NSString *locationDescribe; + + +///位置语义化结果的属性,该定位点周围的poi列表信息 +@property(nonatomic, retain, readonly) NSArray *poiList; + +///位置语义化结果的定位点在什么地方周围的描述信息 +@property(nonatomic, strong, readonly) BMKLocationPoiRegion *poiRegion; + +/** + * @brief 通过NSData初始化方法 + */ +- (id)initWithReGeocodeString:(NSData *)reGeocodeString; + + +/** + * @brief 通过JSON初始化方法 + */ +- (id)initWithJsonString:(NSData *)jsonString withHighAccuracy:(BOOL)highAcc; + +@end diff --git a/Libs/BMKLocationKit.framework/readme.txt b/Libs/BMKLocationKit.framework/readme.txt new file mode 100644 index 0000000..b010daa --- /dev/null +++ b/Libs/BMKLocationKit.framework/readme.txt @@ -0,0 +1,11 @@ +1、版本: + 百度地图iOS定位SDK v2.0.0 + +2、是否带IDFA: + 是 + +3、是否为Bitcode: + 是 + +4、集成方法: + http://lbsyun.baidu.com/index.php?title=ios-locsdk diff --git a/Libs/DCBUniPlugin.framework/DCBDocumentListCell.nib b/Libs/DCBUniPlugin.framework/DCBDocumentListCell.nib new file mode 100644 index 0000000..ea71f48 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBDocumentListCell.nib differ diff --git a/Libs/DCBUniPlugin.framework/DCBPhoneAlertView.nib b/Libs/DCBUniPlugin.framework/DCBPhoneAlertView.nib new file mode 100644 index 0000000..ae13076 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBPhoneAlertView.nib differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPlugin b/Libs/DCBUniPlugin.framework/DCBUniPlugin new file mode 100644 index 0000000..9f206ef Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPlugin differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/Root.plist b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/Root.plist new file mode 100644 index 0000000..b1b6fea --- /dev/null +++ b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/Root.plist @@ -0,0 +1,61 @@ + + + + + StringsTable + Root + PreferenceSpecifiers + + + Type + PSGroupSpecifier + Title + Group + + + Type + PSTextFieldSpecifier + Title + Name + Key + name_preference + DefaultValue + + IsSecure + + KeyboardType + Alphabet + AutocapitalizationType + None + AutocorrectionType + No + + + Type + PSToggleSwitchSpecifier + Title + Enabled + Key + enabled_preference + DefaultValue + + + + Type + PSSliderSpecifier + Key + slider_preference + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + MinimumValueImage + + MaximumValueImage + + + + + diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/abnormal_icon@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/abnormal_icon@2x.png new file mode 100644 index 0000000..aec9d0a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/abnormal_icon@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/abnormal_icon@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/abnormal_icon@3x.png new file mode 100644 index 0000000..10e68ed Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/abnormal_icon@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/btn_takephoto_normal@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/btn_takephoto_normal@2x.png new file mode 100644 index 0000000..d63df51 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/btn_takephoto_normal@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/btn_takephoto_normal@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/btn_takephoto_normal@3x.png new file mode 100644 index 0000000..3de1685 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/btn_takephoto_normal@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/en.lproj/Root.strings b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/en.lproj/Root.strings new file mode 100644 index 0000000..8cd87b9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/en.lproj/Root.strings differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/error@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/error@2x.png new file mode 100644 index 0000000..2798a6d Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/error@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/error@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/error@3x.png new file mode 100644 index 0000000..646d943 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/error@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/file_icon.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/file_icon.png new file mode 100644 index 0000000..56046c4 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/file_icon.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_close_icon@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_close_icon@2x.png new file mode 100644 index 0000000..ac42f8c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_close_icon@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_close_icon@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_close_icon@3x.png new file mode 100644 index 0000000..bd8a952 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_close_icon@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_open_icon@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_open_icon@2x.png new file mode 100644 index 0000000..5b62b1e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_open_icon@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_open_icon@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_open_icon@3x.png new file mode 100644 index 0000000..4fd606e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/flash_open_icon@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/nav_back@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/nav_back@2x.png new file mode 100644 index 0000000..c6d2bd9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/nav_back@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/nav_back@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/nav_back@3x.png new file mode 100644 index 0000000..9d4cccd Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/nav_back@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_data_common@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_data_common@2x.png new file mode 100644 index 0000000..9a69869 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_data_common@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_data_common@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_data_common@3x.png new file mode 100644 index 0000000..5f5042b Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_data_common@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_network@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_network@2x.png new file mode 100644 index 0000000..10275ba Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_network@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_network@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_network@3x.png new file mode 100644 index 0000000..129af3c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/no_network@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/paid_chuli_icon@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/paid_chuli_icon@2x.png new file mode 100644 index 0000000..c85732f Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/paid_chuli_icon@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/paid_chuli_icon@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/paid_chuli_icon@3x.png new file mode 100644 index 0000000..a915b20 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/paid_chuli_icon@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_back_icon@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_back_icon@2x.png new file mode 100644 index 0000000..cfeb142 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_back_icon@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_back_icon@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_back_icon@3x.png new file mode 100644 index 0000000..d77d17e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_back_icon@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_cover_img@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_cover_img@2x.png new file mode 100644 index 0000000..ced0922 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_cover_img@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_cover_img@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_cover_img@3x.png new file mode 100644 index 0000000..df67fd0 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/photo_cover_img@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/server_failure@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/server_failure@2x.png new file mode 100644 index 0000000..892f0f5 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/server_failure@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/server_failure@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/server_failure@3x.png new file mode 100644 index 0000000..b0fffe9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/server_failure@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/succeed@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/succeed@2x.png new file mode 100644 index 0000000..aeab30c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/succeed@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/succeed@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/succeed@3x.png new file mode 100644 index 0000000..a1318c6 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/succeed@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/thirdApp_login_tip@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/thirdApp_login_tip@2x.png new file mode 100644 index 0000000..762aee5 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/thirdApp_login_tip@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/thirdApp_login_tip@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/thirdApp_login_tip@3x.png new file mode 100644 index 0000000..5a54e54 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/thirdApp_login_tip@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_close_normal@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_close_normal@2x.png new file mode 100644 index 0000000..3d6df7e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_close_normal@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_close_normal@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_close_normal@3x.png new file mode 100644 index 0000000..29b30e2 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_close_normal@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_more_normal@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_more_normal@2x.png new file mode 100644 index 0000000..fd34adf Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_more_normal@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_more_normal@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_more_normal@3x.png new file mode 100644 index 0000000..827d094 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_more_normal@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_nav_back@2x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_nav_back@2x.png new file mode 100644 index 0000000..c6d2bd9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_nav_back@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_nav_back@3x.png b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_nav_back@3x.png new file mode 100644 index 0000000..9d4cccd Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBUniPluginResource.bundle/web_nav_back@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/DCBVoiceRecordView.nib/objects-11.0+.nib b/Libs/DCBUniPlugin.framework/DCBVoiceRecordView.nib/objects-11.0+.nib new file mode 100644 index 0000000..48f457a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBVoiceRecordView.nib/objects-11.0+.nib differ diff --git a/Libs/DCBUniPlugin.framework/DCBVoiceRecordView.nib/runtime.nib b/Libs/DCBUniPlugin.framework/DCBVoiceRecordView.nib/runtime.nib new file mode 100644 index 0000000..86d0322 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DCBVoiceRecordView.nib/runtime.nib differ diff --git a/Libs/DCBUniPlugin.framework/DcbPhotoTakeController.nib b/Libs/DCBUniPlugin.framework/DcbPhotoTakeController.nib new file mode 100644 index 0000000..919f459 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/DcbPhotoTakeController.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXCameraBottomView.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXCameraBottomView.nib new file mode 100644 index 0000000..e400ad2 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXCameraBottomView.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletContentViewCell.nib/objects-12.3+.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletContentViewCell.nib/objects-12.3+.nib new file mode 100644 index 0000000..13e253a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletContentViewCell.nib/objects-12.3+.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletContentViewCell.nib/runtime.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletContentViewCell.nib/runtime.nib new file mode 100644 index 0000000..4295b69 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletContentViewCell.nib/runtime.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletListView.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletListView.nib new file mode 100644 index 0000000..3881913 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletListView.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletPreviewView.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletPreviewView.nib new file mode 100644 index 0000000..1cfc068 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditChartletPreviewView.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditClippingToolBar.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditClippingToolBar.nib new file mode 100644 index 0000000..a682435 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditClippingToolBar.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorSizeView.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorSizeView.nib new file mode 100644 index 0000000..64d16e6 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorSizeView.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorView.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorView.nib new file mode 100644 index 0000000..5bebd7c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorView.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorViewCell.nib/objects-12.3+.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorViewCell.nib/objects-12.3+.nib new file mode 100644 index 0000000..d52c87c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorViewCell.nib/objects-12.3+.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorViewCell.nib/runtime.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorViewCell.nib/runtime.nib new file mode 100644 index 0000000..0712db8 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditGraffitiColorViewCell.nib/runtime.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditMosaicView.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditMosaicView.nib new file mode 100644 index 0000000..30f6ba4 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditMosaicView.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditStickerTrashView.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditStickerTrashView.nib new file mode 100644 index 0000000..4821f2c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditStickerTrashView.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditTextView.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditTextView.nib new file mode 100644 index 0000000..cc16500 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HXPhotoEditTextView.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HX_PhotoEditBottomView.nib b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HX_PhotoEditBottomView.nib new file mode 100644 index 0000000..2ce692f Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/HX_PhotoEditBottomView.nib differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/en.lproj/Localizable.strings b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/en.lproj/Localizable.strings new file mode 100644 index 0000000..0dd3ce3 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/en.lproj/Localizable.strings differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_alert_failed@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_alert_failed@2x.png new file mode 100755 index 0000000..ee22668 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_alert_failed@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_alert_failed@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_alert_failed@3x.png new file mode 100755 index 0000000..212e9db Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_alert_failed@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_down_back@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_down_back@2x.png new file mode 100755 index 0000000..b9ebebd Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_down_back@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_down_back@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_down_back@3x.png new file mode 100755 index 0000000..c30473b Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_down_back@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_focusbox@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_focusbox@2x.png new file mode 100644 index 0000000..bbe5ba7 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_focusbox@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_focusbox@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_focusbox@3x.png new file mode 100644 index 0000000..cc6a56c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_focusbox@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_overturn@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_overturn@2x.png new file mode 100755 index 0000000..b927f09 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_overturn@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_overturn@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_overturn@3x.png new file mode 100755 index 0000000..05dcbe2 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_overturn@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_video_crop@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_video_crop@2x.png new file mode 100755 index 0000000..07b437f Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_video_crop@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_video_crop@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_video_crop@3x.png new file mode 100755 index 0000000..821d0be Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_camera_video_crop@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_delete@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_delete@2x.png new file mode 100755 index 0000000..55289c2 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_delete@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_delete@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_delete@3x.png new file mode 100755 index 0000000..eaab78f Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_delete@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default@2x.png new file mode 100755 index 0000000..f058b20 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default@3x.png new file mode 100755 index 0000000..af55f8b Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default_2@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default_2@2x.png new file mode 100755 index 0000000..9519092 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default_2@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default_2@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default_2@3x.png new file mode 100755 index 0000000..492efa2 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default_2@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_selected@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_selected@2x.png new file mode 100755 index 0000000..a4de2be Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_selected@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_selected@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_selected@3x.png new file mode 100755 index 0000000..32c9562 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_guide_check_box_selected@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_photo_photograph@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_photo_photograph@2x.png new file mode 100755 index 0000000..0b40c55 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_photo_photograph@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_photo_photograph@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_photo_photograph@3x.png new file mode 100755 index 0000000..b6f5635 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_compose_photo_photograph@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_faceu_cancel@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_faceu_cancel@2x.png new file mode 100755 index 0000000..166f4ae Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_faceu_cancel@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_faceu_cancel@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_faceu_cancel@3x.png new file mode 100644 index 0000000..896fd8f Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_faceu_cancel@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_dark_img@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_dark_img@2x.png new file mode 100755 index 0000000..e526ae9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_dark_img@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_dark_img@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_dark_img@3x.png new file mode 100755 index 0000000..3e9b3e8 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_dark_img@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_img@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_img@2x.png new file mode 100755 index 0000000..0346e92 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_img@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_img@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_img@3x.png new file mode 100755 index 0000000..f20f07e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_list_add_img@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_multimedia_videocard_play@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_multimedia_videocard_play@2x.png new file mode 100755 index 0000000..e3b38b2 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_multimedia_videocard_play@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_multimedia_videocard_play@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_multimedia_videocard_play@3x.png new file mode 100755 index 0000000..4907936 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_multimedia_videocard_play@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_arrow_down@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_arrow_down@2x.png new file mode 100644 index 0000000..9f22cf4 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_arrow_down@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_arrow_down@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_arrow_down@3x.png new file mode 100755 index 0000000..16970d3 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_arrow_down@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_title_down@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_title_down@2x.png new file mode 100755 index 0000000..59f2559 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_title_down@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_title_down@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_title_down@3x.png new file mode 100755 index 0000000..4ff288c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_nav_title_down@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal@2x.png new file mode 100755 index 0000000..ed72f24 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal@3x.png new file mode 100755 index 0000000..bc6664a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal_wx@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal_wx@2x.png new file mode 100755 index 0000000..ea69208 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal_wx@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal_wx@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal_wx@3x.png new file mode 100755 index 0000000..728690e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_normal_wx@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected@2x.png new file mode 100755 index 0000000..c19dd31 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected@3x.png new file mode 100755 index 0000000..6077d80 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected_wx@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected_wx@2x.png new file mode 100755 index 0000000..0f101e7 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected_wx@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected_wx@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected_wx@3x.png new file mode 100755 index 0000000..edc7aed Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_original_selected_wx@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_huanyuan@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_huanyuan@2x.png new file mode 100755 index 0000000..45e36b7 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_huanyuan@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_huanyuan@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_huanyuan@3x.png new file mode 100755 index 0000000..b4a2c25 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_huanyuan@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_xuanzhuan@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_xuanzhuan@2x.png new file mode 100755 index 0000000..3e98c1b Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_xuanzhuan@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_xuanzhuan@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_xuanzhuan@3x.png new file mode 100755 index 0000000..4dba449 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_paizhao_bianji_xuanzhuan@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_asset_video_icon@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_asset_video_icon@2x.png new file mode 100755 index 0000000..0913225 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_asset_video_icon@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_asset_video_icon@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_asset_video_icon@3x.png new file mode 100755 index 0000000..edafdde Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_asset_video_icon@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_back@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_back@2x.png new file mode 100755 index 0000000..438520d Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_back@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_back@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_back@3x.png new file mode 100755 index 0000000..602b020 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_back@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_cancel@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_cancel@2x.png new file mode 100755 index 0000000..ed05037 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_cancel@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_cancel@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_cancel@3x.png new file mode 100755 index 0000000..e4c0fbd Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_cancel@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_confirm@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_confirm@2x.png new file mode 100755 index 0000000..8ea302d Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_confirm@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_confirm@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_confirm@3x.png new file mode 100755 index 0000000..f0a54c2 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_confirm@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_free@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_free@2x.png new file mode 100755 index 0000000..89e054c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_free@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_free@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_free@3x.png new file mode 100755 index 0000000..4062fb3 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_free@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_horizontally@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_horizontally@2x.png new file mode 100755 index 0000000..bcb6265 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_horizontally@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_horizontally@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_horizontally@3x.png new file mode 100755 index 0000000..8c6274b Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_horizontally@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_vertically@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_vertically@2x.png new file mode 100755 index 0000000..f74242b Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_vertically@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_vertically@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_vertically@3x.png new file mode 100755 index 0000000..33e70e8 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_vertically@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_rotate@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_rotate@2x.png new file mode 100755 index 0000000..9ad6432 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_rotate@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_rotate@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_rotate@3x.png new file mode 100755 index 0000000..4b8142e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_clip_rotate@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_graffiti_size_backgroud@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_graffiti_size_backgroud@2x.png new file mode 100755 index 0000000..9d4c215 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_graffiti_size_backgroud@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_graffiti_size_backgroud@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_graffiti_size_backgroud@3x.png new file mode 100755 index 0000000..29bb3b5 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_graffiti_size_backgroud@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_brush.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_brush.png new file mode 100644 index 0000000..7d92174 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_brush.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_color@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_color@2x.png new file mode 100755 index 0000000..165ba42 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_color@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_color@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_color@3x.png new file mode 100755 index 0000000..d544c84 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_color@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_normal@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_normal@2x.png new file mode 100755 index 0000000..d92ff5a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_normal@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_normal@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_normal@3x.png new file mode 100755 index 0000000..683143e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_normal@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_pull_down@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_pull_down@2x.png new file mode 100755 index 0000000..a35bd1e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_pull_down@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_pull_down@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_pull_down@3x.png new file mode 100755 index 0000000..1f40003 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_pull_down@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_repeal@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_repeal@2x.png new file mode 100755 index 0000000..d074db3 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_repeal@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_repeal@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_repeal@3x.png new file mode 100755 index 0000000..accb40c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_repeal@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_show_tip@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_show_tip@2x.png new file mode 100755 index 0000000..de1705f Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_show_tip@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_show_tip@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_show_tip@3x.png new file mode 100755 index 0000000..4167a25 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_show_tip@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_ normal@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_ normal@2x.png new file mode 100755 index 0000000..06a4b2c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_ normal@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_ normal@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_ normal@3x.png new file mode 100755 index 0000000..b3f4fa1 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_ normal@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_selected@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_selected@2x.png new file mode 100755 index 0000000..36b9af2 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_selected@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_selected@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_selected@3x.png new file mode 100755 index 0000000..3f05d61 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_text_selected@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_clip@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_clip@2x.png new file mode 100755 index 0000000..61adf7a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_clip@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_clip@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_clip@3x.png new file mode 100755 index 0000000..29ea7d3 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_clip@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_emoji@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_emoji@2x.png new file mode 100755 index 0000000..e8db5ed Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_emoji@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_emoji@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_emoji@3x.png new file mode 100755 index 0000000..fbec593 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_emoji@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_graffiti@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_graffiti@2x.png new file mode 100755 index 0000000..8c1cf68 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_graffiti@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_graffiti@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_graffiti@3x.png new file mode 100755 index 0000000..4e5632a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_graffiti@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_mosaic@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_mosaic@2x.png new file mode 100755 index 0000000..6576fc2 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_mosaic@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_mosaic@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_mosaic@3x.png new file mode 100755 index 0000000..c6e1b5b Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_mosaic@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_text@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_text@2x.png new file mode 100755 index 0000000..bbb226c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_text@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_text@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_text@3x.png new file mode 100755 index 0000000..31fbef4 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_tools_text@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_close@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_close@2x.png new file mode 100755 index 0000000..9fa9709 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_close@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_close@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_close@3x.png new file mode 100755 index 0000000..ce1043c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_close@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_open@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_open@2x.png new file mode 100755 index 0000000..54bf593 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_open@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_open@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_open@3x.png new file mode 100755 index 0000000..df2d402 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_photo_edit_trash_open@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_close@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_close@2x.png new file mode 100755 index 0000000..fd6822b Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_close@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_close@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_close@3x.png new file mode 100755 index 0000000..aa2da47 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_close@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_delete@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_delete@2x.png new file mode 100755 index 0000000..7236bcc Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_delete@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_delete@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_delete@3x.png new file mode 100755 index 0000000..5efc6ba Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_preview_dark_delete@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_qz_photolist_picture_fail@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_qz_photolist_picture_fail@2x.png new file mode 100755 index 0000000..4aab91b Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_qz_photolist_picture_fail@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_qz_photolist_picture_fail@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_qz_photolist_picture_fail@3x.png new file mode 100755 index 0000000..2c2dfcd Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_qz_photolist_picture_fail@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_chongya.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_chongya.png new file mode 100755 index 0000000..c9c1d81 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_chongya.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_cover@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_cover@2x.png new file mode 100755 index 0000000..bb22f25 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_cover@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_cover@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_cover@3x.png new file mode 100755 index 0000000..455f840 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_cover@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_haoxinqing.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_haoxinqing.png new file mode 100755 index 0000000..3cb0b1c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_haoxinqing.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_housailei.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_housailei.png new file mode 100755 index 0000000..167a29f Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_housailei.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_jintianfenkeai.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_jintianfenkeai.png new file mode 100755 index 0000000..c88fdbf Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_jintianfenkeai.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_keaibiaoq.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_keaibiaoq.png new file mode 100755 index 0000000..53979c2 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_keaibiaoq.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_kehaixing.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_kehaixing.png new file mode 100755 index 0000000..895649c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_kehaixing.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_saihong.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_saihong.png new file mode 100755 index 0000000..78851ce Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_saihong.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_wow.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_wow.png new file mode 100755 index 0000000..b11af52 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_wow.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_woxiangfazipai.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_woxiangfazipai.png new file mode 100755 index 0000000..ed43f60 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_woxiangfazipai.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_xiaochuzhujiao.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_xiaochuzhujiao.png new file mode 100755 index 0000000..3533498 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_xiaochuzhujiao.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_yuanqimanman.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_yuanqimanman.png new file mode 100755 index 0000000..ede0ab6 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_yuanqimanman.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_yuanqishaonv.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_yuanqishaonv.png new file mode 100755 index 0000000..ac35240 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_yuanqishaonv.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_zaizaijia.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_zaizaijia.png new file mode 100755 index 0000000..acb8a6c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_sticker_zaizaijia.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_takePhoto@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_takePhoto@2x.png new file mode 100755 index 0000000..20e58c9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_takePhoto@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_takePhoto@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_takePhoto@3x.png new file mode 100755 index 0000000..cd8a172 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_takePhoto@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_ pause@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_ pause@2x.png new file mode 100755 index 0000000..39c6b3d Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_ pause@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_ pause@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_ pause@3x.png new file mode 100755 index 0000000..725a237 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_ pause@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_play@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_play@2x.png new file mode 100755 index 0000000..23be213 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_play@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_play@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_play@3x.png new file mode 100755 index 0000000..7ec4dee Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_play@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_progress@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_progress@2x.png new file mode 100755 index 0000000..7f01e4b Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_progress@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_progress@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_progress@3x.png new file mode 100755 index 0000000..98f4e8a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_video_progress@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_videoedit_left@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_videoedit_left@2x.png new file mode 100755 index 0000000..32bce35 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_videoedit_left@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_videoedit_right@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_videoedit_right@2x.png new file mode 100755 index 0000000..32bce35 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_videoedit_right@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_xiangce_xuanbili@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_xiangce_xuanbili@2x.png new file mode 100644 index 0000000..7c2752f Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_xiangce_xuanbili@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_xiangce_xuanbili@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_xiangce_xuanbili@3x.png new file mode 100644 index 0000000..f9d94a5 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_xiangce_xuanbili@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yundian_tupian@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yundian_tupian@2x.png new file mode 100755 index 0000000..db8cc26 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yundian_tupian@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yundian_tupian@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yundian_tupian@3x.png new file mode 100644 index 0000000..2acbcc9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yundian_tupian@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yunxiazai@2x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yunxiazai@2x.png new file mode 100755 index 0000000..20e50b7 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yunxiazai@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yunxiazai@3x.png b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yunxiazai@3x.png new file mode 100755 index 0000000..badd5df Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/images/hx_yunxiazai@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/ja.lproj/Localizable.strings b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/ja.lproj/Localizable.strings new file mode 100644 index 0000000..df58af8 --- /dev/null +++ b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/ja.lproj/Localizable.strings @@ -0,0 +1,134 @@ +"下一步" = "次の段階"; +"当前没有可编辑的资源" = "現在編集できる資源がない"; +"当前没有可删除的资源" = "現在、削除可能な資源がない"; +"确定删除这张照片吗?" = "この写真を削除しますか?"; +"确定删除这个视频吗?" = "このビデオを削除しますか?"; +"删除" = "削除"; +"下载失败,请重试!" = "ダウンロードが失敗したので、再試してください!"; +"编辑" = "編集"; +"正在下载iCloud上的资源" = "icloud上のリソースをダウンロードしています"; +"原始值" = "原生値"; +"正方形" = "正方形"; +"提示" = "提示"; +"是否删除此照片" = "この写真を削除するかどうか"; +"还原" = "还元"; +"选择" = "選択"; +"旋转" = "回転"; +"选择照片时不能选择视频" = "写真を選ぶ時は動画を選択できない"; +"没有照片可选!" = "写真がない!"; +"张照片" = "枚:写真"; +"个视频" = "本:ビデオ"; +"Photos" = "枚:写真"; +"Photo" = "枚:写真"; +"Videos" = "本:ビデオ"; +"Video" = "本:ビデオ"; +"今天" = "今日"; +"昨天" = "昨日"; +"返回"= "戻る"; +"取消" = "キャンセル"; +"预览" = "プレビュー"; +"原图" = "原図"; +"设置" = "設置"; +"确定" = "確定"; +"完成" = "完成"; +"关闭" = "閉鎖"; +"拍摄" = "撮影"; +"拍摄失败" = "撮影に失敗する"; +"裁剪" = "裁断"; +"抱歉" = "申し訳ない"; +"重拍" = "リメイク"; +"相机" = "カメラ"; +"照片" = "写真"; +"视频" = "ビデオ"; +"相册" = "アルバム"; +"加载中" = "ローディング中"; +"处理中" = "処理中"; +"点击拍照" = "写真をクリックする"; +"长按录像" = "ビデオをながす"; +"点击拍照,长按录像" = "写真をクリックして、長時間録画します"; +"处理失败,请重试!" = "失敗を処理して,もう一度試してください!"; +"无法使用相机!" = "カメラが使えない!"; +"照片正在下载" = "写真はダウンロードしています"; +"已达最大数!" = "最も大きな数に達した!"; +"照片已达最大数!" = "写真は既に最も多い!"; +"视频已达最大数!" = "ビデオは既に一番多くなっている!"; +"最多只能选择%ld张图片" = "せいぜい%ld枚しか選べない"; +"最多只能选择%ld个视频" = "最大%ld個しか選択できない"; +"最多只能选择%ld个" = "せいぜい%ld個しか选択できない"; +"图片不能和视频同时选择" = "写真は動画と同時に選択できない"; +"视频不能和图片同时选择" = "ビデオは写真と同時に選択できない"; +"视频少于%ld秒,无法选择" = "ビデオは%ld秒以下で、選べない"; +"视频大于%ld秒,无法选择" = "ビデオは%ld秒より大きくて選択できません"; +"录制时间少于%.0f秒" = "録画時間は%.0f秒以下だ"; +"请在设置-隐私-相机中允许访问相机" = "設置してください-プライバシー-カメラはカメラを訪問できる"; +"无法访问照片\n请点击这里前往设置中允许访问照片" = "写真にアクセスできない\nここをクリックして写真のアクセスを許可します"; +"无法使用相机" = "カメラが使えない"; +"无法访问照片,请前往设置中允许\n访问照片" = "写真にアクセスできない,設置中に許可してください\n写真を訪問する"; +"无法使用麦克风" = "マイクを使用できない"; +"请在设置-隐私-相机中允许访问麦克风" = "設置してください-プライバシー-カメラはマイクロフォンのアクセスを許す"; +"视频保存失败!" = "ビデオ保存の失敗!"; +"照片保存失败!" = "写真保存に失敗する!"; +"保存失败,无法访问照片\n请前往设置中允许访问照片" = "失敗を保存する,写真にアクセスできない\n設置中に許可してください\n写真を訪問する"; +"没有可选的照片!" = "選んだ写真はない!"; +"视频已被删除!" = "動画は削除された!"; +"尚未从iCloud上下载,请至系统相册下载完毕后选择" = "まだicloudからダウンロードしていない,システムアルバムにダウンロードしてから選択してください"; +"今天" = "今日"; +"昨天" = "昨日"; +"麦克风添加失败,录制视频会没有声音哦!" = "マイクに失敗を加える,ビデオを録画したら音がないよ!"; +"点击录制" = "録音をクリックする"; +"%.0f秒内的视频无效哦~" = "%.0f秒内の映像无効ですよ~"; +"录制视频失败!" = "ビデオの録画失敗!"; +"继续录制" = "録音を継続する"; +"无法访问相册" = "写真を訪問できない"; +"请在设置-隐私-相册中允许访问相册" = "設置してください-プライバシー-アルバムにはアクセス・アルバムが可能です"; +"下载失败" = "ダウンロード失敗"; +"所有照片" = "すべての写真"; +"相机胶卷" = "カメラロール"; +"编辑后,GIF将会变为静态图,确定继续吗?" = "編集後gifは静的図になり、継続が决定しますか?"; +"编辑后,LivePhoto将会变为静态图,确定继续吗?" = "編集後livephotoは静的な図に変わりますが継続が決定されますか?"; +"图片尺寸过小!" = "画像サイズが小さい!"; +"获取视频失败!" = "ビデオ取得に失败!"; +"确定取消吗?" = "キャンセルを確定しますか?"; +"继续" = "引き続き"; +"获取" = "取得"; +"处理失败,请重试" = "処理に失敗したので,もう一度試してください"; +"选择照片时不能选择视频" = "写真を選ぶ時はビデオは選択できない"; +"选择视频时不能选择照片" = "ビデオを選択する時は写真は選択できない"; +"只能选择%ld秒内的视频,需进行编辑" = "%ld秒以内の動画しか選択できず、編集しなければならない"; +"从手机相册选择" = "携帯電話のアルバムから選びます"; +"正在下载网络图片,请稍等" = "web画像をダウンロードしていますので、少々お待ちください"; +"正在获取照片大小,请稍等" = "写真サイズを取得していますので、少々お待ちください"; +"照片大小超过最大限制%@" = "写真の大きさは限界を超えている %@"; +"视频大小超过最大限制%@" = "ビデオサイズは最大制限を超える %@"; +"照片或视频" = "写真やビデオ"; +"轻触拍照" = "タッチ写真"; +"按住摄像" = "写真を押さえる"; +"轻触拍照,按住摄像" = "軽く写真を撮って、写真を押さえます。"; +"拍照" = "写真を撮る"; +"摄像" = "カメラ"; +"无法访问所有照片\n请点击这里前往设置中允许访问所有照片" = "すべての写真にアクセスできませんでした\nここをクリックして設定中にすべての写真にアクセスできます。"; +"无法访问所有照片" = "すべての写真にアクセスできませんでした"; +"请在设置-隐私-相册中允许访问所有照片" = "設定-プライバシー-アルバムですべての写真にアクセスできます"; +"要删除这张照片吗?" = "この写真を削除しますか?"; +"要删除此视频吗?" = "このビデオを削除しますか?"; +"自由" = "自由"; +"松手即可删除" = "削除してみましょう"; +"拖动到此处删除" = "ここにドラッグして削除"; +"仅可访问部分照片,建议开启「所有照片」" = "일부 사진만 액세스할 수 있습니다. 모든 사진을 여는 것이 좋습니다."; +"去设置" = "세트로 이동"; +"更多" = "もっと"; + +"HXAlbumCameraRoll" = "カメラロール"; +"HXAlbumPanoramas" = "パノラマ"; +"HXAlbumVideos" = "ビデオ"; +"HXAlbumFavorites" = "お気に入り"; +"HXAlbumTimelapses" = "タイムラプス"; +"HXAlbumRecents" = "最近のプロジェクト"; +"HXAlbumRecentlyAdded" = "最後に追加した項目"; +"HXAlbumBursts" = "バースト"; +"HXAlbumSlomoVideos" = "スローモーション"; +"HXAlbumSelfPortraits" = "セルフイー"; +"HXAlbumScreenshots" = "スクリーンショット"; +"HXAlbumDepthEffect" = "ポートレート"; +"HXAlbumLivePhotos" = "実況写真"; +"HXAlbumAnimated" = "アニメーション"; diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/ko.lproj/Localizable.strings b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/ko.lproj/Localizable.strings new file mode 100644 index 0000000..d34f5fb --- /dev/null +++ b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/ko.lproj/Localizable.strings @@ -0,0 +1,135 @@ +"下一步" = "다음 단계"; +"当前没有可编辑的资源" = "현재 편집 할만 한 자원이 없다"; +"当前没有可删除的资源" = "지금은 삭제 할만 한 자원이 없다"; +"确定删除这张照片吗?" = "이 사진을 삭제 할까요?"; +"确定删除这个视频吗?" = "이 동영상 삭제 할까요?"; +"删除" = "삭제"; +"下载失败,请重试!" = "실패를 다운로드 할 테니, 다시 시험 해 보십시오!"; +"编辑" = "편집"; +"正在下载iCloud上的资源" = "iCloud의 자원을 다운로드하고 있다"; +"原始值" = "원시적인 가치"; +"正方形" = "정방형"; +"提示" = "제시"; +"是否删除此照片" = "이 사진은 삭제 여부"; +"还原" = "환원하다"; +"选择" = "선택"; +"旋转" = "회전"; +"选择照片时不能选择视频" = "사진을 선택 할 때는 동영상을 선택 할 수 없다"; +"没有照片可选!" = "사진 컷은 없어요!"; +"张照片" = "사진"; +"个视频" = "동영상"; +"Photos" = "사진"; +"Photo" = "사진"; +"Videos" = "동영상"; +"Video" = "동영상"; +"今天" = "오늘"; +"昨天" = "어제"; +"返回"= "귀환"; +"取消" = "취소"; +"预览" = "본"; +"原图" = "원본"; +"设置" = "설치"; +"确定" = "확정"; +"完成" = "완성"; +"关闭" = "폐쇄"; +"拍摄" = "촬영"; +"拍摄失败" = "촬영에 실패하다"; +"裁剪" = "맞 춤"; +"抱歉" = "죄 송"; +"重拍" = "다시 찍"; +"相机" = "카메라"; +"照片" = "사진"; +"视频" = "동영상"; +"相册" = "사진첩"; +"加载中" = "적재 중"; +"处理中" = "처리 중"; +"点击拍照" = "사진을 클릭하다"; +"长按录像" = "녹화하다"; +"点击拍照,长按录像" = "사진을 클릭하고 촬영하다"; +"处理失败,请重试!" = "실패를 처리하 려면, 다시 시험 해 보십시오!"; +"无法使用相机!" = "카메라를 사용 할 수 없다!"; +"照片正在下载" = "사진이 다운로드 되고 있다"; +"已达最大数!" = "이미 최대의 숫자에 달 했다!"; +"照片已达最大数!" = "사진이 이미 최대치에 달 했다!"; +"视频已达最大数!" = "동영 상이 이미 가장 많다!"; +"最多只能选择%ld张图片" = "가장 많은 %ld장의 그림을 선택 할 수 있다"; +"最多只能选择%ld个视频" = "최대 %ld개 동영상만 꼽을 수 있다"; +"最多只能选择%ld个" = "최대 %ld개만 선택 할 수 있다"; +"图片不能和视频同时选择" = "사진은 동영상과 동시에 선택 할 수 없다"; +"视频不能和图片同时选择" = "영상은 그림과 함께 선택 할 수 없다"; +"视频少于%ld秒,无法选择" = "동영 상은 %ld초 이하 여서 선택 할 수 없다"; +"视频大于%ld秒,无法选择" = "%ld초 이상 된 비디오를 선택 할 수 없습니다"; +"录制时间少于%.0f秒" = "녹화 시간은 %.0f초보다적다"; +"请在设置-隐私-相机中允许访问相机" = "설치하십시오-사생활-카메라에 카메라를 허용하다"; +"无法访问照片\n请点击这里前往设置中允许访问照片" = "사진을 찾을 수 없다\n이곳을 클릭 해서 사진을 방문 하도 록 하세요"; +"无法使用相机" = "카메라를 사용 할 수 없다"; +"无法访问照片,请前往设置中允许\n访问照片" = "사진을 방문 할 수 없 으니, 안내 해 주시기 바 랍니다\n사진을 방문하다"; +"无法使用麦克风" = "마이크를 사용 할 수 없어요"; +"请在设置-隐私-相机中允许访问麦克风" = "설치하십시오-사생활-카메라에는 마이크를 방문하는 것이 허용 된다"; +"视频保存失败!" = "동영상 보존 실패!"; +"照片保存失败!" = "사진 보존 실패!"; +"保存失败,无法访问照片\n请前往设置中允许访问照片" = "실패를 보존하다,사진을 찾을 수 없다\n여기에 가서 허락 해 주세요\n사진을 방문하다"; +"没有可选的照片!" = "선택 할 수 있는 사진이 없습니다!"; +"视频已被删除!" = "동영상은 이미 삭제 되었다!"; +"尚未从iCloud上下载,请至系统相册下载完毕后选择" = "아직 iclod에서 다운로드 받지 못 했다,시스템 상에서 다운 받아 보시기 바 랍니다"; +"今天" = "오늘"; +"昨天" = "어제"; +"麦克风添加失败,录制视频会没有声音哦!" = "마이크 가 실패 했다,녹화 영상은 소리 가 없 네요!"; +"点击录制" = "녹음 제작"; +"%.0f秒内的视频无效哦~" = "%.0f초 안에 영상이 무효예요~"; +"录制视频失败!" = "비디오 녹화에 실패하다!"; +"继续录制" = "계속 녹음하다"; +"无法访问相册" = "앨범을 찾을 수 없다"; +"请在设置-隐私-相册中允许访问相册" = "설치하십시오-사생활-사진첩에는 사진첩을 방문 할 수 있다"; +"下载失败" = "다운을 받다"; +"所有照片" = "모든 사진"; +"相机胶卷" = "카메라 롤"; +"编辑后,GIF将会变为静态图,确定继续吗?" = "GIF는 편집 후 정적으로 변하게 되 는데 계속 진행 하시겠습니까?"; +"编辑后,LivePhoto将会变为静态图,确定继续吗?" = "편집 후 라이브 포토토는 정적인 그림으로 바 뀔 것 입니다. 계속 하시겠습니까?"; +"图片尺寸过小!" = "사진 사이즈 너무 작아요!"; +"获取视频失败!" = "비디오를 가져오는 데 실패 했습니다!"; +"确定取消吗?" = "취소 가 확실 합니까?"; +"继续" = "계속 하기"; +"获取" = "입수"; +"处理失败,请重试" = "처리 가 실패 했습니다. 다시 시도하십시오"; +"选择照片时不能选择视频" = "사진을 선택 할 때는 동영상을 선택 할 수 없습니다"; +"选择视频时不能选择照片" = "동영상을 선택 할 때는 사진을 선택 할 수 없습니다"; +"只能选择%ld秒内的视频,需进行编辑" = "%ld초짜리 동영상을 골라 편집 해야 한다"; +"从手机相册选择" = "핸드폰 앨범에서 선택"; +"正在下载网络图片,请稍等" = "네트워크 그림을 다운로드 중입니다. 잠시만 기다려 주십시오."; +"正在获取照片大小,请稍等" = "사진 크기 가져오는 중, 잠시만 기다려 주십시오."; +"照片大小超过最大限制%@" = "사진의 크기가 최대 제한을 초과하다 %@"; +"视频大小超过最大限制%@" = "비디오 크기가 최대 제한 이상입니다 %@"; +"照片或视频" = "사진이나 비디오"; +"轻触拍照" = "터치 해서 사진 을 찍다."; +"按住摄像" = "눌 러 서 촬영 하 다."; +"轻触拍照,按住摄像" = "터치 해서 사진 찍 고, 눌 러 서 찍 고."; +"拍照" = "사진 을 찍다."; +"摄像" = "촬영 하 다."; +"无法访问所有照片\n请点击这里前往设置中允许访问所有照片" = "모든 사진 에 접근 할 수 없습니다.\n이 곳 을 클릭 해서 설정 중 에 모든 사진 에 접근 할 수 있 도록 해 주세요."; +"无法访问所有照片" = "모든 사진 에 접근 할 수 없습니다."; +"请在设置-隐私-相册中允许访问所有照片" = "설정 하 세 요. - 프라이버시. - 앨범 에서 모든 사진 에 접근 할 수 있 습 니 다."; +"要删除这张照片吗?" = "이 사진 을 삭제 하 시 겠 습 니까?"; +"要删除此视频吗?" = "이 영상 을 삭제 하 시 겠 습 니까?"; +"自由" = "자유"; +"松手即可删除" = "삭제로 이동"; +"拖动到此处删除" = "삭제하려면 여기로 드래그하세요."; +"仅可访问部分照片,建议开启「所有照片」" = "일부 사진만 액세스할 수 있습니다. 모든 사진을 여는 것이 좋습니다."; +"去设置" = "세트로 이동"; +"更多" = "더"; + +"HXAlbumCameraRoll" = "모든 사진"; +"HXAlbumPanoramas" = "파노라마 사진"; +"HXAlbumVideos" = "동영상"; +"HXAlbumFavorites" = "개인 소장"; +"HXAlbumTimelapses" = "시간 지연 촬영"; +"HXAlbumRecents" = "최근 프로젝트"; +"HXAlbumRecentlyAdded" = "최근에 추가"; +"HXAlbumBursts" = "스냅을 연속으로 찍다"; +"HXAlbumSlomoVideos" = "느린 동작"; +"HXAlbumSelfPortraits" = "셀 카"; +"HXAlbumScreenshots" = "화면 스냅"; +"HXAlbumDepthEffect" = "콜 롬"; +"HXAlbumLivePhotos" = "실황 사진"; +"HXAlbumAnimated" = "발생시키다 투"; + diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/zh-Hans.lproj/Localizable.strings b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000..92a43d0 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/zh-Hans.lproj/Localizable.strings differ diff --git a/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/zh-Hant.lproj/Localizable.strings b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/zh-Hant.lproj/Localizable.strings new file mode 100644 index 0000000..ab39aac --- /dev/null +++ b/Libs/DCBUniPlugin.framework/HXPhotoPicker.bundle/zh-Hant.lproj/Localizable.strings @@ -0,0 +1,135 @@ +"下一步" = "下一步"; +"当前没有可编辑的资源" = "當前沒有可編輯的資源"; +"当前没有可删除的资源" = "當前沒有可刪除的資源"; +"确定删除这张照片吗?" = "確定刪除這張照片嗎?"; +"确定删除这个视频吗?" = "確定刪除這個視頻嗎?"; +"删除" = "刪除"; +"下载失败,请重试!" = "下載失敗,請重試!"; +"编辑" = "編輯"; +"正在下载iCloud上的资源" = "正在下載iCloud上的資源"; +"原始值" = "原始值"; +"正方形" = "正方形"; +"提示" = "提示"; +"是否删除此照片" = "是否刪除此照片"; +"还原" = "還原"; +"选择" = "選擇"; +"旋转" = "旋轉"; +"选择照片时不能选择视频" = "選擇照片時不能選擇視頻"; +"没有照片可选!" = "沒有照片可選!"; +"张照片" = "張照片"; +"个视频" = "個視頻"; +"Photos" = "張照片"; +"Photo" = "張照片"; +"Videos" = "個視頻"; +"Video" = "個視頻"; +"今天" = "今天"; +"昨天" = "昨天"; +"返回"= "返回"; +"取消" = "取消"; +"预览" = "預覽"; +"原图" = "原圖"; +"设置" = "設置"; +"确定" = "確定"; +"完成" = "完成"; +"关闭" = "關閉"; +"拍摄" = "拍攝"; +"拍摄失败" = "拍攝失敗"; +"裁剪" = "裁剪"; +"抱歉" = "抱歉"; +"重拍" = "重拍"; +"相机" = "相機"; +"照片" = "照片"; +"视频" = "視頻"; +"相册" = "相冊"; +"加载中" = "加載中"; +"处理中" = "處理中"; +"点击拍照" = "點擊拍照"; +"长按录像" = "長按錄像"; +"点击拍照,长按录像" = "點擊拍照,長按錄像"; +"处理失败,请重试!" = "處理失敗,請重試!"; +"无法使用相机!" = "無法使用相機!"; +"照片正在下载" = "照片正在下載"; +"已达最大数!" = "已達最大數!"; +"照片已达最大数!" = "照片已達最大數!"; +"视频已达最大数!" = "視頻已達最大數!"; +"最多只能选择%ld张图片" = "最多只能選擇%ld張圖片"; +"最多只能选择%ld个视频" = "最多只能選擇%ld個視頻"; +"最多只能选择%ld个" = "最多只能選擇%ld個"; +"图片不能和视频同时选择" = "圖片不能和視頻同時選擇"; +"视频不能和图片同时选择" = "視頻不能和圖片同時選擇"; +"视频少于%ld秒,无法选择" = "視頻少于%ld秒,無法選擇"; +"视频大于%ld秒,无法选择" = "視頻大于%ld秒,無法選擇"; +"录制时间少于%.0f秒" = "錄制時間少于%.0f秒"; +"请在设置-隐私-相机中允许访问相机" = "請在設置-隱私-相機中允許訪問相機"; +"无法访问照片\n请点击这里前往设置中允许访问照片" = "無法訪問照片\n請點擊這裏前往設置中允許訪問照片"; +"无法使用相机" = "無法使用相機"; +"无法访问照片,请前往设置中允许\n访问照片" = "無法訪問照片,請前往設置中允許\n訪問照片"; +"无法使用麦克风" = "無法使用麥克風"; +"请在设置-隐私-相机中允许访问麦克风" = "請在設置-隱私-相機中允許訪問麥克風"; +"视频保存失败!" = "視頻保存失敗!"; +"照片保存失败!" = "照片保存失敗!"; +"保存失败,无法访问照片\n请前往设置中允许访问照片" = "保存失敗,無法訪問照片\n請前往設置中允許\n訪問照片"; +"没有可选的照片!" = "沒有可選的照片!"; +"视频已被删除!" = "視頻已被刪除!"; +"尚未从iCloud上下载,请至系统相册下载完毕后选择" = "尚未從iCloud上下載,請至系統相冊下載完畢後選擇"; +"今天" = "今天"; +"昨天" = "昨天"; +"麦克风添加失败,录制视频会没有声音哦!" = "麥克風添加失敗,錄制視頻會沒有聲音哦!"; +"点击录制" = "點擊錄制"; +"%.0f秒内的视频无效哦~" = "%.0f秒內的視頻無效哦~"; +"录制视频失败!" = "錄制視頻失敗!"; +"继续录制" = "繼續錄制"; +"无法访问相册" = "無法訪問相冊"; +"请在设置-隐私-相册中允许访问相册" = "請在設置-隱私-相冊中允許訪問相冊"; +"下载失败" = "下載失敗"; +"所有照片" = "所有照片"; +"相机胶卷" = "相機膠卷"; +"编辑后,GIF将会变为静态图,确定继续吗?" = "編輯後,GIF將會變為靜態圖,確定繼續嗎?"; +"编辑后,LivePhoto将会变为静态图,确定继续吗?" = "編輯後,LivePhoto將會變為靜態圖,確定繼續嗎?"; +"图片尺寸过小!" = "圖片尺寸過小!"; +"获取视频失败!" = "獲取視頻失敗!"; +"确定取消吗?" = "確定取消嗎?"; +"继续" = "繼續"; +"获取" = "獲取"; +"处理失败,请重试" = "處理失敗,請重試"; +"选择照片时不能选择视频" = "選擇照片時不能選擇視頻"; +"选择视频时不能选择照片" = "選擇視頻時不能選擇照片"; +"只能选择%ld秒内的视频,需进行编辑" = "只能選擇%ld秒內的視頻,需進行編輯"; +"从手机相册选择" = "從手機相冊選擇"; +"正在下载网络图片,请稍等" = "正在下載網絡圖片,請稍等"; +"正在获取照片大小,请稍等" = "正在獲取照片大小,請稍等"; +"照片大小超过最大限制%@" = "照片大小超過最大限制%@"; +"视频大小超过最大限制%@" = "視頻大小超過最大限制%@"; +"照片或视频" = "照片或視頻"; +"轻触拍照" = "輕觸拍照"; +"按住摄像" = "按住攝像"; +"轻触拍照,按住摄像" = "輕觸拍照,按住攝像"; +"拍照" = "拍照"; +"摄像" = "攝像"; + +"无法访问所有照片\n请点击这里前往设置中允许访问所有照片" = "無法訪問所有照片\n請點擊這裡前往設定中允許訪問所有照片"; +"无法访问所有照片" = "無法訪問所有照片"; +"请在设置-隐私-相册中允许访问所有照片" = "請在設定-隱私-相册中允許訪問所有照片"; +"要删除这张照片吗?" = "要删除這張照片嗎?"; +"要删除此视频吗?" = "要删除此視頻嗎?"; +"自由" = "自由"; +"松手即可删除" = "鬆手即可刪除"; +"拖动到此处删除" = "拖動到此處刪除"; +"仅可访问部分照片,建议开启「所有照片」" = "僅可訪問部分照片,建議開啟「所有照片」"; +"去设置" = "去設置"; +"更多" = "更多"; + +"HXAlbumCameraRoll" = "所有照片"; +"HXAlbumPanoramas" = "全景照片"; +"HXAlbumVideos" = "視頻"; +"HXAlbumFavorites" = "個人收藏"; +"HXAlbumTimelapses" = "延時攝影"; +"HXAlbumRecents" = "最近項目"; +"HXAlbumRecentlyAdded" = "最近添加"; +"HXAlbumBursts" = "連拍快照"; +"HXAlbumSlomoVideos" = "慢動作"; +"HXAlbumSelfPortraits" = "自拍"; +"HXAlbumScreenshots" = "屏幕快照"; +"HXAlbumDepthEffect" = "人像"; +"HXAlbumLivePhotos" = "實況照片"; +"HXAlbumAnimated" = "動圖"; diff --git a/Libs/DCBUniPlugin.framework/Info.plist b/Libs/DCBUniPlugin.framework/Info.plist new file mode 100644 index 0000000..b38a568 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/Info.plist differ diff --git a/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBDelete@3x.png b/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBDelete@3x.png new file mode 100755 index 0000000..d048277 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBDelete@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBDismiss@3x.png b/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBDismiss@3x.png new file mode 100755 index 0000000..d1b9064 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBDismiss@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBLoadError.png b/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBLoadError.png new file mode 100755 index 0000000..04d7fbd Binary files /dev/null and b/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBLoadError.png differ diff --git a/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBLoading.png b/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBLoading.png new file mode 100755 index 0000000..d2a8dd4 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/LBPhotoBrowser.bundle/LBLoading.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/camera-flash.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/camera-flash.png new file mode 100755 index 0000000..b38e938 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/camera-flash.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/camera-flash@2x.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/camera-flash@2x.png new file mode 100755 index 0000000..e7c7721 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/camera-flash@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/cameraButton.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/cameraButton.png new file mode 100755 index 0000000..82fe086 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/cameraButton.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/cameraButton@2x.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/cameraButton@2x.png new file mode 100755 index 0000000..3687d02 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/cameraButton@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/cameraButton@3x.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/cameraButton@3x.png new file mode 100755 index 0000000..47f0580 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/cameraButton@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/closeButton.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/closeButton.png new file mode 100755 index 0000000..545c364 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/closeButton.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/closeButton@2x.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/closeButton@2x.png new file mode 100755 index 0000000..50e44fc Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/closeButton@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/closeButton@3x.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/closeButton@3x.png new file mode 100755 index 0000000..45bf9ba Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/closeButton@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/en.lproj/Root.strings b/Libs/DCBUniPlugin.framework/PureCamera.bundle/en.lproj/Root.strings new file mode 100755 index 0000000..8cd87b9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/en.lproj/Root.strings differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/swapButton.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/swapButton.png new file mode 100755 index 0000000..137243e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/swapButton.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/swapButton@2x.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/swapButton@2x.png new file mode 100755 index 0000000..7bdba07 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/swapButton@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/PureCamera.bundle/swapButton@3x.png b/Libs/DCBUniPlugin.framework/PureCamera.bundle/swapButton@3x.png new file mode 100755 index 0000000..bcbd31e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/PureCamera.bundle/swapButton@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/QLPreviewFile.docx b/Libs/DCBUniPlugin.framework/QLPreviewFile.docx new file mode 100644 index 0000000..cc9c1dc Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QLPreviewFile.docx differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/Root.plist b/Libs/DCBUniPlugin.framework/QRResource.bundle/Root.plist new file mode 100644 index 0000000..b1b6fea --- /dev/null +++ b/Libs/DCBUniPlugin.framework/QRResource.bundle/Root.plist @@ -0,0 +1,61 @@ + + + + + StringsTable + Root + PreferenceSpecifiers + + + Type + PSGroupSpecifier + Title + Group + + + Type + PSTextFieldSpecifier + Title + Name + Key + name_preference + DefaultValue + + IsSecure + + KeyboardType + Alphabet + AutocapitalizationType + None + AutocorrectionType + No + + + Type + PSToggleSwitchSpecifier + Title + Enabled + Key + enabled_preference + DefaultValue + + + + Type + PSSliderSpecifier + Key + slider_preference + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + MinimumValueImage + + MaximumValueImage + + + + + diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/en.lproj/Root.strings b/Libs/DCBUniPlugin.framework/QRResource.bundle/en.lproj/Root.strings new file mode 100644 index 0000000..8cd87b9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/en.lproj/Root.strings differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/scaningCode_album@2x.png b/Libs/DCBUniPlugin.framework/QRResource.bundle/scaningCode_album@2x.png new file mode 100644 index 0000000..424b72a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/scaningCode_album@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/scaningCode_album@3x.png b/Libs/DCBUniPlugin.framework/QRResource.bundle/scaningCode_album@3x.png new file mode 100644 index 0000000..ce949e3 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/scaningCode_album@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@2x.png b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@2x.png new file mode 100644 index 0000000..9f87fbe Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@3x.png b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@3x.png new file mode 100644 index 0000000..44efe88 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@2x.png b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@2x.png new file mode 100644 index 0000000..b3047ac Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@3x.png b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@3x.png new file mode 100644 index 0000000..50b1663 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@2x.png b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@2x.png new file mode 100644 index 0000000..ac556bc Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@3x.png b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@3x.png new file mode 100644 index 0000000..d8cd166 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@2x.png b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@2x.png new file mode 100644 index 0000000..1457fd6 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@3x.png b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@3x.png new file mode 100644 index 0000000..eccfcf4 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/SGQRCode.bundle/Root.plist b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/Root.plist new file mode 100755 index 0000000..b1b6fea --- /dev/null +++ b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/Root.plist @@ -0,0 +1,61 @@ + + + + + StringsTable + Root + PreferenceSpecifiers + + + Type + PSGroupSpecifier + Title + Group + + + Type + PSTextFieldSpecifier + Title + Name + Key + name_preference + DefaultValue + + IsSecure + + KeyboardType + Alphabet + AutocapitalizationType + None + AutocorrectionType + No + + + Type + PSToggleSwitchSpecifier + Title + Enabled + Key + enabled_preference + DefaultValue + + + + Type + PSSliderSpecifier + Key + slider_preference + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + MinimumValueImage + + MaximumValueImage + + + + + diff --git a/Libs/DCBUniPlugin.framework/SGQRCode.bundle/en.lproj/Root.strings b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/en.lproj/Root.strings new file mode 100755 index 0000000..8cd87b9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/en.lproj/Root.strings differ diff --git a/Libs/DCBUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@2x.png b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@2x.png new file mode 100644 index 0000000..eb29894 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@3x.png b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@3x.png new file mode 100644 index 0000000..f418f89 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanEndSound.caf b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanEndSound.caf new file mode 100755 index 0000000..4428bcc Binary files /dev/null and b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanEndSound.caf differ diff --git a/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLine@2x.png b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLine@2x.png new file mode 100755 index 0000000..c301db7 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLine@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLine@3x.png b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLine@3x.png new file mode 100755 index 0000000..89b3b0e Binary files /dev/null and b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLine@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLineGrid@2x.png b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLineGrid@2x.png new file mode 100644 index 0000000..4929bd1 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLineGrid@2x.png differ diff --git a/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLineGrid@3x.png b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLineGrid@3x.png new file mode 100644 index 0000000..93d32eb Binary files /dev/null and b/Libs/DCBUniPlugin.framework/SGQRCode.bundle/scanLineGrid@3x.png differ diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Align_occlusion_106_1.19.6.model b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Align_occlusion_106_1.19.6.model new file mode 100644 index 0000000..9c1f0eb Binary files /dev/null and b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Align_occlusion_106_1.19.6.model differ diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model new file mode 100644 index 0000000..52119c5 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model differ diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model new file mode 100644 index 0000000..d58c83a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model differ diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model new file mode 100644 index 0000000..31ec9e5 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model differ diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model new file mode 100644 index 0000000..fd3def8 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model differ diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model new file mode 100644 index 0000000..935cef8 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model differ diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model new file mode 100644 index 0000000..307b8de Binary files /dev/null and b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model differ diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/License.lic b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/License.lic new file mode 100644 index 0000000..e6da45d --- /dev/null +++ b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/License.lic @@ -0,0 +1,64 @@ +############################################################ +# SenseTime License +# License Product: SSID-3.0 +# Expiration: 20220428~20220902 +# License SN: faad911f-6f9c-4c5e-86dc-b42085b401fe +############################################################ +sGfdd8EYXYDBX5EKP6HNHV364g+3STNiNcLwy+NxAuN9p+BckbE+GSKI6YDd +wSNf+ipZIPEaGTSfUfvArc3pOZCVPQaNCyoa9SP+WcGBZpNAgQytwfkwvONA +H7h72yWnWpT49qAs/cZEApNJvtiGBCyptuiDF1ilXzOGs6I4NSXr+UJdAQAA +AAEAAAA18z926I6hjcQURARf13JWuynYrJB/k5vcJil34g/6FNH1U/Rt76dC +X06AogRs/Cf/d5CdoFkoGsewnFLDiBymchCsMh6S3/IGfv4ZyR2eOHSvO4+N +gtYCaXszCT8T3jCBY+KtfZgQhWrgA1yWauKRxp/W3YRPXZ5mlmHSuLL5IpvG +zAgUWFPr0TjTMZuNDZ/EacqXEY79S8FhiNbbZEwaikV0Gv6+RMkG0rG+FO3R +BhbQpHb9kxYZSwmodVFiEuhD/ghVmuIY0xDkZJ1LWeEFQN55MAAamTzwrGDG +V+BLmQCahrNxHB97q8BX9AN3EXPT/5HReDztSdU2OWJQfRqtAQABAAAAAAAD +AAAAAAAAAAAAAABS0AXiRhGrMZN1UNkKq0X0LuOBNv/wUwyYRxuI88iar/2g +2oN+bZqAGiyDRgzYWtwdUmFV+g3FDHx9x/Xm+klsh+oLEdkFxAdNr3Kd5hXm +iy1WBjRgicTc0Tn4xDJuakdUOYUCD/5FniPt7kALLrqHwHwZbwBiv0Rwfexn +aFNfdxC0UFClgkaJpn3lRGmIZI/8o/Gz0JWUladeHzmUoK2wbx8agVWDXdzi +AJArtAZWgStM88A9+xCaq+xzEYBBEmlU3OAwUMQGwgNaloShDSHTvTUqSoiw +3RzUBnOHurKb8oaOJxdVTLVZZrZblrmIMTktQBH0tadPl/b+3m+PsgSOcgFn +MGcH38qrMrZtT7P2Y2+4rP231PS01/rrZvxN+eBnjEW79BpNWiVakVs7uLPO +If63mGOd0ZLw+dvnFVU2I0YZb1tGgsLs+TcxWN2wkoeXzbG7XEVgjxNYTtVO +P/GiplcrCQNcXOELoU0Z3ceidYzItjumHVbdZSKVsi7qKzsR23qYi8uZpAhe +ktiAeWJRfY5MdtQTU6bBoaUMBuq4dd/xD7PkhRo/2udnEZ6wEdJH/QXRo+Xr +sacRf8E6CfrBPyGhYDdegSPgwgA+uTpFrIa5TH4zExH5aNG92jbGOgC3hcLr +BdvcGevz8VqT97Z61V7vW0XwMjzG3T13A8ghJ3pocHWUFdreN69M8HtwewOA +vT9QZvFVT2bd3blCE1DaRx0JNSUXFAiNoYwPXzUwUkw3lghYOQgenxThrgqf +MLYMJYt8yOnJQvtJ+6IIa3TiDSF5wTMCA+56m4SS8QRwE5W75mAwKyrLF+lf +D4HJv3av+IxQeAokykDItDX5PwzZOJgXTvyIWQe7n6uqUfs+og== +------------------------------------------------------------ +sGfdd2+JjWq2nCgcE9Lr4bFDV/lnYSnuraXF/LJHtBnXGUvNBA+eU80P+ggp +5mo1fzu+ogxnOPlsJaoHDpPhfFGycBwS6ItRSTEBs3Yy/AfdaQAZoSv60gLg +df6nqwXY7aqPILFWgho200DqWRrqTvSOx+M/rHR60Dek0VOzfYToovRmAQAA +AAIAAAB6x/EFApTGqArsbeY36hYO+iO5S3cLCWe2iffRfRSURY9JFZU32P9z +Sw3zDOXOgwr8f1lLKsJ/NJOtWqxDJHlQa21S59U+BRDxo1LcMkep7bn/fSsi +XGGl76E0ZOOrKiy5WOTl5lKWjaDbunpgZ69a6wAPpvUpNW6F7C7MwVTrPMsI +vYTMOxi1CZ/BNgDU1wKIjbhAPto9ineycMJZzkYnYzIXcnf0d2Md3PC8Hy81 +giyBDOpdECHbi2Le2hWWtuUhY4IEdBuflJssNvuNgFXDOLsIdqKncksjxF/Y +AqpLLeKKAKy2jfO0Oc+eQ4DTpBUx1d8aioKYex21o7Q0i2ZJAAAAAAAAAAAA +AAAAAAAAAAAAAADuVOn+elG9BWG0wvr2njbMeyenK89kuPKZjQxFXIEywqhA +GGl8rSY9Yvxmk/Dte01RrhXjYNw0tzcFI78g9Gase17bK/fqZbqQE6b2D+lA +eCntpnlCWeYeGPwrA27JqeFbzQsBlCIODzLKh57RHxPvr3c865dGBu0rvqE+ +qJ79VLsIDm6nzqOrtWv96L922p5lgJxP23mu/38KfbD1YXBBZ2fWP03a6417 +jGGvB4E93euK0NuHbpn3DC4/NyfCN4PcpLR8Ej2Z7rjPwOtmswo5tAkD7hX9 +OnF2RFprTKZUsFCferPUgzbjsr0RuL4wNIEnPJl6SY7MoN8qVz4agdLfrGUF +6uta8VLqXkeZadbNH+TVXzCqj88g8rFiMVcZZWu3roXIphrlvyyQKC747SHd +7vp6UJroYuy2m47a0tVrGA48xkBXDRju3GZOAX7cP7W8Jq0Cy0eaNu97RocN +GrBD8hhhEarTQ5qsuu7wSe1FcWStqXgDxAJL9IaTcfT/1YMyqzc8BjNts6hu +grfYTGwbEuG4wZJy6XWIoLhRdnG1GuetysTzU/IoKUofzVZ3YtkD+/g4tpXh +KNf9DD+Q5wZo1XrZQ0308OYdQ1At+G8CPBIZ1GDX+SV0ZhTEY/nvObenLE7Z +1CqeNXaHQAbE7ylfyLmE4lU23+vw8e5KLsPwYhwXk7MG/T42QE0B9F4OU4a1 +xOzK8HKGw5vQPDCS8vUSjsfJ9iFfJiVSaYFvgbcR9hjLKBvQUub4a6RYTbnB +2GgGwXfHZ01cH5fW1c05ewNbGznwQ1vi4c4vpfzzFAzJmDnp/nCe51WA1G9F +CHbZxVKnrAjyYwBzdMkrp0ZDtJoDMR7nSEoN1c9qWkubfRHS1dfKMq3iwOhp +Fi/FVlYzyVR+wcf4MMv03bocrDtkNPBDpxiSWLe/+JqQ7Ng1vkkyvpcI54AB +zuZS+QRwnVUDi6GGTw1xQMn70d/GPCCY4pKW2nr5IJR7LASegSvhI32+3JEd +dmPyv+mjOIINoirYMRs3D6J1nfJBXwg8BZ7+7bdloR3uV1LBBidUydxOSJkf +NnN5bmJTM5VyXUYZJ/knD4Qcg7yxAnFmRHSM8K14BGnMyjNGMbAsXord6vuW ++C/Ak5g6FHqZTBEZAmw1jv9oRtwGrfBv4gmrjJPvp+5Z/gC2sG8LV2i17bZC +ylWRd/xDxQnlSmY+T/ZWifgngxa0UuaIZxZcgV///FwuqMJoBovATJ397e9t +Z6Sc7u/s2Ady8lolcyPtZehrwxst+KQGc8nUE2LC+3Am0ypWVgI0r9Q+HT94 +ko03ZFIS4FGm1eqz9TwbkaJQXUN7l6QVlcY= +############################################################ \ No newline at end of file diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/Root.plist b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/Root.plist new file mode 100644 index 0000000..b1b6fea --- /dev/null +++ b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/Root.plist @@ -0,0 +1,61 @@ + + + + + StringsTable + Root + PreferenceSpecifiers + + + Type + PSGroupSpecifier + Title + Group + + + Type + PSTextFieldSpecifier + Title + Name + Key + name_preference + DefaultValue + + IsSecure + + KeyboardType + Alphabet + AutocapitalizationType + None + AutocorrectionType + No + + + Type + PSToggleSwitchSpecifier + Title + Enabled + Key + enabled_preference + DefaultValue + + + + Type + PSSliderSpecifier + Key + slider_preference + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + MinimumValueImage + + MaximumValueImage + + + + + diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/config.plist b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/config.plist new file mode 100644 index 0000000..ad2cace --- /dev/null +++ b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/config.plist @@ -0,0 +1,12 @@ +{ + License = "License.lic"; + Models = { + hunter = "KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model"; + august = "KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model"; + align = "KM_Align_occlusion_106_1.19.6.model"; + headpose = "KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model"; + pageant = "KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model"; + eyestate = "KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model"; + liveness = "KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model"; + }; +} \ No newline at end of file diff --git a/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/en.lproj/Root.strings b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/en.lproj/Root.strings new file mode 100644 index 0000000..8cd87b9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/STSilentlivenessResource.bundle/en.lproj/Root.strings differ diff --git a/Libs/DCBUniPlugin.framework/TOCropViewControllerLocalizable.strings b/Libs/DCBUniPlugin.framework/TOCropViewControllerLocalizable.strings new file mode 100644 index 0000000..80861b9 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/TOCropViewControllerLocalizable.strings differ diff --git a/Libs/DCBUniPlugin.framework/_CodeSignature/CodeDirectory b/Libs/DCBUniPlugin.framework/_CodeSignature/CodeDirectory new file mode 100644 index 0000000..1cf8d6a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/_CodeSignature/CodeDirectory differ diff --git a/Libs/DCBUniPlugin.framework/_CodeSignature/CodeRequirements b/Libs/DCBUniPlugin.framework/_CodeSignature/CodeRequirements new file mode 100644 index 0000000..facd77a Binary files /dev/null and b/Libs/DCBUniPlugin.framework/_CodeSignature/CodeRequirements differ diff --git a/Libs/DCBUniPlugin.framework/_CodeSignature/CodeRequirements-1 b/Libs/DCBUniPlugin.framework/_CodeSignature/CodeRequirements-1 new file mode 100644 index 0000000..aceb3b1 Binary files /dev/null and b/Libs/DCBUniPlugin.framework/_CodeSignature/CodeRequirements-1 differ diff --git a/Libs/DCBUniPlugin.framework/_CodeSignature/CodeResources b/Libs/DCBUniPlugin.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..59ee2a2 --- /dev/null +++ b/Libs/DCBUniPlugin.framework/_CodeSignature/CodeResources @@ -0,0 +1,3757 @@ + + + + + files + + DCBDocumentListCell.nib + + KiY1LMW8+/lattRKIJXnJdK6QlM= + + DCBPhoneAlertView.nib + + lbqARRRccgZeCBrqRBskdYCRFoU= + + DCBUniPluginResource.bundle/Root.plist + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + DCBUniPluginResource.bundle/abnormal_icon@2x.png + + 0jY2daoNRFF8KknFv5OIOgcctic= + + DCBUniPluginResource.bundle/abnormal_icon@3x.png + + bB3bKT7DrKXP6cLDVauXPb1GA5I= + + DCBUniPluginResource.bundle/btn_takephoto_normal@2x.png + + BZEOlY5Xr+qQkEmDzmujGG10vEE= + + DCBUniPluginResource.bundle/btn_takephoto_normal@3x.png + + 34TpcLibY75ULOb8xkQ+gNsOnGE= + + DCBUniPluginResource.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + optional + + + DCBUniPluginResource.bundle/error@2x.png + + iPDklTVo8YpTWFRUvM2EphIX6Aw= + + DCBUniPluginResource.bundle/error@3x.png + + y6m739Z/DdgvN1izlGwbKz+oWVE= + + DCBUniPluginResource.bundle/file_icon.png + + dFhPEmssPpbX0I3PC6CqRq1Ckb8= + + DCBUniPluginResource.bundle/flash_close_icon@2x.png + + ndfmOtrDhB3/33/rfvqYUoyz23Y= + + DCBUniPluginResource.bundle/flash_close_icon@3x.png + + ZgZHiMVIUCXaHS9vvQUUKRtxjT0= + + DCBUniPluginResource.bundle/flash_open_icon@2x.png + + hHTqFQGRpbBREFyn0xdBh7f897g= + + DCBUniPluginResource.bundle/flash_open_icon@3x.png + + NW1gKWsCRpab8x7o5Uc+hc2GwYM= + + DCBUniPluginResource.bundle/nav_back@2x.png + + 3r4vpvlybfQ9SBQRGHmP8SoY3u0= + + DCBUniPluginResource.bundle/nav_back@3x.png + + XlVdXYAblylvrV2JMHnbRkRcuzQ= + + DCBUniPluginResource.bundle/no_data_common@2x.png + + jEBvFbHLLk02VgTLvsTVUzSRilY= + + DCBUniPluginResource.bundle/no_data_common@3x.png + + 0J/9YarhrRQxeq+XusIyUAvlIXM= + + DCBUniPluginResource.bundle/no_network@2x.png + + kBw0qgjssCjss5zX4j/oacWiK4U= + + DCBUniPluginResource.bundle/no_network@3x.png + + Bk/J5D0N55A+ze872gpi/zY4Heo= + + DCBUniPluginResource.bundle/paid_chuli_icon@2x.png + + PlA6d0SgFVpCpqIxfStKDT7c4e0= + + DCBUniPluginResource.bundle/paid_chuli_icon@3x.png + + ZCjgz/UQ9t1mouVaXgtCz8AX8k4= + + DCBUniPluginResource.bundle/photo_back_icon@2x.png + + WgOYyaEBjHpTgeGBOyGB4snRdIA= + + DCBUniPluginResource.bundle/photo_back_icon@3x.png + + dZbq62DJG4PdavgxAI57VR3lwIc= + + DCBUniPluginResource.bundle/photo_cover_img@2x.png + + s240AYKgkq4vsMn5tnZphTscYCs= + + DCBUniPluginResource.bundle/photo_cover_img@3x.png + + 9xUcvDa8wmYWYZjK1rn9lvjY0N0= + + DCBUniPluginResource.bundle/server_failure@2x.png + + G3h9cJ5Ifo1RenTBiO7XCy747oI= + + DCBUniPluginResource.bundle/server_failure@3x.png + + hZOtq6UDWZCC0NErIIf8dAInNDs= + + DCBUniPluginResource.bundle/succeed@2x.png + + fT1fD6o2DqWlQgJTZ82tWX4TSe8= + + DCBUniPluginResource.bundle/succeed@3x.png + + l9Wh7oMyhtQ6nj+zIonl7AvyrRk= + + DCBUniPluginResource.bundle/thirdApp_login_tip@2x.png + + JuXrJiNJ/sNAozjI+VPE1HYKEOg= + + DCBUniPluginResource.bundle/thirdApp_login_tip@3x.png + + 936+fWZghxH7U2iWdH0SsJzO2ZU= + + DCBUniPluginResource.bundle/web_close_normal@2x.png + + Y1qeNbWwpAYkX7xuBD8VTQLXMkM= + + DCBUniPluginResource.bundle/web_close_normal@3x.png + + sOwhSY57R8ywA6reecfZocIVDVw= + + DCBUniPluginResource.bundle/web_more_normal@2x.png + + nEFBj60BhGYGlqcGrClnsFT5TDE= + + DCBUniPluginResource.bundle/web_more_normal@3x.png + + 7Ai0RWnO1oDAXjCVzyuWjKmOSLE= + + DCBUniPluginResource.bundle/web_nav_back@2x.png + + 3r4vpvlybfQ9SBQRGHmP8SoY3u0= + + DCBUniPluginResource.bundle/web_nav_back@3x.png + + XlVdXYAblylvrV2JMHnbRkRcuzQ= + + DCBVoiceRecordView.nib/objects-11.0+.nib + + W+XwJDH+LTX+lNrHy5KhHyoO2Ew= + + DCBVoiceRecordView.nib/runtime.nib + + WYv2TdqkKkiV1SEiL6juw3Ui1GI= + + DcbPhotoTakeController.nib + + IVF4I6k7AHmyNyBbux7zi5D3WL0= + + HXPhotoPicker.bundle/HXCameraBottomView.nib + + DXHBRDMscY6mka/X5U8ENkNw+O4= + + HXPhotoPicker.bundle/HXPhotoEditChartletContentViewCell.nib/objects-12.3+.nib + + 6QxBt/wl5S/JryYgQXuklKrz4Vk= + + HXPhotoPicker.bundle/HXPhotoEditChartletContentViewCell.nib/runtime.nib + + IbM1eT64PmcUzLK/ujyl/ob562U= + + HXPhotoPicker.bundle/HXPhotoEditChartletListView.nib + + ojKvX1d/CzjDkXmT0Y2cMKZfNjs= + + HXPhotoPicker.bundle/HXPhotoEditChartletPreviewView.nib + + NlSZ2l23iG5IGtCE+NWvQ4LZMFo= + + HXPhotoPicker.bundle/HXPhotoEditClippingToolBar.nib + + zM9Dh07hEHOWr4vq16HkScQjBRc= + + HXPhotoPicker.bundle/HXPhotoEditGraffitiColorSizeView.nib + + IlE9Ys5lkqUL0Ypc5czO8Uw9z7o= + + HXPhotoPicker.bundle/HXPhotoEditGraffitiColorView.nib + + 981vL6Hk2dC7+YAktGnAsnsCq5A= + + HXPhotoPicker.bundle/HXPhotoEditGraffitiColorViewCell.nib/objects-12.3+.nib + + D/RwFNQaL6xU4Fsc8Os/U+FlNqc= + + HXPhotoPicker.bundle/HXPhotoEditGraffitiColorViewCell.nib/runtime.nib + + 7pvl73tsEl/4woxq2qeZsbFn9bA= + + HXPhotoPicker.bundle/HXPhotoEditMosaicView.nib + + KC3thyGb9fUj7uB7dqBBDioaFuU= + + HXPhotoPicker.bundle/HXPhotoEditStickerTrashView.nib + + cP+iBPyLhaAcEK0z/3A96poOLgI= + + HXPhotoPicker.bundle/HXPhotoEditTextView.nib + + nLUf04lPus7Kn/+w2V2xnx69uEU= + + HXPhotoPicker.bundle/HX_PhotoEditBottomView.nib + + D3h+ZwA9jD2qx/pgO2/whZRgz/c= + + HXPhotoPicker.bundle/en.lproj/Localizable.strings + + hash + + KoIlHcwK43tavdpp4DQTmqN8UMg= + + optional + + + HXPhotoPicker.bundle/images/hx_alert_failed@2x.png + + 2FI5/Clo0/WQWxhra5oYC9Pn2tc= + + HXPhotoPicker.bundle/images/hx_alert_failed@3x.png + + zD9GBoq6xwwyltgl8zFkMJPeOmw= + + HXPhotoPicker.bundle/images/hx_camera_down_back@2x.png + + y+b5Kca6lQQjyiZ/fIL1QJdDvEA= + + HXPhotoPicker.bundle/images/hx_camera_down_back@3x.png + + fnMFziJXDyff3V5FJnzwKti4h3k= + + HXPhotoPicker.bundle/images/hx_camera_focusbox@2x.png + + ZR9a1HptnMc38eU6GuPgVV6i0Qg= + + HXPhotoPicker.bundle/images/hx_camera_focusbox@3x.png + + hefQhIN8AMjr9TUmLmc9G3PHZ5w= + + HXPhotoPicker.bundle/images/hx_camera_overturn@2x.png + + 4ZFJ5kPzv3jcbI3d6NCBoVkctIo= + + HXPhotoPicker.bundle/images/hx_camera_overturn@3x.png + + eMGertbAWpq8ueavoBGYWc+RpbQ= + + HXPhotoPicker.bundle/images/hx_camera_video_crop@2x.png + + NM7KpENfxBGLTpjHXWwduv+3L4Y= + + HXPhotoPicker.bundle/images/hx_camera_video_crop@3x.png + + 8xIJF2GgiYby7TfgiKpCppFtb2Q= + + HXPhotoPicker.bundle/images/hx_compose_delete@2x.png + + c/Zs7EKaLgb7wKAWe2KQi3KWtCc= + + HXPhotoPicker.bundle/images/hx_compose_delete@3x.png + + 6uDLJ4SYrtsbUwVKRvsJ1KgGqqo= + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default@2x.png + + xK1SP4XZhx1T+tR/SEzozFZzjM0= + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default@3x.png + + uwdWS8V2mRp4UB8B+8JZKoKBiLY= + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default_2@2x.png + + MsCi5MU69IAB6sVTYXAxS4RvQOI= + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default_2@3x.png + + K3wU/IoO3OQTjgAFyL1vQ3X6IGo= + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_selected@2x.png + + 9vh+ziqigQLCED9P+XmZkXVFvQ0= + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_selected@3x.png + + SqwrpyT7kBDFVPynPdYKmT1SjVs= + + HXPhotoPicker.bundle/images/hx_compose_photo_photograph@2x.png + + r/RwArwv/NLWVcNqH6lYHODEOVM= + + HXPhotoPicker.bundle/images/hx_compose_photo_photograph@3x.png + + NclzyB1UJdxTVdFtv2TRG82QPE0= + + HXPhotoPicker.bundle/images/hx_faceu_cancel@2x.png + + /fh157+XxPREFkkGDay1WKh9Qdk= + + HXPhotoPicker.bundle/images/hx_faceu_cancel@3x.png + + AFu7B5eVRVEqoIHL8L11LVAENtw= + + HXPhotoPicker.bundle/images/hx_list_add_dark_img@2x.png + + kHyJFh5JGWC3DWdEF1p5UbeaDKs= + + HXPhotoPicker.bundle/images/hx_list_add_dark_img@3x.png + + LZPZRJINXfy/XKOtv38eSH2T9RM= + + HXPhotoPicker.bundle/images/hx_list_add_img@2x.png + + DuMeVpxVuxaFdvR8ri62zCqhous= + + HXPhotoPicker.bundle/images/hx_list_add_img@3x.png + + snPpd3We0wGxGosS3WurK+8aDD8= + + HXPhotoPicker.bundle/images/hx_multimedia_videocard_play@2x.png + + eeQEN2ZM9JjX3mC3aF4uWAVMAng= + + HXPhotoPicker.bundle/images/hx_multimedia_videocard_play@3x.png + + N2Yeo/elK8/5GfKhUKllV06ryms= + + HXPhotoPicker.bundle/images/hx_nav_arrow_down@2x.png + + bhCdYuuE/SHlH6u2BYgU34NKcVU= + + HXPhotoPicker.bundle/images/hx_nav_arrow_down@3x.png + + xkCjVWrz6CxEEqndeTY55HZIZo8= + + HXPhotoPicker.bundle/images/hx_nav_title_down@2x.png + + 2I6gWWhiZZW6IKLFsPqDklZNh4Y= + + HXPhotoPicker.bundle/images/hx_nav_title_down@3x.png + + FuJMsaiuiDvIqQthT0WgTpG3R24= + + HXPhotoPicker.bundle/images/hx_original_normal@2x.png + + zwTsVCclNS9/wfH8rHpg9Iubpm4= + + HXPhotoPicker.bundle/images/hx_original_normal@3x.png + + 196Dj+3Bf/MilSUwlKuOqkmlhJs= + + HXPhotoPicker.bundle/images/hx_original_normal_wx@2x.png + + bK9HN4iBcef/pDDGpKx6DkootsQ= + + HXPhotoPicker.bundle/images/hx_original_normal_wx@3x.png + + IDqwGXTizOylPuTC9ONGq+vXe2A= + + HXPhotoPicker.bundle/images/hx_original_selected@2x.png + + INJg4COOf3ZFeXNS95zDIXME0Bs= + + HXPhotoPicker.bundle/images/hx_original_selected@3x.png + + q5MCQK55+jmAtW7X28mWuKnBkMM= + + HXPhotoPicker.bundle/images/hx_original_selected_wx@2x.png + + yefaPGg/kW10GzD59BdHcXS/5vQ= + + HXPhotoPicker.bundle/images/hx_original_selected_wx@3x.png + + zGeo3aQhdKCGy0GF24zBTOUJ390= + + HXPhotoPicker.bundle/images/hx_paizhao_bianji_huanyuan@2x.png + + guEh4Wyl/MvQHb9JQHsE+TQ0oNw= + + HXPhotoPicker.bundle/images/hx_paizhao_bianji_huanyuan@3x.png + + 5Wn9W8zZ4ZYqoxxzcP45rjHCYMw= + + HXPhotoPicker.bundle/images/hx_paizhao_bianji_xuanzhuan@2x.png + + y9I+Q3jZCDD42LjXXsDfcNmOlEM= + + HXPhotoPicker.bundle/images/hx_paizhao_bianji_xuanzhuan@3x.png + + pgkEtDJFSA+j3yU7SJSqW/40XZc= + + HXPhotoPicker.bundle/images/hx_photo_asset_video_icon@2x.png + + F03Km/6XTxQ0+uev7FGxU9SZir0= + + HXPhotoPicker.bundle/images/hx_photo_asset_video_icon@3x.png + + WBRaqMNFp3manClbGHYfubfuil4= + + HXPhotoPicker.bundle/images/hx_photo_edit_back@2x.png + + xbc91R33W0zsOM7pMPdrPJMAivY= + + HXPhotoPicker.bundle/images/hx_photo_edit_back@3x.png + + 0mydw6qGD5ZkOiSIoVTLIKoVpSQ= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_cancel@2x.png + + SWJHS57vJenqp2mYl8eDopmOtr8= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_cancel@3x.png + + 44Ss4sFJWbpJ9vKoJcNMJeuWPqc= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_confirm@2x.png + + oc8tEI4Goia/ieGOSnt66WMCr9s= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_confirm@3x.png + + ccLaA78nk952rawQhpz1tWds6uw= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_free@2x.png + + t5RD5DpMaTpdeMf3jUvqOCzZ9UA= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_free@3x.png + + 7yNks0LfQoRyWVOzxpGJG4QkZJA= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_horizontally@2x.png + + P7qFxcMl4noRYSmQJSE7hqA3BCI= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_horizontally@3x.png + + 4A4fXMqE9picbuDWeMWNes1tNEE= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_vertically@2x.png + + UWLIwYxV6jXQeTcVoN7/5oZRBTE= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_vertically@3x.png + + aFQajlGoMf7jLjmiVmzeajt9Uao= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_rotate@2x.png + + RnAF+57+AISwbrInjBuosGr3MF8= + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_rotate@3x.png + + /7Tfc4eoFSl6u8uJ6d8Hyj+gsGQ= + + HXPhotoPicker.bundle/images/hx_photo_edit_graffiti_size_backgroud@2x.png + + pwMhY+znVXg+/E6cXZIQcLyN/7M= + + HXPhotoPicker.bundle/images/hx_photo_edit_graffiti_size_backgroud@3x.png + + OmAb6ZiwiyCPInEZxmkSs00A7K0= + + HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_brush.png + + KKCVThdCYHsTwWjU404g0z3L/Ps= + + HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_color@2x.png + + dajQYIC7ABWxvC4dZqqcCoDAnMA= + + HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_color@3x.png + + Ju7NHndaJ6e04bK4IfdBzvjUJQg= + + HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_normal@2x.png + + x1Mzi8NrWYl++uG1NJjiQv9mNqk= + + HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_normal@3x.png + + d6EX4cQROsolAHUN1vxcKa86f3g= + + HXPhotoPicker.bundle/images/hx_photo_edit_pull_down@2x.png + + YmHfn28zmjT8irYlX4qknKBdoYM= + + HXPhotoPicker.bundle/images/hx_photo_edit_pull_down@3x.png + + iRVaNBpbOzOScUeh1EhgTg9SLT4= + + HXPhotoPicker.bundle/images/hx_photo_edit_repeal@2x.png + + w3LqWYORGpF7n8n8OUYK4+fy6r4= + + HXPhotoPicker.bundle/images/hx_photo_edit_repeal@3x.png + + m9OS3vRMAlDYGEv+QpIWz1Apl8k= + + HXPhotoPicker.bundle/images/hx_photo_edit_show_tip@2x.png + + Ie2ePqqdcpFDmU60sx98wziMexw= + + HXPhotoPicker.bundle/images/hx_photo_edit_show_tip@3x.png + + PyXNHZBRCsW2+yNivkgJADk67GA= + + HXPhotoPicker.bundle/images/hx_photo_edit_text_ normal@2x.png + + unwq52OVn8SwhrxmiLMS3oxnB7E= + + HXPhotoPicker.bundle/images/hx_photo_edit_text_ normal@3x.png + + wLOVCBkEoRUajFcVbSoTj0H1nYk= + + HXPhotoPicker.bundle/images/hx_photo_edit_text_selected@2x.png + + Pusfig89pHs9gEMNcRCxpSIorCY= + + HXPhotoPicker.bundle/images/hx_photo_edit_text_selected@3x.png + + kzwItYwIP2/oPblOBLV0ArQ/BUQ= + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_clip@2x.png + + Vyv7r87WBJzCh+H15P0woWOXh1E= + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_clip@3x.png + + /olM1QU3jyPeo1mh6YGBTiZ8k2Q= + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_emoji@2x.png + + e/tD55RvIxMWzon40P1GKfCSmx4= + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_emoji@3x.png + + Kwm/IcT6Tcj++wsj4sjjmov1enY= + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_graffiti@2x.png + + v/pUaRECpXjEjbXk/pXcqtf2Ww8= + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_graffiti@3x.png + + Kb4OxhKtqE44XQ68VzTh37ZJuGM= + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_mosaic@2x.png + + NZvowaayBASqk9OXkbSJ9gbzY00= + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_mosaic@3x.png + + 6kxlaueNga0a0TzgXLjp+3YPy88= + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_text@2x.png + + wkde4XjqYbu/1nyHPwNWSBVG2DM= + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_text@3x.png + + ePpGS/I9soQi/v+qY1g8XCw1ESk= + + HXPhotoPicker.bundle/images/hx_photo_edit_trash_close@2x.png + + AVLqSvEBzmQoHBvBEmjZaewJLRY= + + HXPhotoPicker.bundle/images/hx_photo_edit_trash_close@3x.png + + iUumw0t2OraUYfDSTvKuBH3CcFE= + + HXPhotoPicker.bundle/images/hx_photo_edit_trash_open@2x.png + + u7UDmVr5OMNFJy13tH5Oicvzk+c= + + HXPhotoPicker.bundle/images/hx_photo_edit_trash_open@3x.png + + 9d5iE14dUfy3O3vx5uAi77IBdtU= + + HXPhotoPicker.bundle/images/hx_preview_dark_close@2x.png + + tNmrWKYMnr6SuP/1FlB5GssLtt4= + + HXPhotoPicker.bundle/images/hx_preview_dark_close@3x.png + + Del/xCoqV31b1GOckN1zBdhpyT4= + + HXPhotoPicker.bundle/images/hx_preview_dark_delete@2x.png + + Rda6z1h86yn2R8qVAJGd5HBNYbk= + + HXPhotoPicker.bundle/images/hx_preview_dark_delete@3x.png + + MVIN2lHL/TEh6QIGAKU+R2AX9Pg= + + HXPhotoPicker.bundle/images/hx_qz_photolist_picture_fail@2x.png + + N/f38/Fh8N0XzXdLO/k7Mbz1Q9U= + + HXPhotoPicker.bundle/images/hx_qz_photolist_picture_fail@3x.png + + YZYWV5/8fcA1K1M571LTkX6S1Eo= + + HXPhotoPicker.bundle/images/hx_sticker_chongya.png + + PQWR3cHoNhmNP0GUJOXcNJ2HkWQ= + + HXPhotoPicker.bundle/images/hx_sticker_cover@2x.png + + IoyfXYF08akVyjM0EqfLrsAOh6s= + + HXPhotoPicker.bundle/images/hx_sticker_cover@3x.png + + obV5fjujjPS/x69lXWfPX8sq9dM= + + HXPhotoPicker.bundle/images/hx_sticker_haoxinqing.png + + cYQP+7xy4IFkHry8HQ1UT+4dkKI= + + HXPhotoPicker.bundle/images/hx_sticker_housailei.png + + cqVuey6Uw/R9sa+oCMxHYVYMwFo= + + HXPhotoPicker.bundle/images/hx_sticker_jintianfenkeai.png + + OFMoOJsmpOLJVQYUZLq3X9GqTJI= + + HXPhotoPicker.bundle/images/hx_sticker_keaibiaoq.png + + fgQ2VpBIOs7Y9vrn6re2zbrpHZQ= + + HXPhotoPicker.bundle/images/hx_sticker_kehaixing.png + + NChkOgWE8HUqVej8BZdifPPqCUg= + + HXPhotoPicker.bundle/images/hx_sticker_saihong.png + + TD5uS+6rx7r1V9gbJke+FGxYrYE= + + HXPhotoPicker.bundle/images/hx_sticker_wow.png + + HE12byKz7hnDR1wD8jM1n2idcc0= + + HXPhotoPicker.bundle/images/hx_sticker_woxiangfazipai.png + + mmR5tTmiolVVIdF3KI2aknbSHiI= + + HXPhotoPicker.bundle/images/hx_sticker_xiaochuzhujiao.png + + AjzP60wR1U8W5N1G2Hsk8picn4k= + + HXPhotoPicker.bundle/images/hx_sticker_yuanqimanman.png + + 3ISJdOIzGXVjJlK+lako2R+sRyQ= + + HXPhotoPicker.bundle/images/hx_sticker_yuanqishaonv.png + + EaBCEsHcXzRma3kb5M4UT+oHPzI= + + HXPhotoPicker.bundle/images/hx_sticker_zaizaijia.png + + /rWZlY84ezc0XpO23XDryCooeZ8= + + HXPhotoPicker.bundle/images/hx_takePhoto@2x.png + + DzrZ//mtmgsiv8OWzqMStRoFoPY= + + HXPhotoPicker.bundle/images/hx_takePhoto@3x.png + + CA/7QPyjbWFopAafnfIbp4TtYSo= + + HXPhotoPicker.bundle/images/hx_video_ pause@2x.png + + bev/Ia6xNCRkWu3vnoHCmR+Fmsk= + + HXPhotoPicker.bundle/images/hx_video_ pause@3x.png + + mTdJwahh6sXm9n1JT/RD1q7w5a0= + + HXPhotoPicker.bundle/images/hx_video_play@2x.png + + BS8JTNUozHNc3wAuw2y4M0mHv78= + + HXPhotoPicker.bundle/images/hx_video_play@3x.png + + ex56Y8OnSZdnzgElXDfpoD8YTcw= + + HXPhotoPicker.bundle/images/hx_video_progress@2x.png + + cWJ47xsH2p0OHv9jE9nE4OjITv0= + + HXPhotoPicker.bundle/images/hx_video_progress@3x.png + + 6qsLo8fM8vEePRvj+PeJQ3vbEes= + + HXPhotoPicker.bundle/images/hx_videoedit_left@2x.png + + tZTjGPV6QwJYy4kO2B21cTZD3Ao= + + HXPhotoPicker.bundle/images/hx_videoedit_right@2x.png + + tZTjGPV6QwJYy4kO2B21cTZD3Ao= + + HXPhotoPicker.bundle/images/hx_xiangce_xuanbili@2x.png + + 7VoGIkvvs7h2f4ZkBhINJ4KPJvc= + + HXPhotoPicker.bundle/images/hx_xiangce_xuanbili@3x.png + + A2J7H+3r9vYQDA88vh1y8xr7PBU= + + HXPhotoPicker.bundle/images/hx_yundian_tupian@2x.png + + KpF0EBg6TZsUILViuyOqWAqzvyk= + + HXPhotoPicker.bundle/images/hx_yundian_tupian@3x.png + + gnwpvOXae6YzAaZ+Ef5wnA18VoQ= + + HXPhotoPicker.bundle/images/hx_yunxiazai@2x.png + + sxOcupk84PqUXBW72sCwb4EWd6s= + + HXPhotoPicker.bundle/images/hx_yunxiazai@3x.png + + xsWIQpQ1DokR9GStegWl5Me5RKU= + + HXPhotoPicker.bundle/ja.lproj/Localizable.strings + + hash + + YNhU7yyYV5MPnoNfY8X0NWdTfn4= + + optional + + + HXPhotoPicker.bundle/ko.lproj/Localizable.strings + + hash + + qaz97vx+mPYCbRMBIJhb/J9dkno= + + optional + + + HXPhotoPicker.bundle/zh-Hans.lproj/Localizable.strings + + hash + + 9QgtgMCrO2PJl6rbHS1R5A8e6o8= + + optional + + + HXPhotoPicker.bundle/zh-Hant.lproj/Localizable.strings + + hash + + 27g/+7O0bidEcl3eLkB0ixuNOYU= + + optional + + + Info.plist + + pNczpXyrEK69EWUQB+oMtZ9pKXA= + + LBPhotoBrowser.bundle/LBDelete@3x.png + + TcHm4AYpCA0VZAjMEbaKDAzGqA0= + + LBPhotoBrowser.bundle/LBDismiss@3x.png + + Uc9XbsTPu9Q/AmVsrjkat4fhCs8= + + LBPhotoBrowser.bundle/LBLoadError.png + + vz6jrgts6fgANn/g2/Q9+PpCAIE= + + LBPhotoBrowser.bundle/LBLoading.png + + NXGP/pY3jRiwX0mrW/XhhXcv6TQ= + + PureCamera.bundle/camera-flash.png + + 9XvXr9AQHbpHSFVmmkaKreENfRE= + + PureCamera.bundle/camera-flash@2x.png + + bwnPFM3+Y/M8Jm23LvtdPVTonSU= + + PureCamera.bundle/cameraButton.png + + 8WUUXWfipYpQHPGgj7d0aUdZwQo= + + PureCamera.bundle/cameraButton@2x.png + + HcwbLeZU79u4M55RbnjSzbW9R2w= + + PureCamera.bundle/cameraButton@3x.png + + EJjCLjTn/uRY8yDqgj0CCJRHu6o= + + PureCamera.bundle/closeButton.png + + 5Dn4sCZ9DChV5EL9RR9uERmLvMs= + + PureCamera.bundle/closeButton@2x.png + + PKfzWXza8hSYL/G+cJs4LJQpGNk= + + PureCamera.bundle/closeButton@3x.png + + /dgp1IfYejId23ZQ8wmpvtYfXag= + + PureCamera.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + optional + + + PureCamera.bundle/swapButton.png + + pLMe7zXu4XrX+buDu0ghMxp3JAU= + + PureCamera.bundle/swapButton@2x.png + + yg5Sd3jRMuUwbYJbq03IkOGUi/M= + + PureCamera.bundle/swapButton@3x.png + + p29in6Wmnnp1X4Zmx0LtlUuSVno= + + QLPreviewFile.docx + + Mn2rgjNOcgSZzd/NVahSTKazB84= + + QRResource.bundle/Root.plist + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + QRResource.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + optional + + + QRResource.bundle/scaningCode_album@2x.png + + jrsHfhkFVnFuIXQt9w4NyuxWj8I= + + QRResource.bundle/scaningCode_album@3x.png + + r1/PtcfiO3O/HXuXI6bAb7eDFdI= + + QRResource.bundle/scanningCode_back_highlight@2x.png + + w577/ZEWktkoHdobPtzdRbCkVP4= + + QRResource.bundle/scanningCode_back_highlight@3x.png + + 8TUAJckYo5CEVEfkBLyzd21hrag= + + QRResource.bundle/scanningCode_back_normal@2x.png + + X3BKCIvbmZVI01bFhjJiFJWw/3Y= + + QRResource.bundle/scanningCode_back_normal@3x.png + + pqT5sHx4P2iVD0WuXo/VYK/fwwQ= + + QRResource.bundle/scanningCode_light_highlight@2x.png + + tgkXBsSmpgACFhkcj7YRh4kKbYI= + + QRResource.bundle/scanningCode_light_highlight@3x.png + + bINOz/42KMhDXe3TwGKa7f1PWoE= + + QRResource.bundle/scanningCode_light_normal@2x.png + + hX4Egv9Xj31Dgl3ITf0JgjL4LLU= + + QRResource.bundle/scanningCode_light_normal@3x.png + + C2g4vSTZex1EHkLSl1jpRcurwMA= + + SGQRCode.bundle/Root.plist + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + SGQRCode.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + optional + + + SGQRCode.bundle/sacnningCode_line@2x.png + + Sdq+Gly1PjYQxrAeRn0uRDaBUdc= + + SGQRCode.bundle/sacnningCode_line@3x.png + + 0h42mOyclVBYnzBXVVE/827JjRM= + + SGQRCode.bundle/scanEndSound.caf + + iZVdiwY7C4RBniEGgPS440vVkRo= + + SGQRCode.bundle/scanLine@2x.png + + hIOfFERrCtyus2oRKTWjCkXDCSQ= + + SGQRCode.bundle/scanLine@3x.png + + tmiCUo964YPLT/wKYv/pCuWKVfc= + + SGQRCode.bundle/scanLineGrid@2x.png + + dB3+VkRESnFugPUpyDJ2iHFAZiE= + + SGQRCode.bundle/scanLineGrid@3x.png + + Lxw8X/gDtCuZM3mhqVeg1opBZ7o= + + STSilentlivenessResource.bundle/KM_Align_occlusion_106_1.19.6.model + + 3RZXAXY2FXPpxvNs1DsOEx0sO7s= + + STSilentlivenessResource.bundle/KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model + + AkPAyLJ1+61AKvPszCecbUAT0Ao= + + STSilentlivenessResource.bundle/KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model + + +aNDwakxlMd+LR5KY1PGNtXjbeM= + + STSilentlivenessResource.bundle/KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model + + nQngtpRJ4i/Zp703VJLT4RhKA9g= + + STSilentlivenessResource.bundle/KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model + + 5nbhU2ze1pTUogCZBLbAjGyhhmg= + + STSilentlivenessResource.bundle/KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model + + qhrAF80eEFzUfcQgHpZU0jiwqZs= + + STSilentlivenessResource.bundle/KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model + + 3GInRkqUvSImAh8rmIz3+xyhbcY= + + STSilentlivenessResource.bundle/License.lic + + Nxw/UAaf6Edaq4cZ3EySdrmKbwg= + + STSilentlivenessResource.bundle/Root.plist + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + STSilentlivenessResource.bundle/config.plist + + s+4Pqn0wSDUbVuxTT6Oq6mUWYh8= + + STSilentlivenessResource.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + optional + + + TOCropViewControllerLocalizable.strings + + vEw+mYuMGYOOEb/QlsWpjRbN8og= + + + files2 + + DCBDocumentListCell.nib + + hash + + KiY1LMW8+/lattRKIJXnJdK6QlM= + + hash2 + + oMCaCZbyON8PVDmsUTX3H+GlQ5Yfse7mdXtA+TMOwjc= + + + DCBPhoneAlertView.nib + + hash + + lbqARRRccgZeCBrqRBskdYCRFoU= + + hash2 + + 15Kzm8fAsZlIORc0SM+DIfGMe4uDDOcjr7cyWdHQB+g= + + + DCBUniPluginResource.bundle/Root.plist + + hash + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + hash2 + + m26DmegPkB5jwUJkVEtLlObYALX8He100Ny0+NNJg/g= + + + DCBUniPluginResource.bundle/abnormal_icon@2x.png + + hash + + 0jY2daoNRFF8KknFv5OIOgcctic= + + hash2 + + oZIexe1Jt7fe96B5BUo73sGrAIBsEiekwAb85O7gfK4= + + + DCBUniPluginResource.bundle/abnormal_icon@3x.png + + hash + + bB3bKT7DrKXP6cLDVauXPb1GA5I= + + hash2 + + CRHBrLeiiTF11sV5oMaZkwIRQzWbsGAm3gdordvy5s8= + + + DCBUniPluginResource.bundle/btn_takephoto_normal@2x.png + + hash + + BZEOlY5Xr+qQkEmDzmujGG10vEE= + + hash2 + + CmNEFqzg6eV9BsSE8Gnyq7tWvmRqZUJ7Jmt/UhNoLmg= + + + DCBUniPluginResource.bundle/btn_takephoto_normal@3x.png + + hash + + 34TpcLibY75ULOb8xkQ+gNsOnGE= + + hash2 + + zXSGK4d0EnnkqVmNB8W43wHrpnAs21dCmGzkC8kk67s= + + + DCBUniPluginResource.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + hash2 + + xUzNd7J7w99oAnMIWGe1dAGArHMuEXwQqxSziDU5vLk= + + optional + + + DCBUniPluginResource.bundle/error@2x.png + + hash + + iPDklTVo8YpTWFRUvM2EphIX6Aw= + + hash2 + + 2MC1t999V4y1HzeSN2tuy0ETB00FZt1OInmeG1HyFBM= + + + DCBUniPluginResource.bundle/error@3x.png + + hash + + y6m739Z/DdgvN1izlGwbKz+oWVE= + + hash2 + + PEsAYBC6lCF5KnjUE6aOcO/BZFuRqTAFcxubhCfScQU= + + + DCBUniPluginResource.bundle/file_icon.png + + hash + + dFhPEmssPpbX0I3PC6CqRq1Ckb8= + + hash2 + + dFMBYc7dDhP34G1cc8tSm9YEF/uE/9IvVN6HwcRUxo8= + + + DCBUniPluginResource.bundle/flash_close_icon@2x.png + + hash + + ndfmOtrDhB3/33/rfvqYUoyz23Y= + + hash2 + + gHQJMdsWwdg0bu9aRe6tfoVT/XVcpLS7MP3RZ4j0qIU= + + + DCBUniPluginResource.bundle/flash_close_icon@3x.png + + hash + + ZgZHiMVIUCXaHS9vvQUUKRtxjT0= + + hash2 + + zkhFqsIk7Q8f0bOTyvD9ia11c+4X8JLvKIpjjIPH094= + + + DCBUniPluginResource.bundle/flash_open_icon@2x.png + + hash + + hHTqFQGRpbBREFyn0xdBh7f897g= + + hash2 + + p8CV+r8Vfbp709FQNVN93LzzSpqaqA5qg6L0ZeszxoY= + + + DCBUniPluginResource.bundle/flash_open_icon@3x.png + + hash + + NW1gKWsCRpab8x7o5Uc+hc2GwYM= + + hash2 + + p2ky0UVtDGLp4ZQVzTsWB9OC6+LrJW4vqEfTSwTroVc= + + + DCBUniPluginResource.bundle/nav_back@2x.png + + hash + + 3r4vpvlybfQ9SBQRGHmP8SoY3u0= + + hash2 + + yLN52Ll+ujA6aYaTT3RMjFVZF+kWhxY4KNNmHqC8hVM= + + + DCBUniPluginResource.bundle/nav_back@3x.png + + hash + + XlVdXYAblylvrV2JMHnbRkRcuzQ= + + hash2 + + dhwR7AOHI5dSr7xL214vvymY1JOSPVpGDg8vCQaPTvM= + + + DCBUniPluginResource.bundle/no_data_common@2x.png + + hash + + jEBvFbHLLk02VgTLvsTVUzSRilY= + + hash2 + + UuQXK9WNPbhWXPX7hqRJWUKHnGqqRJUULOWPBKfzjGg= + + + DCBUniPluginResource.bundle/no_data_common@3x.png + + hash + + 0J/9YarhrRQxeq+XusIyUAvlIXM= + + hash2 + + rs22dHVprwDOyvaaunAkuaMPPMAMlO4yceqWEVVyFOM= + + + DCBUniPluginResource.bundle/no_network@2x.png + + hash + + kBw0qgjssCjss5zX4j/oacWiK4U= + + hash2 + + D3LnsgJHmJNQirFMOK5AXZ5ntZwloZmZuH55IVMXznI= + + + DCBUniPluginResource.bundle/no_network@3x.png + + hash + + Bk/J5D0N55A+ze872gpi/zY4Heo= + + hash2 + + aZ91gUW1YbNpQmZ+ps3wPcbGnzW1As5B9yOz0Fia/6s= + + + DCBUniPluginResource.bundle/paid_chuli_icon@2x.png + + hash + + PlA6d0SgFVpCpqIxfStKDT7c4e0= + + hash2 + + +836JsSw8f6Uv7glqirrgHTNJVG393BPztFVp7UZQY0= + + + DCBUniPluginResource.bundle/paid_chuli_icon@3x.png + + hash + + ZCjgz/UQ9t1mouVaXgtCz8AX8k4= + + hash2 + + bEzwcI9VHLjOK4W4lFYvjCBFrRvCEBd+fvC3GT+wYXA= + + + DCBUniPluginResource.bundle/photo_back_icon@2x.png + + hash + + WgOYyaEBjHpTgeGBOyGB4snRdIA= + + hash2 + + zulNpxhDv7y2hyu8C1qNUrZv3bXtVBbz1LKlVW2J5vU= + + + DCBUniPluginResource.bundle/photo_back_icon@3x.png + + hash + + dZbq62DJG4PdavgxAI57VR3lwIc= + + hash2 + + v7T/7V+kF5uJwVxqIHIPMDByAVX50fyQa62JeuWDo5I= + + + DCBUniPluginResource.bundle/photo_cover_img@2x.png + + hash + + s240AYKgkq4vsMn5tnZphTscYCs= + + hash2 + + vX5uI3M4iZlOXxD0fnOv/LStcGt6MjLtxiB9YoCCcs8= + + + DCBUniPluginResource.bundle/photo_cover_img@3x.png + + hash + + 9xUcvDa8wmYWYZjK1rn9lvjY0N0= + + hash2 + + Wd3zV7oRuFJvkPyDJWa1JHk/pO/9LxNOgInm0DpRHOA= + + + DCBUniPluginResource.bundle/server_failure@2x.png + + hash + + G3h9cJ5Ifo1RenTBiO7XCy747oI= + + hash2 + + TCZvFNRDS6M/wR7IgpJtmei82vStmzF6t5/i1aUlC8g= + + + DCBUniPluginResource.bundle/server_failure@3x.png + + hash + + hZOtq6UDWZCC0NErIIf8dAInNDs= + + hash2 + + CINtyQwaIcTSwniLEDVZ2MLisJRIZfnkLpz2l50HdMg= + + + DCBUniPluginResource.bundle/succeed@2x.png + + hash + + fT1fD6o2DqWlQgJTZ82tWX4TSe8= + + hash2 + + 3ka1FxciT1YngooacYVItXHFRTtPxmCUj8L/UimqnyE= + + + DCBUniPluginResource.bundle/succeed@3x.png + + hash + + l9Wh7oMyhtQ6nj+zIonl7AvyrRk= + + hash2 + + lfrJiQ2qrX3PNtvMLetjiUHZWgjo6kNS0oIYGMNjes8= + + + DCBUniPluginResource.bundle/thirdApp_login_tip@2x.png + + hash + + JuXrJiNJ/sNAozjI+VPE1HYKEOg= + + hash2 + + VpCAf01rQIs6tDA+dXUVA4EUqCyQ4p6M0wVrYP5/9rk= + + + DCBUniPluginResource.bundle/thirdApp_login_tip@3x.png + + hash + + 936+fWZghxH7U2iWdH0SsJzO2ZU= + + hash2 + + fhpme63gFqHI5la2F3BZ0hInVzyxKmDxzCZQtOk8eV4= + + + DCBUniPluginResource.bundle/web_close_normal@2x.png + + hash + + Y1qeNbWwpAYkX7xuBD8VTQLXMkM= + + hash2 + + ulCchBikZ0FyEcft1NxocuwAlDtqkXPYtnfcDiMeDeY= + + + DCBUniPluginResource.bundle/web_close_normal@3x.png + + hash + + sOwhSY57R8ywA6reecfZocIVDVw= + + hash2 + + ahm2G85BxQXfgVA/rTmqtwwdc2Og/ODTz6M+1VnwgeA= + + + DCBUniPluginResource.bundle/web_more_normal@2x.png + + hash + + nEFBj60BhGYGlqcGrClnsFT5TDE= + + hash2 + + Gx93UW8bDLI0ytXyuqEnSvkhzWF6clAnQJy4AuwLzIk= + + + DCBUniPluginResource.bundle/web_more_normal@3x.png + + hash + + 7Ai0RWnO1oDAXjCVzyuWjKmOSLE= + + hash2 + + hnlURgy2wawVOq8KjhZ1VkqxAPixIQ00kLu6Rm0X72g= + + + DCBUniPluginResource.bundle/web_nav_back@2x.png + + hash + + 3r4vpvlybfQ9SBQRGHmP8SoY3u0= + + hash2 + + yLN52Ll+ujA6aYaTT3RMjFVZF+kWhxY4KNNmHqC8hVM= + + + DCBUniPluginResource.bundle/web_nav_back@3x.png + + hash + + XlVdXYAblylvrV2JMHnbRkRcuzQ= + + hash2 + + dhwR7AOHI5dSr7xL214vvymY1JOSPVpGDg8vCQaPTvM= + + + DCBVoiceRecordView.nib/objects-11.0+.nib + + hash + + W+XwJDH+LTX+lNrHy5KhHyoO2Ew= + + hash2 + + CcoEf+dM7a44dMUTW15I+J0mVyYL6/AZfIwk7UPk14M= + + + DCBVoiceRecordView.nib/runtime.nib + + hash + + WYv2TdqkKkiV1SEiL6juw3Ui1GI= + + hash2 + + 5PeJqCWvXuT3FyXhYgF2gwg6XfTFr/bjH+FLf7S62UY= + + + DcbPhotoTakeController.nib + + hash + + IVF4I6k7AHmyNyBbux7zi5D3WL0= + + hash2 + + GLg3vn9MrL+p8v1INCRXTk5RlxfMhB4liB73Yn8mnbY= + + + HXPhotoPicker.bundle/HXCameraBottomView.nib + + hash + + DXHBRDMscY6mka/X5U8ENkNw+O4= + + hash2 + + 5DKQGam6DF/Qn3bTqMOktPSeB/PnfMNZ8ofnJHnqrUE= + + + HXPhotoPicker.bundle/HXPhotoEditChartletContentViewCell.nib/objects-12.3+.nib + + hash + + 6QxBt/wl5S/JryYgQXuklKrz4Vk= + + hash2 + + rKmZkxTtmyYYt4UDD3D9T54L16NcmyY0bgcD+X9/wkc= + + + HXPhotoPicker.bundle/HXPhotoEditChartletContentViewCell.nib/runtime.nib + + hash + + IbM1eT64PmcUzLK/ujyl/ob562U= + + hash2 + + LhDFL0cH8p72cDyKgpEKo0ALDcWn9pTFTr5RPwKSSNQ= + + + HXPhotoPicker.bundle/HXPhotoEditChartletListView.nib + + hash + + ojKvX1d/CzjDkXmT0Y2cMKZfNjs= + + hash2 + + uHtamXnA5hg42cRogrnkSkWnd1AYEU8JafJPGK9D8xI= + + + HXPhotoPicker.bundle/HXPhotoEditChartletPreviewView.nib + + hash + + NlSZ2l23iG5IGtCE+NWvQ4LZMFo= + + hash2 + + P4yYu/v2odJgg5txb0nzGZeV+DjahcinmxfcBAw81sU= + + + HXPhotoPicker.bundle/HXPhotoEditClippingToolBar.nib + + hash + + zM9Dh07hEHOWr4vq16HkScQjBRc= + + hash2 + + /3go1ddpVxJOiYoLJHt1n6nDoyqbGvb0w/T7v2K6pqs= + + + HXPhotoPicker.bundle/HXPhotoEditGraffitiColorSizeView.nib + + hash + + IlE9Ys5lkqUL0Ypc5czO8Uw9z7o= + + hash2 + + FqZ840Cc8SYqL0hoM0V8qYE8tEEQcwAJFL29qy7p7fw= + + + HXPhotoPicker.bundle/HXPhotoEditGraffitiColorView.nib + + hash + + 981vL6Hk2dC7+YAktGnAsnsCq5A= + + hash2 + + g/2yeNFtKYK6HMvrx9cvhDH9Wyccm0UwNjurVToEsGA= + + + HXPhotoPicker.bundle/HXPhotoEditGraffitiColorViewCell.nib/objects-12.3+.nib + + hash + + D/RwFNQaL6xU4Fsc8Os/U+FlNqc= + + hash2 + + YJnn0t7MB+oIPMMA3+pAJ99CKi/SJkDzIClg9tCNCqY= + + + HXPhotoPicker.bundle/HXPhotoEditGraffitiColorViewCell.nib/runtime.nib + + hash + + 7pvl73tsEl/4woxq2qeZsbFn9bA= + + hash2 + + 79/6vXK1E+lYkcRABBT2kJl/KTZfG86ajy+0fd3ZZnc= + + + HXPhotoPicker.bundle/HXPhotoEditMosaicView.nib + + hash + + KC3thyGb9fUj7uB7dqBBDioaFuU= + + hash2 + + cvCvczJZou2Gk7N/VsY+TqR7BRuf43B/EZO9icDiBaM= + + + HXPhotoPicker.bundle/HXPhotoEditStickerTrashView.nib + + hash + + cP+iBPyLhaAcEK0z/3A96poOLgI= + + hash2 + + shjKJp78okqbzbC4bj2QbEQiSVXVsdzb9FNyGfL8bFs= + + + HXPhotoPicker.bundle/HXPhotoEditTextView.nib + + hash + + nLUf04lPus7Kn/+w2V2xnx69uEU= + + hash2 + + r0KIgXCzF8IaqrM+ga3QCFvJi5fPTbVjTblXlt922Ac= + + + HXPhotoPicker.bundle/HX_PhotoEditBottomView.nib + + hash + + D3h+ZwA9jD2qx/pgO2/whZRgz/c= + + hash2 + + +w5IqgDHNzo4DF32GDLJB5ffufPKwDvqs+PRVjGtp4U= + + + HXPhotoPicker.bundle/en.lproj/Localizable.strings + + hash + + KoIlHcwK43tavdpp4DQTmqN8UMg= + + hash2 + + POrB0GBq04GlTS5da7DRL9ycb3o3bIZxPfvLRM4INwE= + + optional + + + HXPhotoPicker.bundle/images/hx_alert_failed@2x.png + + hash + + 2FI5/Clo0/WQWxhra5oYC9Pn2tc= + + hash2 + + Gvv1mXGjDwSag8lfe+JuV77fzmmEMH+VuqpETYurSJI= + + + HXPhotoPicker.bundle/images/hx_alert_failed@3x.png + + hash + + zD9GBoq6xwwyltgl8zFkMJPeOmw= + + hash2 + + Rhl4a8al7oqd5p2gs6POIcjP6YwzbUSoHWQzT5zePAQ= + + + HXPhotoPicker.bundle/images/hx_camera_down_back@2x.png + + hash + + y+b5Kca6lQQjyiZ/fIL1QJdDvEA= + + hash2 + + MNuULfXKoSD0pYgcaZ5eC4aTTIjHrNx9JFozep/m074= + + + HXPhotoPicker.bundle/images/hx_camera_down_back@3x.png + + hash + + fnMFziJXDyff3V5FJnzwKti4h3k= + + hash2 + + 07u0stU++iyXF0kzFbXE6faPPp1FTu/r8HZoR6nJBzg= + + + HXPhotoPicker.bundle/images/hx_camera_focusbox@2x.png + + hash + + ZR9a1HptnMc38eU6GuPgVV6i0Qg= + + hash2 + + dUEoYaGPDgWk3gDMLOk36fhkcqL6GYI9DihrJWmkp0Y= + + + HXPhotoPicker.bundle/images/hx_camera_focusbox@3x.png + + hash + + hefQhIN8AMjr9TUmLmc9G3PHZ5w= + + hash2 + + ndjVHVHbvQ3Ef0xgtIwvVCBgmc5Gm8MQF1NvACC4vfg= + + + HXPhotoPicker.bundle/images/hx_camera_overturn@2x.png + + hash + + 4ZFJ5kPzv3jcbI3d6NCBoVkctIo= + + hash2 + + azCoX5+SPi+U739k69A3rM+ImO4Ftidu5w13djTcF6I= + + + HXPhotoPicker.bundle/images/hx_camera_overturn@3x.png + + hash + + eMGertbAWpq8ueavoBGYWc+RpbQ= + + hash2 + + nNGFlDwpkSspcFk7ku5jKODZZjOoXGl3k/kiodh/grM= + + + HXPhotoPicker.bundle/images/hx_camera_video_crop@2x.png + + hash + + NM7KpENfxBGLTpjHXWwduv+3L4Y= + + hash2 + + yNVB/vtsX0NSYe4pfePDLAJJb5XrlIHXW3ttGnTdpNA= + + + HXPhotoPicker.bundle/images/hx_camera_video_crop@3x.png + + hash + + 8xIJF2GgiYby7TfgiKpCppFtb2Q= + + hash2 + + dVrZqbXGhmCdllQ/MZ5ovrLaCuXMxZVPX1lyrVeHA7c= + + + HXPhotoPicker.bundle/images/hx_compose_delete@2x.png + + hash + + c/Zs7EKaLgb7wKAWe2KQi3KWtCc= + + hash2 + + a8nKs7AlrDpmLPnrAikdOu6upvchUzg0k4Hz8YkN52E= + + + HXPhotoPicker.bundle/images/hx_compose_delete@3x.png + + hash + + 6uDLJ4SYrtsbUwVKRvsJ1KgGqqo= + + hash2 + + ZfZrxPiQ1L0LkuRjrgZELqCnvT2taNZOX397o0pRakg= + + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default@2x.png + + hash + + xK1SP4XZhx1T+tR/SEzozFZzjM0= + + hash2 + + J1fUh4uWUze7uvKFkMmOQtPl3gvWi+9PUy3bBpoFt5k= + + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default@3x.png + + hash + + uwdWS8V2mRp4UB8B+8JZKoKBiLY= + + hash2 + + CFBCUvlIXJQGnTTkg2+mrgwKwtlSE2G1BnKt0ztgGGs= + + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default_2@2x.png + + hash + + MsCi5MU69IAB6sVTYXAxS4RvQOI= + + hash2 + + GBOY2mVhRgP734uhoDbywhpVBkGGCqss2Kjn6ge+UQ0= + + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_default_2@3x.png + + hash + + K3wU/IoO3OQTjgAFyL1vQ3X6IGo= + + hash2 + + eXVeJX3EvQSP43oaGeqhLgtV/N5PVXggGvhHHWWTDCQ= + + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_selected@2x.png + + hash + + 9vh+ziqigQLCED9P+XmZkXVFvQ0= + + hash2 + + S7qxYfHjtVSh4QVeai312yNjrqAPCRzP3NpGBLTnQPo= + + + HXPhotoPicker.bundle/images/hx_compose_guide_check_box_selected@3x.png + + hash + + SqwrpyT7kBDFVPynPdYKmT1SjVs= + + hash2 + + IisKiEGfEjsJMaeFJezHlglpZVyw8550xH1qUnQJIkI= + + + HXPhotoPicker.bundle/images/hx_compose_photo_photograph@2x.png + + hash + + r/RwArwv/NLWVcNqH6lYHODEOVM= + + hash2 + + /heDlkX5dqFEGBtG3X1U1c20X8IgvpUH8g2wgg9FbE4= + + + HXPhotoPicker.bundle/images/hx_compose_photo_photograph@3x.png + + hash + + NclzyB1UJdxTVdFtv2TRG82QPE0= + + hash2 + + vBIzCI8Ohl2zaZAk0BxJW012p2pGVm2yNvkcT+OhAoY= + + + HXPhotoPicker.bundle/images/hx_faceu_cancel@2x.png + + hash + + /fh157+XxPREFkkGDay1WKh9Qdk= + + hash2 + + DlWh53LezsPHxOHVMm4eup6Xq9sFWhmtYxIiNIWVoys= + + + HXPhotoPicker.bundle/images/hx_faceu_cancel@3x.png + + hash + + AFu7B5eVRVEqoIHL8L11LVAENtw= + + hash2 + + XprPmHM0kdlfTpg9B4cbXKPfzBHnHKderWeFhVW/+xE= + + + HXPhotoPicker.bundle/images/hx_list_add_dark_img@2x.png + + hash + + kHyJFh5JGWC3DWdEF1p5UbeaDKs= + + hash2 + + LOldDXCSAAp5phd2R8FLKwNHQt45PrRIdU5KxmhsZ/M= + + + HXPhotoPicker.bundle/images/hx_list_add_dark_img@3x.png + + hash + + LZPZRJINXfy/XKOtv38eSH2T9RM= + + hash2 + + gPxBO8crhifUKxsTIONe2TE5mcy0AfWIGMaZQphy9Y8= + + + HXPhotoPicker.bundle/images/hx_list_add_img@2x.png + + hash + + DuMeVpxVuxaFdvR8ri62zCqhous= + + hash2 + + zrOrZRt2L/q5j4A27zViC+oaIedj1igiwaWscTgGi0M= + + + HXPhotoPicker.bundle/images/hx_list_add_img@3x.png + + hash + + snPpd3We0wGxGosS3WurK+8aDD8= + + hash2 + + Yw57u5lPYPRfKTPuAPhs337rUWTCHhT/sHzI6oBG8gw= + + + HXPhotoPicker.bundle/images/hx_multimedia_videocard_play@2x.png + + hash + + eeQEN2ZM9JjX3mC3aF4uWAVMAng= + + hash2 + + 3nmjg/crfd3FctHJrbHbnkbSHbFQJEWHlOs5gLQfMR4= + + + HXPhotoPicker.bundle/images/hx_multimedia_videocard_play@3x.png + + hash + + N2Yeo/elK8/5GfKhUKllV06ryms= + + hash2 + + d65QH11DcvKRJOpWCDujrBHxrqs/pJWVYSMiPOZ6KI8= + + + HXPhotoPicker.bundle/images/hx_nav_arrow_down@2x.png + + hash + + bhCdYuuE/SHlH6u2BYgU34NKcVU= + + hash2 + + FohsdSLQYXeX9+ywHCdk7tyYKW7lCL4Fstm50J3K9Oo= + + + HXPhotoPicker.bundle/images/hx_nav_arrow_down@3x.png + + hash + + xkCjVWrz6CxEEqndeTY55HZIZo8= + + hash2 + + rqAaQAi1XsTgRVr/OzbrTxw2Wj/bIlbF0MKwG1zeRd8= + + + HXPhotoPicker.bundle/images/hx_nav_title_down@2x.png + + hash + + 2I6gWWhiZZW6IKLFsPqDklZNh4Y= + + hash2 + + hXviyDN+MHd34bRH2K3LyH7mow8R4R9BnuoUjTE3/1k= + + + HXPhotoPicker.bundle/images/hx_nav_title_down@3x.png + + hash + + FuJMsaiuiDvIqQthT0WgTpG3R24= + + hash2 + + zMA1/csJ9uZPzoKuqzYBBopXa0jaa4mngqljhHefI/U= + + + HXPhotoPicker.bundle/images/hx_original_normal@2x.png + + hash + + zwTsVCclNS9/wfH8rHpg9Iubpm4= + + hash2 + + oddZklOEHMLPG3yJCPz9eVp4yJaJOqdV6oPM5RPA+rw= + + + HXPhotoPicker.bundle/images/hx_original_normal@3x.png + + hash + + 196Dj+3Bf/MilSUwlKuOqkmlhJs= + + hash2 + + m4tsca9DS5COv0iDhpOG1Jt86nLCP+TEkr5KpaYXJ/w= + + + HXPhotoPicker.bundle/images/hx_original_normal_wx@2x.png + + hash + + bK9HN4iBcef/pDDGpKx6DkootsQ= + + hash2 + + x4qwZ+v/2EL36X5KFzZIVgUq4R+qUHGXpe9tVq7W7mk= + + + HXPhotoPicker.bundle/images/hx_original_normal_wx@3x.png + + hash + + IDqwGXTizOylPuTC9ONGq+vXe2A= + + hash2 + + ARDnUP9mc6FreK0UHdvqVKkDdvHL9R6Sg4fC6WDm1dc= + + + HXPhotoPicker.bundle/images/hx_original_selected@2x.png + + hash + + INJg4COOf3ZFeXNS95zDIXME0Bs= + + hash2 + + DifMBiSa9z2bfF2pAAHFWJj3DCn3skX35r/sDreCa3U= + + + HXPhotoPicker.bundle/images/hx_original_selected@3x.png + + hash + + q5MCQK55+jmAtW7X28mWuKnBkMM= + + hash2 + + fp0CRbVasQRpm9ydK1KYdxheMSy7tvCcM7qUP/3XIFs= + + + HXPhotoPicker.bundle/images/hx_original_selected_wx@2x.png + + hash + + yefaPGg/kW10GzD59BdHcXS/5vQ= + + hash2 + + bN5n5T9+NpEsyI258vB00cn0QhRA3jqhTrOn5TISaw0= + + + HXPhotoPicker.bundle/images/hx_original_selected_wx@3x.png + + hash + + zGeo3aQhdKCGy0GF24zBTOUJ390= + + hash2 + + L4udmY8WaCxJyns9RdgrX6SdB3ncsua6dEe5RSon6MA= + + + HXPhotoPicker.bundle/images/hx_paizhao_bianji_huanyuan@2x.png + + hash + + guEh4Wyl/MvQHb9JQHsE+TQ0oNw= + + hash2 + + CwN4t8+eB9b29VrcbG/8afuPeQKGNz1AdjSrhx3teXc= + + + HXPhotoPicker.bundle/images/hx_paizhao_bianji_huanyuan@3x.png + + hash + + 5Wn9W8zZ4ZYqoxxzcP45rjHCYMw= + + hash2 + + pr1dkBDYxvbmaPv4X4gifSbpAfQvlv5vLZ+HMpSTRg4= + + + HXPhotoPicker.bundle/images/hx_paizhao_bianji_xuanzhuan@2x.png + + hash + + y9I+Q3jZCDD42LjXXsDfcNmOlEM= + + hash2 + + 4etsPDToGC6soNpn4lAmCXJc9DWFTIdxQ40g/zs2GJ0= + + + HXPhotoPicker.bundle/images/hx_paizhao_bianji_xuanzhuan@3x.png + + hash + + pgkEtDJFSA+j3yU7SJSqW/40XZc= + + hash2 + + lRlYu3h090DXH1qXrA1PSNaHpkluzQaOSmouM5Jc72s= + + + HXPhotoPicker.bundle/images/hx_photo_asset_video_icon@2x.png + + hash + + F03Km/6XTxQ0+uev7FGxU9SZir0= + + hash2 + + aV37Tu9LptTsswf2WN7h7nPu/PWT0dpW7z3CN6y/Xnk= + + + HXPhotoPicker.bundle/images/hx_photo_asset_video_icon@3x.png + + hash + + WBRaqMNFp3manClbGHYfubfuil4= + + hash2 + + QkRx9FXUX/v+v5lxSZrUBAJ7cP7A5LNkiTBHUkQkM9E= + + + HXPhotoPicker.bundle/images/hx_photo_edit_back@2x.png + + hash + + xbc91R33W0zsOM7pMPdrPJMAivY= + + hash2 + + aSlbaY64IgL36edflBK5XK7ErpPJ2QzZ8RnUI3ntos8= + + + HXPhotoPicker.bundle/images/hx_photo_edit_back@3x.png + + hash + + 0mydw6qGD5ZkOiSIoVTLIKoVpSQ= + + hash2 + + 6Qksujkq4IGQ6wMVWfXgV1dS+poQ+t6aEbwvcdjby2U= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_cancel@2x.png + + hash + + SWJHS57vJenqp2mYl8eDopmOtr8= + + hash2 + + ORZ+3TtEsMyj7fMcWSgsmMbjdZjMEMkPFQzokCAaJwI= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_cancel@3x.png + + hash + + 44Ss4sFJWbpJ9vKoJcNMJeuWPqc= + + hash2 + + GO+gacN4J2g6Rn5Nwn+8U2RFQ504MN3qdF/MQfCy5xA= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_confirm@2x.png + + hash + + oc8tEI4Goia/ieGOSnt66WMCr9s= + + hash2 + + pa2gBflmgAxD9gIEboPffkNROLpeBFrYnf+0TJETmQI= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_confirm@3x.png + + hash + + ccLaA78nk952rawQhpz1tWds6uw= + + hash2 + + rqfqOraBI3MjvktQnZNj4tDPo+gEXU60GSTojoOs/io= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_free@2x.png + + hash + + t5RD5DpMaTpdeMf3jUvqOCzZ9UA= + + hash2 + + DC/qGodUSxpkqw0L2So4JKUKm21BNslEjGXStd3yJVY= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_free@3x.png + + hash + + 7yNks0LfQoRyWVOzxpGJG4QkZJA= + + hash2 + + ZH03ob50Ws57MagQ0iXhKAIcHxVWSdUlgLIY3srJHmc= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_horizontally@2x.png + + hash + + P7qFxcMl4noRYSmQJSE7hqA3BCI= + + hash2 + + Z2r8xD2HoPGxitTRRtFbG5junnxfQwsY0AtD43ZBEKs= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_horizontally@3x.png + + hash + + 4A4fXMqE9picbuDWeMWNes1tNEE= + + hash2 + + I3x+nspJLLsrAg27ZdrBW50YgAk79tSyKiAJj51Qt/4= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_vertically@2x.png + + hash + + UWLIwYxV6jXQeTcVoN7/5oZRBTE= + + hash2 + + 0PT8W9RlguZWv74qJNrRrOfTwiyp7b7O3Xp8BfPUQkM= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_mirror_vertically@3x.png + + hash + + aFQajlGoMf7jLjmiVmzeajt9Uao= + + hash2 + + iYz7nobaVQs9RRyIre0QWxmOyG+UQgPTUkBkUewmICc= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_rotate@2x.png + + hash + + RnAF+57+AISwbrInjBuosGr3MF8= + + hash2 + + mspO0Y35jlwrzaeQgeEbNulkuSUbehwiQAIUSUalbb0= + + + HXPhotoPicker.bundle/images/hx_photo_edit_clip_rotate@3x.png + + hash + + /7Tfc4eoFSl6u8uJ6d8Hyj+gsGQ= + + hash2 + + FR2y4/eWgSU2n8MmINYSwRd5yqR+/L0ZKgff3hjw9gU= + + + HXPhotoPicker.bundle/images/hx_photo_edit_graffiti_size_backgroud@2x.png + + hash + + pwMhY+znVXg+/E6cXZIQcLyN/7M= + + hash2 + + ar2Q+Fwspp7RByLSvA26ADyyYwD/JWRiCdy++quR+hM= + + + HXPhotoPicker.bundle/images/hx_photo_edit_graffiti_size_backgroud@3x.png + + hash + + OmAb6ZiwiyCPInEZxmkSs00A7K0= + + hash2 + + gjwivtdxZSM7HRmjjBDPzyXXUMP8PbsVOtjI/rQVBfo= + + + HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_brush.png + + hash + + KKCVThdCYHsTwWjU404g0z3L/Ps= + + hash2 + + IKvkw9PjTL5wnhx5JUyltVHWNjA4USzJDzmj1Hi3U0U= + + + HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_color@2x.png + + hash + + dajQYIC7ABWxvC4dZqqcCoDAnMA= + + hash2 + + yCycGVmnjkjfSv+ib8LyWKzw99mjd8aNSE7VIVqPZMU= + + + HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_color@3x.png + + hash + + Ju7NHndaJ6e04bK4IfdBzvjUJQg= + + hash2 + + tIM8QH+icS4ZmjhzBW62kHihxP+h+kouk/U61YXz6ow= + + + HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_normal@2x.png + + hash + + x1Mzi8NrWYl++uG1NJjiQv9mNqk= + + hash2 + + ohx5NDFyesm6pHeztLnRU4H2nDPbSfmILvofStvpNpU= + + + HXPhotoPicker.bundle/images/hx_photo_edit_mosaic_normal@3x.png + + hash + + d6EX4cQROsolAHUN1vxcKa86f3g= + + hash2 + + qjBW6DlH4zQKOdteLq0PMjat6yLBu8ic5M4LX//Aa9Q= + + + HXPhotoPicker.bundle/images/hx_photo_edit_pull_down@2x.png + + hash + + YmHfn28zmjT8irYlX4qknKBdoYM= + + hash2 + + N7Jo1pJDHTJPc2tdlUj//iGSYO3/fuPxO2vbw8K0HBQ= + + + HXPhotoPicker.bundle/images/hx_photo_edit_pull_down@3x.png + + hash + + iRVaNBpbOzOScUeh1EhgTg9SLT4= + + hash2 + + vA1ktL/t9D/nWpXRjoF/z/aIS4X68j2uBSlFIfKnm+U= + + + HXPhotoPicker.bundle/images/hx_photo_edit_repeal@2x.png + + hash + + w3LqWYORGpF7n8n8OUYK4+fy6r4= + + hash2 + + 0zHzTsBDO+XstoEs1j4pk15vmx8lHdk1KqCNR1dQsp8= + + + HXPhotoPicker.bundle/images/hx_photo_edit_repeal@3x.png + + hash + + m9OS3vRMAlDYGEv+QpIWz1Apl8k= + + hash2 + + /DuzZun4Zi42rMD4D3I/wUyZJLEkv1Bv2mcMMBbP8/k= + + + HXPhotoPicker.bundle/images/hx_photo_edit_show_tip@2x.png + + hash + + Ie2ePqqdcpFDmU60sx98wziMexw= + + hash2 + + lFXrfK/BG2fMmlAKFTwJ+4ZaXmi1IhX3mBv0lOsPErs= + + + HXPhotoPicker.bundle/images/hx_photo_edit_show_tip@3x.png + + hash + + PyXNHZBRCsW2+yNivkgJADk67GA= + + hash2 + + //24y7zjQPWKA4H9JCM+53H/aJrLphcGu9gTqR9U1fo= + + + HXPhotoPicker.bundle/images/hx_photo_edit_text_ normal@2x.png + + hash + + unwq52OVn8SwhrxmiLMS3oxnB7E= + + hash2 + + HuFKUT+FFng+C/727Woq7/CO3MZO7rxcK6YUHM8o5+4= + + + HXPhotoPicker.bundle/images/hx_photo_edit_text_ normal@3x.png + + hash + + wLOVCBkEoRUajFcVbSoTj0H1nYk= + + hash2 + + JG5B3KgHGV+f3gJmu9YYFhXAM29NYkSnG+9499FreuY= + + + HXPhotoPicker.bundle/images/hx_photo_edit_text_selected@2x.png + + hash + + Pusfig89pHs9gEMNcRCxpSIorCY= + + hash2 + + eWp844h0Bkv3SenTJkApxEvaWK5zV+INtIGqr/2nmAA= + + + HXPhotoPicker.bundle/images/hx_photo_edit_text_selected@3x.png + + hash + + kzwItYwIP2/oPblOBLV0ArQ/BUQ= + + hash2 + + FXXcbXC09Mf3QbBK2rRiDwzlDvpBgrVKDqOBw0A9uJs= + + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_clip@2x.png + + hash + + Vyv7r87WBJzCh+H15P0woWOXh1E= + + hash2 + + M+nynbiG+o1Qy82ASSJAv/wSexMa/xxXSheQkNFz7CM= + + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_clip@3x.png + + hash + + /olM1QU3jyPeo1mh6YGBTiZ8k2Q= + + hash2 + + 52QHyY+otv1pvYTHXE0XxEjzezINuTB5E7nGZuAP4Fc= + + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_emoji@2x.png + + hash + + e/tD55RvIxMWzon40P1GKfCSmx4= + + hash2 + + dIHQr5CXaHG/A6MRfLW1p5VmoG/w0NivhkKcoDVwDoQ= + + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_emoji@3x.png + + hash + + Kwm/IcT6Tcj++wsj4sjjmov1enY= + + hash2 + + cFsw1acwWBH7qJZZylJVwlh0fW/d5ZNF0qVIECuDQPk= + + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_graffiti@2x.png + + hash + + v/pUaRECpXjEjbXk/pXcqtf2Ww8= + + hash2 + + 6ZkTlxJvuZZNjnjlcByOQ8nH6YBCqoDX1Rh29vwggEE= + + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_graffiti@3x.png + + hash + + Kb4OxhKtqE44XQ68VzTh37ZJuGM= + + hash2 + + CnTskL/NwW6e5KmeA/Rl4U/RRKi7fwOEBl3J3GFhge8= + + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_mosaic@2x.png + + hash + + NZvowaayBASqk9OXkbSJ9gbzY00= + + hash2 + + XCc20frA+SNostxYkej/QD9QMsK9AIOaXNB0aEzjmRs= + + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_mosaic@3x.png + + hash + + 6kxlaueNga0a0TzgXLjp+3YPy88= + + hash2 + + O/q2WvjcBa8QiWz7U2HM8Xn0NlCQA4SRqz8huHakALE= + + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_text@2x.png + + hash + + wkde4XjqYbu/1nyHPwNWSBVG2DM= + + hash2 + + qTdRZL7dChLhQTmNxk2WKlRvqTT/zFyt4nTRLwrsUrQ= + + + HXPhotoPicker.bundle/images/hx_photo_edit_tools_text@3x.png + + hash + + ePpGS/I9soQi/v+qY1g8XCw1ESk= + + hash2 + + gTABbKMEJgH3WIcul+4zs0QOnQGzwboeYIyLrh+wiYk= + + + HXPhotoPicker.bundle/images/hx_photo_edit_trash_close@2x.png + + hash + + AVLqSvEBzmQoHBvBEmjZaewJLRY= + + hash2 + + U1tXi2N8O0rBSy4xxA0uI261vE/oz4uUeeuNuNCM4l0= + + + HXPhotoPicker.bundle/images/hx_photo_edit_trash_close@3x.png + + hash + + iUumw0t2OraUYfDSTvKuBH3CcFE= + + hash2 + + /YJAvMKeAWg1/oOtwmrzdBMIHcYEDlAQLFqNDos6Oeo= + + + HXPhotoPicker.bundle/images/hx_photo_edit_trash_open@2x.png + + hash + + u7UDmVr5OMNFJy13tH5Oicvzk+c= + + hash2 + + YG2I99r0g4hNGTBwP6e9SVbWmmbuQ33sZNFz/TQ47qo= + + + HXPhotoPicker.bundle/images/hx_photo_edit_trash_open@3x.png + + hash + + 9d5iE14dUfy3O3vx5uAi77IBdtU= + + hash2 + + NwUe9u7OKLPPoVU0LJrTQIzJ25xeK67vjjr1pUxBNaw= + + + HXPhotoPicker.bundle/images/hx_preview_dark_close@2x.png + + hash + + tNmrWKYMnr6SuP/1FlB5GssLtt4= + + hash2 + + 7emBt58o0+JCk/dvOfAffWIC3kCO/gts4oNId98Uwtg= + + + HXPhotoPicker.bundle/images/hx_preview_dark_close@3x.png + + hash + + Del/xCoqV31b1GOckN1zBdhpyT4= + + hash2 + + Ix/v1sTKcZVLKHdJt4SHQVO1550Mqc7B8Laqmh7QXT0= + + + HXPhotoPicker.bundle/images/hx_preview_dark_delete@2x.png + + hash + + Rda6z1h86yn2R8qVAJGd5HBNYbk= + + hash2 + + zkWuqO9L1wr7qRuqA08/z6QaFReIuFMFcD6XXqS413w= + + + HXPhotoPicker.bundle/images/hx_preview_dark_delete@3x.png + + hash + + MVIN2lHL/TEh6QIGAKU+R2AX9Pg= + + hash2 + + kfg7tHaptY6Oibz/fy5U959CtNlxpbDWMVTWg0kWj3A= + + + HXPhotoPicker.bundle/images/hx_qz_photolist_picture_fail@2x.png + + hash + + N/f38/Fh8N0XzXdLO/k7Mbz1Q9U= + + hash2 + + L/lmYamqKqlzx8hhYOB+EQFzAfl7bx6VWr95IAoBDhE= + + + HXPhotoPicker.bundle/images/hx_qz_photolist_picture_fail@3x.png + + hash + + YZYWV5/8fcA1K1M571LTkX6S1Eo= + + hash2 + + 7uLWgmvA4Yr6hK98Ci5n++scxVCABqZJMeuKYUEj5sk= + + + HXPhotoPicker.bundle/images/hx_sticker_chongya.png + + hash + + PQWR3cHoNhmNP0GUJOXcNJ2HkWQ= + + hash2 + + 6gHFWmeFcg/DcW392y0r6j0wf4U4UqBtcWEgtykenq4= + + + HXPhotoPicker.bundle/images/hx_sticker_cover@2x.png + + hash + + IoyfXYF08akVyjM0EqfLrsAOh6s= + + hash2 + + /6yK89jJurYBhhtgk5tLbK07MCDCXztowq2e8PYGVis= + + + HXPhotoPicker.bundle/images/hx_sticker_cover@3x.png + + hash + + obV5fjujjPS/x69lXWfPX8sq9dM= + + hash2 + + csjmu0kcRsJ/LbR7kGNZsQzevmb3mR6cf2E1TNA3XWE= + + + HXPhotoPicker.bundle/images/hx_sticker_haoxinqing.png + + hash + + cYQP+7xy4IFkHry8HQ1UT+4dkKI= + + hash2 + + 9Ml5uZL4jIqv5d8MDzDY8pNPmh33ZKc+N2RfPDv6dr4= + + + HXPhotoPicker.bundle/images/hx_sticker_housailei.png + + hash + + cqVuey6Uw/R9sa+oCMxHYVYMwFo= + + hash2 + + 4gPztQ/HeWkMsW5x2p7Zkq3bQbBA/AK4T7WPm6xPniQ= + + + HXPhotoPicker.bundle/images/hx_sticker_jintianfenkeai.png + + hash + + OFMoOJsmpOLJVQYUZLq3X9GqTJI= + + hash2 + + wtV1dICyufSbsnZejiz5KtFBdr53Ibtw2tCDnuX47mQ= + + + HXPhotoPicker.bundle/images/hx_sticker_keaibiaoq.png + + hash + + fgQ2VpBIOs7Y9vrn6re2zbrpHZQ= + + hash2 + + XXc+sKYIREHkZvnY3UpP/6Xc2kireePVVCcXMw3aXDU= + + + HXPhotoPicker.bundle/images/hx_sticker_kehaixing.png + + hash + + NChkOgWE8HUqVej8BZdifPPqCUg= + + hash2 + + tG1GJZF7ichy+sm+HJ9MuwlrxTChZTvS9Hj7rpRXh6Y= + + + HXPhotoPicker.bundle/images/hx_sticker_saihong.png + + hash + + TD5uS+6rx7r1V9gbJke+FGxYrYE= + + hash2 + + 773DW+74EN+a+RhAgnmuo4g99/OaNHCqsC5HLi9gNhI= + + + HXPhotoPicker.bundle/images/hx_sticker_wow.png + + hash + + HE12byKz7hnDR1wD8jM1n2idcc0= + + hash2 + + KPdODvil5r5zof4VnLL9qOJ+MZnNjUzxbpoJQ4L1xIY= + + + HXPhotoPicker.bundle/images/hx_sticker_woxiangfazipai.png + + hash + + mmR5tTmiolVVIdF3KI2aknbSHiI= + + hash2 + + 2F78moe5K6bjSjP5IpbtHc20fk0cJEQZ6UVqpztM3UA= + + + HXPhotoPicker.bundle/images/hx_sticker_xiaochuzhujiao.png + + hash + + AjzP60wR1U8W5N1G2Hsk8picn4k= + + hash2 + + NQKbs/XbfV7y6bf0q9lvxps/r9HM+bPPva81DQyQ/48= + + + HXPhotoPicker.bundle/images/hx_sticker_yuanqimanman.png + + hash + + 3ISJdOIzGXVjJlK+lako2R+sRyQ= + + hash2 + + yJammcZrf3BTLhrVgnCOkclHfRH++tL8I0tgOYcRsyk= + + + HXPhotoPicker.bundle/images/hx_sticker_yuanqishaonv.png + + hash + + EaBCEsHcXzRma3kb5M4UT+oHPzI= + + hash2 + + ypm5XqKwRjDCjEzbOVaVVsLhkw+igGD+kh0wPAS+VKc= + + + HXPhotoPicker.bundle/images/hx_sticker_zaizaijia.png + + hash + + /rWZlY84ezc0XpO23XDryCooeZ8= + + hash2 + + StPfjPPA2SJKZhKOYNgDMEZvChWLjUyXGalZnYr/Mfw= + + + HXPhotoPicker.bundle/images/hx_takePhoto@2x.png + + hash + + DzrZ//mtmgsiv8OWzqMStRoFoPY= + + hash2 + + SfdbtQcnjRmnZU6ySZ/jQIPX2Rl72bwO3shZohY5mV4= + + + HXPhotoPicker.bundle/images/hx_takePhoto@3x.png + + hash + + CA/7QPyjbWFopAafnfIbp4TtYSo= + + hash2 + + 8+RMCxWhsYyciICBKLAKsjq0g0rBmW8km6NhXsrGQ2g= + + + HXPhotoPicker.bundle/images/hx_video_ pause@2x.png + + hash + + bev/Ia6xNCRkWu3vnoHCmR+Fmsk= + + hash2 + + IruJKPeqYiG79+F+JMk03lUVufPUxVYf0UvyeJgSiNI= + + + HXPhotoPicker.bundle/images/hx_video_ pause@3x.png + + hash + + mTdJwahh6sXm9n1JT/RD1q7w5a0= + + hash2 + + iIXiQQdz/W7Bvg9lWXjotwIivOIq14xbL2AKaQriSjk= + + + HXPhotoPicker.bundle/images/hx_video_play@2x.png + + hash + + BS8JTNUozHNc3wAuw2y4M0mHv78= + + hash2 + + uPYUcqXutZBiDF9ffWTEGSsNv7Osuz5PwPlYDxXdLik= + + + HXPhotoPicker.bundle/images/hx_video_play@3x.png + + hash + + ex56Y8OnSZdnzgElXDfpoD8YTcw= + + hash2 + + In17hmzQWmD9sjUqMs2bVY37Lqc31bbed53eFK0AiaY= + + + HXPhotoPicker.bundle/images/hx_video_progress@2x.png + + hash + + cWJ47xsH2p0OHv9jE9nE4OjITv0= + + hash2 + + 3mTGrtv0xSXDrb8wSVh6NxPPjMW3LAPugRzzv5fLYyw= + + + HXPhotoPicker.bundle/images/hx_video_progress@3x.png + + hash + + 6qsLo8fM8vEePRvj+PeJQ3vbEes= + + hash2 + + aR/A3G36MenGfUBRx0NSjdrZ9i9fj6ENEad7qChK2dw= + + + HXPhotoPicker.bundle/images/hx_videoedit_left@2x.png + + hash + + tZTjGPV6QwJYy4kO2B21cTZD3Ao= + + hash2 + + DeE3eJabJA+Yc9vFzfNr9Bw3Rd3Je1PDV08YyHyY8rY= + + + HXPhotoPicker.bundle/images/hx_videoedit_right@2x.png + + hash + + tZTjGPV6QwJYy4kO2B21cTZD3Ao= + + hash2 + + DeE3eJabJA+Yc9vFzfNr9Bw3Rd3Je1PDV08YyHyY8rY= + + + HXPhotoPicker.bundle/images/hx_xiangce_xuanbili@2x.png + + hash + + 7VoGIkvvs7h2f4ZkBhINJ4KPJvc= + + hash2 + + NrF7Vc1PsnQZaGgXtGG+LDbshPIOBnv1N9pKzX39QHQ= + + + HXPhotoPicker.bundle/images/hx_xiangce_xuanbili@3x.png + + hash + + A2J7H+3r9vYQDA88vh1y8xr7PBU= + + hash2 + + PrAvmwB/SQdG7y9mrc4CCDG8bpd/reyLvD1zFv8w5mY= + + + HXPhotoPicker.bundle/images/hx_yundian_tupian@2x.png + + hash + + KpF0EBg6TZsUILViuyOqWAqzvyk= + + hash2 + + F5VRiuodDTwjimYQRf6PgZv0kaOQoXN09ZCcloRZ73s= + + + HXPhotoPicker.bundle/images/hx_yundian_tupian@3x.png + + hash + + gnwpvOXae6YzAaZ+Ef5wnA18VoQ= + + hash2 + + KxHj3bdaO6XL2chKTSS8k2pJjfKU9+ITLiQ1AD5V4uk= + + + HXPhotoPicker.bundle/images/hx_yunxiazai@2x.png + + hash + + sxOcupk84PqUXBW72sCwb4EWd6s= + + hash2 + + ZW/JWj9s0BMmGZXd6PSLdqJo1WknzuJsTgQ4izr4pvM= + + + HXPhotoPicker.bundle/images/hx_yunxiazai@3x.png + + hash + + xsWIQpQ1DokR9GStegWl5Me5RKU= + + hash2 + + uHI29moWaqOlv1geM+FX9YZlXKZq95hud1cWVAa5ayc= + + + HXPhotoPicker.bundle/ja.lproj/Localizable.strings + + hash + + YNhU7yyYV5MPnoNfY8X0NWdTfn4= + + hash2 + + NmoBGOZ2Rx3uOwIwto+b8Sv4L76qyMdEYn8lCIAtXJY= + + optional + + + HXPhotoPicker.bundle/ko.lproj/Localizable.strings + + hash + + qaz97vx+mPYCbRMBIJhb/J9dkno= + + hash2 + + Ref08YlrlwTBYcK0UdP3x9UvA8gwVqkMFug/KH+qz/M= + + optional + + + HXPhotoPicker.bundle/zh-Hans.lproj/Localizable.strings + + hash + + 9QgtgMCrO2PJl6rbHS1R5A8e6o8= + + hash2 + + tVXdRscuIZrHh5cMK4Xei3ya/DxB/cORGJp5tKC93n0= + + optional + + + HXPhotoPicker.bundle/zh-Hant.lproj/Localizable.strings + + hash + + 27g/+7O0bidEcl3eLkB0ixuNOYU= + + hash2 + + FNT/DZTtI1fRIDzBNxX130g6vom9GYu4yqfYpV8A3Pk= + + optional + + + LBPhotoBrowser.bundle/LBDelete@3x.png + + hash + + TcHm4AYpCA0VZAjMEbaKDAzGqA0= + + hash2 + + t/JzVsslqL1HE+gGMRMd0h26W7OkudT2nY96T6T9yo8= + + + LBPhotoBrowser.bundle/LBDismiss@3x.png + + hash + + Uc9XbsTPu9Q/AmVsrjkat4fhCs8= + + hash2 + + Y73E8KDCeJnDoMu62Wtuj0kI+g+KHaD8C2mlLn4HIR4= + + + LBPhotoBrowser.bundle/LBLoadError.png + + hash + + vz6jrgts6fgANn/g2/Q9+PpCAIE= + + hash2 + + 6nSaySsyfjFyIRtH3ApevHWecj2GGPwn3U55Wq0ob3I= + + + LBPhotoBrowser.bundle/LBLoading.png + + hash + + NXGP/pY3jRiwX0mrW/XhhXcv6TQ= + + hash2 + + +nK/qbFlyNdZTp+F6ne7QNXpf9LLV0aIOlek5gWmcQ4= + + + PureCamera.bundle/camera-flash.png + + hash + + 9XvXr9AQHbpHSFVmmkaKreENfRE= + + hash2 + + 0RPIxwRs1uyaLMc/RanyWf4kKQ3VM54dIrFP+OgNXHk= + + + PureCamera.bundle/camera-flash@2x.png + + hash + + bwnPFM3+Y/M8Jm23LvtdPVTonSU= + + hash2 + + xcoRuO9OjDoQK7g9/GTcSTuoybZAyDfJ1v8igMyR/R8= + + + PureCamera.bundle/cameraButton.png + + hash + + 8WUUXWfipYpQHPGgj7d0aUdZwQo= + + hash2 + + H3u7GRvONOGAkXj4cRbsVSlkFOZZqQSvKVBFV1r7YhI= + + + PureCamera.bundle/cameraButton@2x.png + + hash + + HcwbLeZU79u4M55RbnjSzbW9R2w= + + hash2 + + saOVxfMm8qafLGiWVd9Bpt3s5xwwr3UxOlFGNlNvZwE= + + + PureCamera.bundle/cameraButton@3x.png + + hash + + EJjCLjTn/uRY8yDqgj0CCJRHu6o= + + hash2 + + f2R84/WdI7GOCRLeiEfj99w1dhkO/zz7H87XA8hg/nU= + + + PureCamera.bundle/closeButton.png + + hash + + 5Dn4sCZ9DChV5EL9RR9uERmLvMs= + + hash2 + + kI86+GHsjCgrLhmSqd3WYgJFuxCHItQUVnN/7TqUpoo= + + + PureCamera.bundle/closeButton@2x.png + + hash + + PKfzWXza8hSYL/G+cJs4LJQpGNk= + + hash2 + + tImBU52tnxcLUd//eUhlP1+kd78nW1b+ehOPjkg3WeU= + + + PureCamera.bundle/closeButton@3x.png + + hash + + /dgp1IfYejId23ZQ8wmpvtYfXag= + + hash2 + + +DI4+K6aRmaIH+R4Iv1j9+QXmkTHXlVslc3Vk7QhTSI= + + + PureCamera.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + hash2 + + xUzNd7J7w99oAnMIWGe1dAGArHMuEXwQqxSziDU5vLk= + + optional + + + PureCamera.bundle/swapButton.png + + hash + + pLMe7zXu4XrX+buDu0ghMxp3JAU= + + hash2 + + TTi0QbWP/CsQi+CaRi2/nnG/3KDxT3JaG2b6KDbmQGM= + + + PureCamera.bundle/swapButton@2x.png + + hash + + yg5Sd3jRMuUwbYJbq03IkOGUi/M= + + hash2 + + hFMiZA0aOAGGbLLXtK9o0LdSaY4Xd9XINbDfsx9xd0o= + + + PureCamera.bundle/swapButton@3x.png + + hash + + p29in6Wmnnp1X4Zmx0LtlUuSVno= + + hash2 + + SdaJ4GGZEB6beG8+rxCvvbD//IqjI6/ZwybNna4gJvE= + + + QLPreviewFile.docx + + hash + + Mn2rgjNOcgSZzd/NVahSTKazB84= + + hash2 + + 9pjKb3XF7YA8QapZjEB7xB5yqrLgd6m884egR9xI3+w= + + + QRResource.bundle/Root.plist + + hash + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + hash2 + + m26DmegPkB5jwUJkVEtLlObYALX8He100Ny0+NNJg/g= + + + QRResource.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + hash2 + + xUzNd7J7w99oAnMIWGe1dAGArHMuEXwQqxSziDU5vLk= + + optional + + + QRResource.bundle/scaningCode_album@2x.png + + hash + + jrsHfhkFVnFuIXQt9w4NyuxWj8I= + + hash2 + + ZKqh8ZiFJhGJshE3C8GbwmQsiNDPo++shZHD35uY0F0= + + + QRResource.bundle/scaningCode_album@3x.png + + hash + + r1/PtcfiO3O/HXuXI6bAb7eDFdI= + + hash2 + + Cz0iT3GkX0pwz4FhkxV72MIlh0a1ARBUgzCl9bsZDhA= + + + QRResource.bundle/scanningCode_back_highlight@2x.png + + hash + + w577/ZEWktkoHdobPtzdRbCkVP4= + + hash2 + + gs8hrx3kobVkVpqb8zHL1yVIIjSQUeMw8eI9T0b80iE= + + + QRResource.bundle/scanningCode_back_highlight@3x.png + + hash + + 8TUAJckYo5CEVEfkBLyzd21hrag= + + hash2 + + LlY7iQ+m9ha2ji2gt3eXrAlIjx7qNJmjJiUumHivLsc= + + + QRResource.bundle/scanningCode_back_normal@2x.png + + hash + + X3BKCIvbmZVI01bFhjJiFJWw/3Y= + + hash2 + + Vr4URvMSgzhy2jW7q50BfNbS5804IF38o9flzaPXv6g= + + + QRResource.bundle/scanningCode_back_normal@3x.png + + hash + + pqT5sHx4P2iVD0WuXo/VYK/fwwQ= + + hash2 + + Xe+rVJr+tSbX3WxdsTTLvvOnBFqhsddw4B+isuZ9Mrc= + + + QRResource.bundle/scanningCode_light_highlight@2x.png + + hash + + tgkXBsSmpgACFhkcj7YRh4kKbYI= + + hash2 + + obiRhM+5VNEchOlvd2ht1PhEKxjC6LJWlOrFqr6KDrE= + + + QRResource.bundle/scanningCode_light_highlight@3x.png + + hash + + bINOz/42KMhDXe3TwGKa7f1PWoE= + + hash2 + + aHL76M4nwEEyvTlqXI+x/ktP8UiAZlqjVusf4PJYUIk= + + + QRResource.bundle/scanningCode_light_normal@2x.png + + hash + + hX4Egv9Xj31Dgl3ITf0JgjL4LLU= + + hash2 + + Y5kYrDK5is1ux7MdRJpsoIfLBFlCuI8sGXABaFt/N6c= + + + QRResource.bundle/scanningCode_light_normal@3x.png + + hash + + C2g4vSTZex1EHkLSl1jpRcurwMA= + + hash2 + + uIo5CaN2qXXBo5mRb+439dn1D2YDEUmyz15+xVF1yaM= + + + SGQRCode.bundle/Root.plist + + hash + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + hash2 + + m26DmegPkB5jwUJkVEtLlObYALX8He100Ny0+NNJg/g= + + + SGQRCode.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + hash2 + + xUzNd7J7w99oAnMIWGe1dAGArHMuEXwQqxSziDU5vLk= + + optional + + + SGQRCode.bundle/sacnningCode_line@2x.png + + hash + + Sdq+Gly1PjYQxrAeRn0uRDaBUdc= + + hash2 + + VwlDmPPPNCNdaVG5f2tmtNWMicpYiWQZXn2FJbYdWbs= + + + SGQRCode.bundle/sacnningCode_line@3x.png + + hash + + 0h42mOyclVBYnzBXVVE/827JjRM= + + hash2 + + A7dBvbK0RbSA/sbqKZ3VLrebNPE/1UMH3OXQ96NIdmc= + + + SGQRCode.bundle/scanEndSound.caf + + hash + + iZVdiwY7C4RBniEGgPS440vVkRo= + + hash2 + + nF6Fi+K3yiQ85bNQ6qX1Zg+XRhxlRV3UWNISmh7b4OM= + + + SGQRCode.bundle/scanLine@2x.png + + hash + + hIOfFERrCtyus2oRKTWjCkXDCSQ= + + hash2 + + xv+GfJwdKEJJ/dJGXAU32tyd0uxNN0vMWHYFab5L2tM= + + + SGQRCode.bundle/scanLine@3x.png + + hash + + tmiCUo964YPLT/wKYv/pCuWKVfc= + + hash2 + + iBjR9lPWtEk/CWmCJNLYgJkrIriV90DzAN3wL/UwXVs= + + + SGQRCode.bundle/scanLineGrid@2x.png + + hash + + dB3+VkRESnFugPUpyDJ2iHFAZiE= + + hash2 + + DmEX+cfAM47y5NysP/PM/n+PEU44Ug8gNHtl/ZxsJJk= + + + SGQRCode.bundle/scanLineGrid@3x.png + + hash + + Lxw8X/gDtCuZM3mhqVeg1opBZ7o= + + hash2 + + z98Lbo9mUkww36DK82tt9eToRA/LqTWVDuQdwPs06LA= + + + STSilentlivenessResource.bundle/KM_Align_occlusion_106_1.19.6.model + + hash + + 3RZXAXY2FXPpxvNs1DsOEx0sO7s= + + hash2 + + xsHNNpkPzbDGUrChjPuKzYA/COx34x/qxarjrtoY198= + + + STSilentlivenessResource.bundle/KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model + + hash + + AkPAyLJ1+61AKvPszCecbUAT0Ao= + + hash2 + + Q1avJFcCg9V7Xf56Xnnt3e2m99ayaPQAv1N8G7FMDPY= + + + STSilentlivenessResource.bundle/KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model + + hash + + +aNDwakxlMd+LR5KY1PGNtXjbeM= + + hash2 + + AuCwsL/HKo60r1JY16Qdv0Z0eCnbg0vJZpeK0ZupTS4= + + + STSilentlivenessResource.bundle/KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model + + hash + + nQngtpRJ4i/Zp703VJLT4RhKA9g= + + hash2 + + C3Up14/v1TVp/upRZWT8aZdkBa4FuxGM3tOrFOaTY60= + + + STSilentlivenessResource.bundle/KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model + + hash + + 5nbhU2ze1pTUogCZBLbAjGyhhmg= + + hash2 + + EPyHYsayiyMmQPvHoKy9jMY1uvUxKRGRhbcQTd3FRkk= + + + STSilentlivenessResource.bundle/KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model + + hash + + qhrAF80eEFzUfcQgHpZU0jiwqZs= + + hash2 + + xC4XV9bY9w75R8cogeObISpNBz+G28zfwIyWRrIpyhM= + + + STSilentlivenessResource.bundle/KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model + + hash + + 3GInRkqUvSImAh8rmIz3+xyhbcY= + + hash2 + + 2kOa6fdeztfWlrZKGeAO3+QuwFTqRWcnreDpDp/pWvI= + + + STSilentlivenessResource.bundle/License.lic + + hash + + Nxw/UAaf6Edaq4cZ3EySdrmKbwg= + + hash2 + + TFLh96cPq93aUwCjCmZJaGX0ZsbD+rgl+CPssBt7VVs= + + + STSilentlivenessResource.bundle/Root.plist + + hash + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + hash2 + + m26DmegPkB5jwUJkVEtLlObYALX8He100Ny0+NNJg/g= + + + STSilentlivenessResource.bundle/config.plist + + hash + + s+4Pqn0wSDUbVuxTT6Oq6mUWYh8= + + hash2 + + bcdjkuMxoaL8eHDoAz/Qz6PF3WCV3LJwyzZqkO3s5Tc= + + + STSilentlivenessResource.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + hash2 + + xUzNd7J7w99oAnMIWGe1dAGArHMuEXwQqxSziDU5vLk= + + optional + + + TOCropViewControllerLocalizable.strings + + hash + + vEw+mYuMGYOOEb/QlsWpjRbN8og= + + hash2 + + seRJFpJgLieLpZRwz10cZNPtnlAdtyg70e9Of4/CRK0= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Libs/DCBUniPlugin.framework/_CodeSignature/CodeSignature b/Libs/DCBUniPlugin.framework/_CodeSignature/CodeSignature new file mode 100644 index 0000000..3219a4c Binary files /dev/null and b/Libs/DCBUniPlugin.framework/_CodeSignature/CodeSignature differ diff --git a/Libs/DTShareKit.framework/DTShareKit b/Libs/DTShareKit.framework/DTShareKit new file mode 100644 index 0000000..d863a96 Binary files /dev/null and b/Libs/DTShareKit.framework/DTShareKit differ diff --git a/Libs/DTShareKit.framework/Headers/DTOpenAPI.h b/Libs/DTShareKit.framework/Headers/DTOpenAPI.h new file mode 100644 index 0000000..415465d --- /dev/null +++ b/Libs/DTShareKit.framework/Headers/DTOpenAPI.h @@ -0,0 +1,149 @@ +// +// DTOpenAPI.h +// DTShareSDK +// +// Created by 青山 on 15/12/3. +// Copyright (c) 2015年 Alibaba(China)Technology Co.,Ltd. All rights reserved. +// + +#import + +@class DTBaseReq; +@class DTBaseResp; + +/** + 接受并处理来自钉钉的事件消息. + + 钉钉向第三方APP发送事件期间, 钉钉界面会向切换到第三方APP. DTOpenAPIDelegate 会在 +[DTOpenAPI handleOpenURL:delegate:] 中触发. + */ +@protocol DTOpenAPIDelegate +@optional + +/** + 收到一个来自钉钉的请求, 第三方APP处理完成后要调用 +[DTOpenAPI sendResp:] 将处理结果返回给钉钉. + + @param req 来自钉钉具体的请求. + */ +- (void)onReq:(DTBaseReq *)req; + +/** + 第三方APP使用 +[DTOpenAPI sendReq:] 向钉钉发送消息后, 钉钉会处理完请求后会回调该接口. + + @param resp 来自钉钉具体的响应. + */ +- (void)onResp:(DTBaseResp *)resp; +@end + + + +/** + 钉钉SDK接口函数类. + */ +@interface DTOpenAPI : NSObject + +/** + 第三方APP向钉钉注册申请的appId. + + 第三方应用程序需要在程序启动时调用. @note 请在主线程中调用此方法. + + @param appid 在钉钉开放平台申请的应用ID. + + @return YES 注册成功. NO 注册失败. + */ ++ (BOOL)registerApp:(NSString *)appId; + +/** + 第三方APP向钉钉注册申请的appId. + + 第三方应用程序需要在程序启动时调用. @note 请在主线程中调用此方法. + + @param appid 在钉钉开放平台申请的应用ID. + @param appDescription 第三方描述信息, 长度不超过1K. + + @retrun YES 注册成功. NO 注册失败. + */ ++ (BOOL)registerApp:(NSString *)appId appDescription:(NSString *)appDescription; + + +/** + 第三方应用处理钉钉回调的接口. + + 第三方应用需要在 -[UIApplicationDelegate application:openURL:sourceApplication:annotation:] 或者 -[UIApplicationDelegate application:openURL:options:] 中调用该方法. + + @param url 钉钉给第三方回调的URL. + @param delegate 实现DTOpenAPIDelegate的对象, 通过DTOpenAPIDelegate处理钉钉的回调结果. + + @return YES 回调处理成功. NO 回调处理失败. + */ ++ (BOOL)handleOpenURL:(NSURL *)URL delegate:(id)delegate; + + +/** + 检测设备是否安装了钉钉客户端. + + @return YES 设备安装了钉钉客户端. NO 设备没有安装钉钉客户端. + */ ++ (BOOL)isDingTalkInstalled; + +/** + 检测设备安装的钉钉是否支持钉钉OpenAPI. + + @return YES 设备安装的钉钉客户端支持钉钉OpenAPI. NO 设备安装的钉钉客户端不支持钉钉OpenAPI. + */ ++ (BOOL)isDingTalkSupportOpenAPI; + +/** + 检测设备安装的钉钉是否支持钉钉SSO授权. + + @return YES 设备安装的钉钉客户端支持钉钉SSO授权. NO 设备安装的钉钉客户端不支持钉钉SSO授权. + */ ++ (BOOL)isDingTalkSupportSSO; + +/** + 获取钉钉在AppStore的安装地址. + + @return 钉钉在AppStore的安装地址. + */ ++ (NSString *)appStoreURLOfDingTalk; + +/** + 获取当前OpenSDK的版本号. + + @return 当前OpenSDK的版本号. + */ ++ (NSString *)openAPIVersion; + + +/** + 打开钉钉客户端. + + @return YES 成功打开钉钉客户端. NO 未能打开钉钉客户端. + */ ++ (BOOL)openDingTalk; + +/** + 打开支持SSO授权的钉钉客户端 + + @return YES 成功打开钉钉客户端. NO 未能打开钉钉客户端. + */ ++ (BOOL)openDingTalkForSSO; + + +/** + 发送请求到钉钉, 钉钉处理完请求后会回调第三方APP, 第三方APP需在 -[DTOpenAPIDelegate onReq:] 处理钉钉的响应结果. + + @param req 封装请求的对象. 支持的类型: DTSendMessageToDingTalkReq. + + @return YES 请求发送成功. NO 请求发送失败. + */ ++ (BOOL)sendReq:(DTBaseReq *)req; + +/** + 第三方APP需在 -[DTOpenAPIDelegate onResp:] 处理完收到钉钉的请求后, 使用改方法将处理结果返回给钉钉, 界面会切换到钉钉客户端. + + @param req 封装响应的对象. 支持的类型:DTSendMessageToDingTalkResp. + + @return YES 响应发送成功. NO 响应发送失败. + */ ++ (BOOL)sendResp:(DTBaseResp *)resp; +@end diff --git a/Libs/DTShareKit.framework/Headers/DTOpenAPIObject.h b/Libs/DTShareKit.framework/Headers/DTOpenAPIObject.h new file mode 100644 index 0000000..59c94aa --- /dev/null +++ b/Libs/DTShareKit.framework/Headers/DTOpenAPIObject.h @@ -0,0 +1,197 @@ +// +// DTOpenAPIObject.h +// DTShareSDK +// +// Created by 青山 on 15/12/3. +// Copyright (c) 2015年 Alibaba(China)Technology Co.,Ltd. All rights reserved. +// + +#import + +///----------------------------------------------------------------------------- +/// @name 基础类 +///----------------------------------------------------------------------------- + + +/** + 错误码. + + @since v1.0.0 + */ +typedef NS_ENUM(NSInteger, DTOpenAPIErrorCode) +{ + DTOpenAPISuccess = 0, /**< 成功. @since v1.0.0 */ + DTOpenAPIErrorCodeCommon = -1, /**< 通用错误. @since v1.0.0 */ + DTOpenAPIErrorCodeUserCancel = -2, /**< 用户取消. @since v1.0.0 */ + DTOpenAPIErrorCodeSendFail = -3, /**< 发送失败. @since v1.0.0 */ + DTOpenAPIErrorCodeAuthDeny = -4, /**< 授权失败. @since v1.0.0 */ + DTOpenAPIErrorCodeUnsupport = -5, /**< DingTalk不支持. @since v1.0.0 */ +}; + + + +/** + 分享场景. + + @since v1.0.0 + */ +typedef NS_ENUM(NSInteger, DTScene) +{ + DTSceneSession = 0, /**< 会话. @since v1.0.0 */ +}; + + + +/** + 分享SDK请求类的基类. + */ +@interface DTBaseReq : NSObject +@end + +/** + 分享SDK响应类的基类. + */ +@interface DTBaseResp : NSObject + +/// 错误码. +@property (nonatomic, assign) DTOpenAPIErrorCode errorCode; +/// 错误提示. +@property (nonatomic, copy) NSString *errorMessage; +@end + +@interface DTAuthorizeReq : DTBaseReq + +/** + 钉钉开放平台第三方应用授权回调页地址 + @warning 必须保证和在钉钉开放平台应用管理界面配置的“授权回调页”地址一致 + */ + +@property (nonatomic, copy) NSString *redirectURI; + +/** + 钉钉开放平台第三方应用bundleId + */ + +@property (nonatomic, copy) NSString *bundleId; + + +/** + 当用户没有安装钉钉客户端或钉钉客户端过低无法支持SSO的时候,返回给应用处理 + + 默认为YES + */ +@property (nonatomic, copy) void (^shouldShowWebViewForAuthIfCannotSSO)(); + +@end + +/** + 钉钉客户端处理完第三方应用的认证申请后向第三方应用回送的处理结果 + */ +@interface DTAuthorizeResp : DTBaseResp + +/** + 临时授权码 + */ +@property (nonatomic, copy) NSString *accessCode; + +@end + + +///----------------------------------------------------------------------------- +/// @name 分享 +///----------------------------------------------------------------------------- + +/** + 第三方APP向钉钉发送消息的请求类. + + 第三方APP需要向+[DTOpenAPI sendReq:]方法传入一个构建好的DTSendMessageToDingTalkReq对象向钉钉发送消息. + */ +@class DTMediaMessage; +@interface DTSendMessageToDingTalkReq : DTBaseReq + +/// 向钉钉发送的消息. +@property (nonatomic, strong) DTMediaMessage *message; +/// 向钉钉发送消息的场景. +@property (nonatomic, assign) DTScene scene; +@end + + + +/** + 第三方APP向钉钉发送消息的响应类. + + 第三方APP调用+[DTOpenAPI sendReq:]方法向钉钉发送消息后, 钉钉通过-[DTOpenAPIDelegate onResp:]向第三方应用传递DTSendMessageToDingTalkResp对象告知处理结果. + */ +@interface DTSendMessageToDingTalkResp : DTBaseResp +@end + + + +/** + 多媒体消息类. + + 用于钉钉和第三方程序之间传递消息的多媒体消息内容. + */ +@interface DTMediaMessage : NSObject + +/// 标题. @note 长度不超过 512Byte. +@property (nonatomic, copy) NSString *title; +/// 描述内容. @note 长度不超过 1K. +@property (nonatomic, copy) NSString *messageDescription; + +/// 缩略图数据. @note 长度不超过 32K. +@property (nonatomic, strong) NSData *thumbData; + +/// 缩略图URL. @note 长度不超过 10K. +@property (nonatomic, copy) NSString *thumbURL; + +/// 多媒体数据对象. 可以为DTMediaTextObject, DTMediaImageObject, DTMediaWebObject等. +@property (nonatomic, strong) id mediaObject; +@end + + + +/** + 多文本消息中的文本对象. + */ +@interface DTMediaTextObject : NSObject + +/// 文本内容. @note 长度不超过 1K. +@property (nonatomic, copy) NSString *text; +@end + + + +/** + 多文本消息中的图片对象. + */ +@interface DTMediaImageObject : NSObject + +/// 图片内容. @note 大小不能超过 10M. +@property (nonatomic, strong) NSData *imageData; + +/// 图片URL. @note 长度不能超过 10K. +@property (nonatomic, copy) NSString *imageURL; +@end + + + +/** + 多文本消息中的Web页面对象. + */ +@interface DTMediaWebObject : NSObject + +/// Web页面的URL. @note 长度不能超过 10K. +@property (nonatomic, copy) NSString *pageURL; +@end + + + +/** + 支付宝红包对象(仅支付宝可用). + */ +@interface DTMediaAlipayObject : NSObject + +/// 支付宝红包页面URL. @note 长度不能超过 10K. +@property (nonatomic, copy) NSString *pageURL; +@end diff --git a/Libs/DTShareKit.framework/Headers/DTOpenKit.h b/Libs/DTShareKit.framework/Headers/DTOpenKit.h new file mode 100644 index 0000000..a1e83e3 --- /dev/null +++ b/Libs/DTShareKit.framework/Headers/DTOpenKit.h @@ -0,0 +1,15 @@ +// +// DTShareKit.h +// DTShareKit +// +// Created by 青山 on 15/12/6. +// Copyright (c) 2015年 Alibaba(China)Technology Co.,Ltd. All rights reserved. +// + +#ifndef DTOpenKit_h +#define DTOpenKit_h + +#import "DTOpenAPI.h" +#import "DTOpenAPIObject.h" + +#endif /* DTOpenKit_h */ diff --git a/Libs/DTShareKit.framework/Versions/A/DTShareKit b/Libs/DTShareKit.framework/Versions/A/DTShareKit new file mode 100644 index 0000000..d863a96 Binary files /dev/null and b/Libs/DTShareKit.framework/Versions/A/DTShareKit differ diff --git a/Libs/DTShareKit.framework/Versions/A/Headers/DTOpenAPI.h b/Libs/DTShareKit.framework/Versions/A/Headers/DTOpenAPI.h new file mode 100644 index 0000000..415465d --- /dev/null +++ b/Libs/DTShareKit.framework/Versions/A/Headers/DTOpenAPI.h @@ -0,0 +1,149 @@ +// +// DTOpenAPI.h +// DTShareSDK +// +// Created by 青山 on 15/12/3. +// Copyright (c) 2015年 Alibaba(China)Technology Co.,Ltd. All rights reserved. +// + +#import + +@class DTBaseReq; +@class DTBaseResp; + +/** + 接受并处理来自钉钉的事件消息. + + 钉钉向第三方APP发送事件期间, 钉钉界面会向切换到第三方APP. DTOpenAPIDelegate 会在 +[DTOpenAPI handleOpenURL:delegate:] 中触发. + */ +@protocol DTOpenAPIDelegate +@optional + +/** + 收到一个来自钉钉的请求, 第三方APP处理完成后要调用 +[DTOpenAPI sendResp:] 将处理结果返回给钉钉. + + @param req 来自钉钉具体的请求. + */ +- (void)onReq:(DTBaseReq *)req; + +/** + 第三方APP使用 +[DTOpenAPI sendReq:] 向钉钉发送消息后, 钉钉会处理完请求后会回调该接口. + + @param resp 来自钉钉具体的响应. + */ +- (void)onResp:(DTBaseResp *)resp; +@end + + + +/** + 钉钉SDK接口函数类. + */ +@interface DTOpenAPI : NSObject + +/** + 第三方APP向钉钉注册申请的appId. + + 第三方应用程序需要在程序启动时调用. @note 请在主线程中调用此方法. + + @param appid 在钉钉开放平台申请的应用ID. + + @return YES 注册成功. NO 注册失败. + */ ++ (BOOL)registerApp:(NSString *)appId; + +/** + 第三方APP向钉钉注册申请的appId. + + 第三方应用程序需要在程序启动时调用. @note 请在主线程中调用此方法. + + @param appid 在钉钉开放平台申请的应用ID. + @param appDescription 第三方描述信息, 长度不超过1K. + + @retrun YES 注册成功. NO 注册失败. + */ ++ (BOOL)registerApp:(NSString *)appId appDescription:(NSString *)appDescription; + + +/** + 第三方应用处理钉钉回调的接口. + + 第三方应用需要在 -[UIApplicationDelegate application:openURL:sourceApplication:annotation:] 或者 -[UIApplicationDelegate application:openURL:options:] 中调用该方法. + + @param url 钉钉给第三方回调的URL. + @param delegate 实现DTOpenAPIDelegate的对象, 通过DTOpenAPIDelegate处理钉钉的回调结果. + + @return YES 回调处理成功. NO 回调处理失败. + */ ++ (BOOL)handleOpenURL:(NSURL *)URL delegate:(id)delegate; + + +/** + 检测设备是否安装了钉钉客户端. + + @return YES 设备安装了钉钉客户端. NO 设备没有安装钉钉客户端. + */ ++ (BOOL)isDingTalkInstalled; + +/** + 检测设备安装的钉钉是否支持钉钉OpenAPI. + + @return YES 设备安装的钉钉客户端支持钉钉OpenAPI. NO 设备安装的钉钉客户端不支持钉钉OpenAPI. + */ ++ (BOOL)isDingTalkSupportOpenAPI; + +/** + 检测设备安装的钉钉是否支持钉钉SSO授权. + + @return YES 设备安装的钉钉客户端支持钉钉SSO授权. NO 设备安装的钉钉客户端不支持钉钉SSO授权. + */ ++ (BOOL)isDingTalkSupportSSO; + +/** + 获取钉钉在AppStore的安装地址. + + @return 钉钉在AppStore的安装地址. + */ ++ (NSString *)appStoreURLOfDingTalk; + +/** + 获取当前OpenSDK的版本号. + + @return 当前OpenSDK的版本号. + */ ++ (NSString *)openAPIVersion; + + +/** + 打开钉钉客户端. + + @return YES 成功打开钉钉客户端. NO 未能打开钉钉客户端. + */ ++ (BOOL)openDingTalk; + +/** + 打开支持SSO授权的钉钉客户端 + + @return YES 成功打开钉钉客户端. NO 未能打开钉钉客户端. + */ ++ (BOOL)openDingTalkForSSO; + + +/** + 发送请求到钉钉, 钉钉处理完请求后会回调第三方APP, 第三方APP需在 -[DTOpenAPIDelegate onReq:] 处理钉钉的响应结果. + + @param req 封装请求的对象. 支持的类型: DTSendMessageToDingTalkReq. + + @return YES 请求发送成功. NO 请求发送失败. + */ ++ (BOOL)sendReq:(DTBaseReq *)req; + +/** + 第三方APP需在 -[DTOpenAPIDelegate onResp:] 处理完收到钉钉的请求后, 使用改方法将处理结果返回给钉钉, 界面会切换到钉钉客户端. + + @param req 封装响应的对象. 支持的类型:DTSendMessageToDingTalkResp. + + @return YES 响应发送成功. NO 响应发送失败. + */ ++ (BOOL)sendResp:(DTBaseResp *)resp; +@end diff --git a/Libs/DTShareKit.framework/Versions/A/Headers/DTOpenAPIObject.h b/Libs/DTShareKit.framework/Versions/A/Headers/DTOpenAPIObject.h new file mode 100644 index 0000000..59c94aa --- /dev/null +++ b/Libs/DTShareKit.framework/Versions/A/Headers/DTOpenAPIObject.h @@ -0,0 +1,197 @@ +// +// DTOpenAPIObject.h +// DTShareSDK +// +// Created by 青山 on 15/12/3. +// Copyright (c) 2015年 Alibaba(China)Technology Co.,Ltd. All rights reserved. +// + +#import + +///----------------------------------------------------------------------------- +/// @name 基础类 +///----------------------------------------------------------------------------- + + +/** + 错误码. + + @since v1.0.0 + */ +typedef NS_ENUM(NSInteger, DTOpenAPIErrorCode) +{ + DTOpenAPISuccess = 0, /**< 成功. @since v1.0.0 */ + DTOpenAPIErrorCodeCommon = -1, /**< 通用错误. @since v1.0.0 */ + DTOpenAPIErrorCodeUserCancel = -2, /**< 用户取消. @since v1.0.0 */ + DTOpenAPIErrorCodeSendFail = -3, /**< 发送失败. @since v1.0.0 */ + DTOpenAPIErrorCodeAuthDeny = -4, /**< 授权失败. @since v1.0.0 */ + DTOpenAPIErrorCodeUnsupport = -5, /**< DingTalk不支持. @since v1.0.0 */ +}; + + + +/** + 分享场景. + + @since v1.0.0 + */ +typedef NS_ENUM(NSInteger, DTScene) +{ + DTSceneSession = 0, /**< 会话. @since v1.0.0 */ +}; + + + +/** + 分享SDK请求类的基类. + */ +@interface DTBaseReq : NSObject +@end + +/** + 分享SDK响应类的基类. + */ +@interface DTBaseResp : NSObject + +/// 错误码. +@property (nonatomic, assign) DTOpenAPIErrorCode errorCode; +/// 错误提示. +@property (nonatomic, copy) NSString *errorMessage; +@end + +@interface DTAuthorizeReq : DTBaseReq + +/** + 钉钉开放平台第三方应用授权回调页地址 + @warning 必须保证和在钉钉开放平台应用管理界面配置的“授权回调页”地址一致 + */ + +@property (nonatomic, copy) NSString *redirectURI; + +/** + 钉钉开放平台第三方应用bundleId + */ + +@property (nonatomic, copy) NSString *bundleId; + + +/** + 当用户没有安装钉钉客户端或钉钉客户端过低无法支持SSO的时候,返回给应用处理 + + 默认为YES + */ +@property (nonatomic, copy) void (^shouldShowWebViewForAuthIfCannotSSO)(); + +@end + +/** + 钉钉客户端处理完第三方应用的认证申请后向第三方应用回送的处理结果 + */ +@interface DTAuthorizeResp : DTBaseResp + +/** + 临时授权码 + */ +@property (nonatomic, copy) NSString *accessCode; + +@end + + +///----------------------------------------------------------------------------- +/// @name 分享 +///----------------------------------------------------------------------------- + +/** + 第三方APP向钉钉发送消息的请求类. + + 第三方APP需要向+[DTOpenAPI sendReq:]方法传入一个构建好的DTSendMessageToDingTalkReq对象向钉钉发送消息. + */ +@class DTMediaMessage; +@interface DTSendMessageToDingTalkReq : DTBaseReq + +/// 向钉钉发送的消息. +@property (nonatomic, strong) DTMediaMessage *message; +/// 向钉钉发送消息的场景. +@property (nonatomic, assign) DTScene scene; +@end + + + +/** + 第三方APP向钉钉发送消息的响应类. + + 第三方APP调用+[DTOpenAPI sendReq:]方法向钉钉发送消息后, 钉钉通过-[DTOpenAPIDelegate onResp:]向第三方应用传递DTSendMessageToDingTalkResp对象告知处理结果. + */ +@interface DTSendMessageToDingTalkResp : DTBaseResp +@end + + + +/** + 多媒体消息类. + + 用于钉钉和第三方程序之间传递消息的多媒体消息内容. + */ +@interface DTMediaMessage : NSObject + +/// 标题. @note 长度不超过 512Byte. +@property (nonatomic, copy) NSString *title; +/// 描述内容. @note 长度不超过 1K. +@property (nonatomic, copy) NSString *messageDescription; + +/// 缩略图数据. @note 长度不超过 32K. +@property (nonatomic, strong) NSData *thumbData; + +/// 缩略图URL. @note 长度不超过 10K. +@property (nonatomic, copy) NSString *thumbURL; + +/// 多媒体数据对象. 可以为DTMediaTextObject, DTMediaImageObject, DTMediaWebObject等. +@property (nonatomic, strong) id mediaObject; +@end + + + +/** + 多文本消息中的文本对象. + */ +@interface DTMediaTextObject : NSObject + +/// 文本内容. @note 长度不超过 1K. +@property (nonatomic, copy) NSString *text; +@end + + + +/** + 多文本消息中的图片对象. + */ +@interface DTMediaImageObject : NSObject + +/// 图片内容. @note 大小不能超过 10M. +@property (nonatomic, strong) NSData *imageData; + +/// 图片URL. @note 长度不能超过 10K. +@property (nonatomic, copy) NSString *imageURL; +@end + + + +/** + 多文本消息中的Web页面对象. + */ +@interface DTMediaWebObject : NSObject + +/// Web页面的URL. @note 长度不能超过 10K. +@property (nonatomic, copy) NSString *pageURL; +@end + + + +/** + 支付宝红包对象(仅支付宝可用). + */ +@interface DTMediaAlipayObject : NSObject + +/// 支付宝红包页面URL. @note 长度不能超过 10K. +@property (nonatomic, copy) NSString *pageURL; +@end diff --git a/Libs/DTShareKit.framework/Versions/A/Headers/DTOpenKit.h b/Libs/DTShareKit.framework/Versions/A/Headers/DTOpenKit.h new file mode 100644 index 0000000..a1e83e3 --- /dev/null +++ b/Libs/DTShareKit.framework/Versions/A/Headers/DTOpenKit.h @@ -0,0 +1,15 @@ +// +// DTShareKit.h +// DTShareKit +// +// Created by 青山 on 15/12/6. +// Copyright (c) 2015年 Alibaba(China)Technology Co.,Ltd. All rights reserved. +// + +#ifndef DTOpenKit_h +#define DTOpenKit_h + +#import "DTOpenAPI.h" +#import "DTOpenAPIObject.h" + +#endif /* DTOpenKit_h */ diff --git a/Libs/DTShareKit.framework/Versions/Current/DTShareKit b/Libs/DTShareKit.framework/Versions/Current/DTShareKit new file mode 100644 index 0000000..d863a96 Binary files /dev/null and b/Libs/DTShareKit.framework/Versions/Current/DTShareKit differ diff --git a/Libs/DTShareKit.framework/Versions/Current/Headers/DTOpenAPI.h b/Libs/DTShareKit.framework/Versions/Current/Headers/DTOpenAPI.h new file mode 100644 index 0000000..415465d --- /dev/null +++ b/Libs/DTShareKit.framework/Versions/Current/Headers/DTOpenAPI.h @@ -0,0 +1,149 @@ +// +// DTOpenAPI.h +// DTShareSDK +// +// Created by 青山 on 15/12/3. +// Copyright (c) 2015年 Alibaba(China)Technology Co.,Ltd. All rights reserved. +// + +#import + +@class DTBaseReq; +@class DTBaseResp; + +/** + 接受并处理来自钉钉的事件消息. + + 钉钉向第三方APP发送事件期间, 钉钉界面会向切换到第三方APP. DTOpenAPIDelegate 会在 +[DTOpenAPI handleOpenURL:delegate:] 中触发. + */ +@protocol DTOpenAPIDelegate +@optional + +/** + 收到一个来自钉钉的请求, 第三方APP处理完成后要调用 +[DTOpenAPI sendResp:] 将处理结果返回给钉钉. + + @param req 来自钉钉具体的请求. + */ +- (void)onReq:(DTBaseReq *)req; + +/** + 第三方APP使用 +[DTOpenAPI sendReq:] 向钉钉发送消息后, 钉钉会处理完请求后会回调该接口. + + @param resp 来自钉钉具体的响应. + */ +- (void)onResp:(DTBaseResp *)resp; +@end + + + +/** + 钉钉SDK接口函数类. + */ +@interface DTOpenAPI : NSObject + +/** + 第三方APP向钉钉注册申请的appId. + + 第三方应用程序需要在程序启动时调用. @note 请在主线程中调用此方法. + + @param appid 在钉钉开放平台申请的应用ID. + + @return YES 注册成功. NO 注册失败. + */ ++ (BOOL)registerApp:(NSString *)appId; + +/** + 第三方APP向钉钉注册申请的appId. + + 第三方应用程序需要在程序启动时调用. @note 请在主线程中调用此方法. + + @param appid 在钉钉开放平台申请的应用ID. + @param appDescription 第三方描述信息, 长度不超过1K. + + @retrun YES 注册成功. NO 注册失败. + */ ++ (BOOL)registerApp:(NSString *)appId appDescription:(NSString *)appDescription; + + +/** + 第三方应用处理钉钉回调的接口. + + 第三方应用需要在 -[UIApplicationDelegate application:openURL:sourceApplication:annotation:] 或者 -[UIApplicationDelegate application:openURL:options:] 中调用该方法. + + @param url 钉钉给第三方回调的URL. + @param delegate 实现DTOpenAPIDelegate的对象, 通过DTOpenAPIDelegate处理钉钉的回调结果. + + @return YES 回调处理成功. NO 回调处理失败. + */ ++ (BOOL)handleOpenURL:(NSURL *)URL delegate:(id)delegate; + + +/** + 检测设备是否安装了钉钉客户端. + + @return YES 设备安装了钉钉客户端. NO 设备没有安装钉钉客户端. + */ ++ (BOOL)isDingTalkInstalled; + +/** + 检测设备安装的钉钉是否支持钉钉OpenAPI. + + @return YES 设备安装的钉钉客户端支持钉钉OpenAPI. NO 设备安装的钉钉客户端不支持钉钉OpenAPI. + */ ++ (BOOL)isDingTalkSupportOpenAPI; + +/** + 检测设备安装的钉钉是否支持钉钉SSO授权. + + @return YES 设备安装的钉钉客户端支持钉钉SSO授权. NO 设备安装的钉钉客户端不支持钉钉SSO授权. + */ ++ (BOOL)isDingTalkSupportSSO; + +/** + 获取钉钉在AppStore的安装地址. + + @return 钉钉在AppStore的安装地址. + */ ++ (NSString *)appStoreURLOfDingTalk; + +/** + 获取当前OpenSDK的版本号. + + @return 当前OpenSDK的版本号. + */ ++ (NSString *)openAPIVersion; + + +/** + 打开钉钉客户端. + + @return YES 成功打开钉钉客户端. NO 未能打开钉钉客户端. + */ ++ (BOOL)openDingTalk; + +/** + 打开支持SSO授权的钉钉客户端 + + @return YES 成功打开钉钉客户端. NO 未能打开钉钉客户端. + */ ++ (BOOL)openDingTalkForSSO; + + +/** + 发送请求到钉钉, 钉钉处理完请求后会回调第三方APP, 第三方APP需在 -[DTOpenAPIDelegate onReq:] 处理钉钉的响应结果. + + @param req 封装请求的对象. 支持的类型: DTSendMessageToDingTalkReq. + + @return YES 请求发送成功. NO 请求发送失败. + */ ++ (BOOL)sendReq:(DTBaseReq *)req; + +/** + 第三方APP需在 -[DTOpenAPIDelegate onResp:] 处理完收到钉钉的请求后, 使用改方法将处理结果返回给钉钉, 界面会切换到钉钉客户端. + + @param req 封装响应的对象. 支持的类型:DTSendMessageToDingTalkResp. + + @return YES 响应发送成功. NO 响应发送失败. + */ ++ (BOOL)sendResp:(DTBaseResp *)resp; +@end diff --git a/Libs/DTShareKit.framework/Versions/Current/Headers/DTOpenAPIObject.h b/Libs/DTShareKit.framework/Versions/Current/Headers/DTOpenAPIObject.h new file mode 100644 index 0000000..59c94aa --- /dev/null +++ b/Libs/DTShareKit.framework/Versions/Current/Headers/DTOpenAPIObject.h @@ -0,0 +1,197 @@ +// +// DTOpenAPIObject.h +// DTShareSDK +// +// Created by 青山 on 15/12/3. +// Copyright (c) 2015年 Alibaba(China)Technology Co.,Ltd. All rights reserved. +// + +#import + +///----------------------------------------------------------------------------- +/// @name 基础类 +///----------------------------------------------------------------------------- + + +/** + 错误码. + + @since v1.0.0 + */ +typedef NS_ENUM(NSInteger, DTOpenAPIErrorCode) +{ + DTOpenAPISuccess = 0, /**< 成功. @since v1.0.0 */ + DTOpenAPIErrorCodeCommon = -1, /**< 通用错误. @since v1.0.0 */ + DTOpenAPIErrorCodeUserCancel = -2, /**< 用户取消. @since v1.0.0 */ + DTOpenAPIErrorCodeSendFail = -3, /**< 发送失败. @since v1.0.0 */ + DTOpenAPIErrorCodeAuthDeny = -4, /**< 授权失败. @since v1.0.0 */ + DTOpenAPIErrorCodeUnsupport = -5, /**< DingTalk不支持. @since v1.0.0 */ +}; + + + +/** + 分享场景. + + @since v1.0.0 + */ +typedef NS_ENUM(NSInteger, DTScene) +{ + DTSceneSession = 0, /**< 会话. @since v1.0.0 */ +}; + + + +/** + 分享SDK请求类的基类. + */ +@interface DTBaseReq : NSObject +@end + +/** + 分享SDK响应类的基类. + */ +@interface DTBaseResp : NSObject + +/// 错误码. +@property (nonatomic, assign) DTOpenAPIErrorCode errorCode; +/// 错误提示. +@property (nonatomic, copy) NSString *errorMessage; +@end + +@interface DTAuthorizeReq : DTBaseReq + +/** + 钉钉开放平台第三方应用授权回调页地址 + @warning 必须保证和在钉钉开放平台应用管理界面配置的“授权回调页”地址一致 + */ + +@property (nonatomic, copy) NSString *redirectURI; + +/** + 钉钉开放平台第三方应用bundleId + */ + +@property (nonatomic, copy) NSString *bundleId; + + +/** + 当用户没有安装钉钉客户端或钉钉客户端过低无法支持SSO的时候,返回给应用处理 + + 默认为YES + */ +@property (nonatomic, copy) void (^shouldShowWebViewForAuthIfCannotSSO)(); + +@end + +/** + 钉钉客户端处理完第三方应用的认证申请后向第三方应用回送的处理结果 + */ +@interface DTAuthorizeResp : DTBaseResp + +/** + 临时授权码 + */ +@property (nonatomic, copy) NSString *accessCode; + +@end + + +///----------------------------------------------------------------------------- +/// @name 分享 +///----------------------------------------------------------------------------- + +/** + 第三方APP向钉钉发送消息的请求类. + + 第三方APP需要向+[DTOpenAPI sendReq:]方法传入一个构建好的DTSendMessageToDingTalkReq对象向钉钉发送消息. + */ +@class DTMediaMessage; +@interface DTSendMessageToDingTalkReq : DTBaseReq + +/// 向钉钉发送的消息. +@property (nonatomic, strong) DTMediaMessage *message; +/// 向钉钉发送消息的场景. +@property (nonatomic, assign) DTScene scene; +@end + + + +/** + 第三方APP向钉钉发送消息的响应类. + + 第三方APP调用+[DTOpenAPI sendReq:]方法向钉钉发送消息后, 钉钉通过-[DTOpenAPIDelegate onResp:]向第三方应用传递DTSendMessageToDingTalkResp对象告知处理结果. + */ +@interface DTSendMessageToDingTalkResp : DTBaseResp +@end + + + +/** + 多媒体消息类. + + 用于钉钉和第三方程序之间传递消息的多媒体消息内容. + */ +@interface DTMediaMessage : NSObject + +/// 标题. @note 长度不超过 512Byte. +@property (nonatomic, copy) NSString *title; +/// 描述内容. @note 长度不超过 1K. +@property (nonatomic, copy) NSString *messageDescription; + +/// 缩略图数据. @note 长度不超过 32K. +@property (nonatomic, strong) NSData *thumbData; + +/// 缩略图URL. @note 长度不超过 10K. +@property (nonatomic, copy) NSString *thumbURL; + +/// 多媒体数据对象. 可以为DTMediaTextObject, DTMediaImageObject, DTMediaWebObject等. +@property (nonatomic, strong) id mediaObject; +@end + + + +/** + 多文本消息中的文本对象. + */ +@interface DTMediaTextObject : NSObject + +/// 文本内容. @note 长度不超过 1K. +@property (nonatomic, copy) NSString *text; +@end + + + +/** + 多文本消息中的图片对象. + */ +@interface DTMediaImageObject : NSObject + +/// 图片内容. @note 大小不能超过 10M. +@property (nonatomic, strong) NSData *imageData; + +/// 图片URL. @note 长度不能超过 10K. +@property (nonatomic, copy) NSString *imageURL; +@end + + + +/** + 多文本消息中的Web页面对象. + */ +@interface DTMediaWebObject : NSObject + +/// Web页面的URL. @note 长度不能超过 10K. +@property (nonatomic, copy) NSString *pageURL; +@end + + + +/** + 支付宝红包对象(仅支付宝可用). + */ +@interface DTMediaAlipayObject : NSObject + +/// 支付宝红包页面URL. @note 长度不能超过 10K. +@property (nonatomic, copy) NSString *pageURL; +@end diff --git a/Libs/DTShareKit.framework/Versions/Current/Headers/DTOpenKit.h b/Libs/DTShareKit.framework/Versions/Current/Headers/DTOpenKit.h new file mode 100644 index 0000000..a1e83e3 --- /dev/null +++ b/Libs/DTShareKit.framework/Versions/Current/Headers/DTOpenKit.h @@ -0,0 +1,15 @@ +// +// DTShareKit.h +// DTShareKit +// +// Created by 青山 on 15/12/6. +// Copyright (c) 2015年 Alibaba(China)Technology Co.,Ltd. All rights reserved. +// + +#ifndef DTOpenKit_h +#define DTOpenKit_h + +#import "DTOpenAPI.h" +#import "DTOpenAPIObject.h" + +#endif /* DTOpenKit_h */ diff --git a/Libs/GSYUniPlugin.framework/BDFaceParamsConfig.json b/Libs/GSYUniPlugin.framework/BDFaceParamsConfig.json new file mode 100644 index 0000000..9dbf1a5 --- /dev/null +++ b/Libs/GSYUniPlugin.framework/BDFaceParamsConfig.json @@ -0,0 +1,47 @@ +{ + "loose":{ + "minIllum":30, + "maxIllum":240, + "leftEyeOcclusion":0.95, + "rightEyeOcclusion":0.95, + "noseOcclusion":0.95, + "mouseOcclusion":0.95, + "leftContourOcclusion":0.95, + "rightContourOcclusion":0.95, + "chinOcclusion":0.95, + "pitch":30, + "yaw":18, + "roll":30, + "blur":0.8 + }, + "normal":{ + "minIllum":40, + "maxIllum":220, + "leftEyeOcclusion":0.8, + "rightEyeOcclusion":0.8, + "noseOcclusion":0.8, + "mouseOcclusion":0.8, + "leftContourOcclusion":0.8, + "rightContourOcclusion":0.8, + "chinOcclusion":0.8, + "pitch":20, + "yaw":18, + "roll":20, + "blur":0.6 + }, + "strict":{ + "minIllum":60, + "maxIllum":200, + "leftEyeOcclusion":0.4, + "rightEyeOcclusion":0.4, + "noseOcclusion":0.4, + "mouseOcclusion":0.4, + "leftContourOcclusion":0.4, + "rightContourOcclusion":0.4, + "chinOcclusion":0.4, + "pitch":15, + "yaw":15, + "roll":15, + "blur":0.4 + } +} diff --git a/Libs/GSYUniPlugin.framework/GSYUniPlugin b/Libs/GSYUniPlugin.framework/GSYUniPlugin new file mode 100644 index 0000000..516438e Binary files /dev/null and b/Libs/GSYUniPlugin.framework/GSYUniPlugin differ diff --git a/Libs/GSYUniPlugin.framework/Info.plist b/Libs/GSYUniPlugin.framework/Info.plist new file mode 100644 index 0000000..332d056 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/Info.plist differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/Root.plist b/Libs/GSYUniPlugin.framework/QRResource.bundle/Root.plist new file mode 100644 index 0000000..b1b6fea --- /dev/null +++ b/Libs/GSYUniPlugin.framework/QRResource.bundle/Root.plist @@ -0,0 +1,61 @@ + + + + + StringsTable + Root + PreferenceSpecifiers + + + Type + PSGroupSpecifier + Title + Group + + + Type + PSTextFieldSpecifier + Title + Name + Key + name_preference + DefaultValue + + IsSecure + + KeyboardType + Alphabet + AutocapitalizationType + None + AutocorrectionType + No + + + Type + PSToggleSwitchSpecifier + Title + Enabled + Key + enabled_preference + DefaultValue + + + + Type + PSSliderSpecifier + Key + slider_preference + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + MinimumValueImage + + MaximumValueImage + + + + + diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/en.lproj/Root.strings b/Libs/GSYUniPlugin.framework/QRResource.bundle/en.lproj/Root.strings new file mode 100644 index 0000000..8cd87b9 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/en.lproj/Root.strings differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/scaningCode_album@2x.png b/Libs/GSYUniPlugin.framework/QRResource.bundle/scaningCode_album@2x.png new file mode 100644 index 0000000..424b72a Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/scaningCode_album@2x.png differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/scaningCode_album@3x.png b/Libs/GSYUniPlugin.framework/QRResource.bundle/scaningCode_album@3x.png new file mode 100644 index 0000000..ce949e3 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/scaningCode_album@3x.png differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@2x.png b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@2x.png new file mode 100644 index 0000000..9f87fbe Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@2x.png differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@3x.png b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@3x.png new file mode 100644 index 0000000..44efe88 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_highlight@3x.png differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@2x.png b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@2x.png new file mode 100644 index 0000000..b3047ac Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@2x.png differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@3x.png b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@3x.png new file mode 100644 index 0000000..50b1663 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_back_normal@3x.png differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@2x.png b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@2x.png new file mode 100644 index 0000000..ac556bc Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@2x.png differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@3x.png b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@3x.png new file mode 100644 index 0000000..d8cd166 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_highlight@3x.png differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@2x.png b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@2x.png new file mode 100644 index 0000000..1457fd6 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@2x.png differ diff --git a/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@3x.png b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@3x.png new file mode 100644 index 0000000..eccfcf4 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/QRResource.bundle/scanningCode_light_normal@3x.png differ diff --git a/Libs/GSYUniPlugin.framework/SGQRCode.bundle/Root.plist b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/Root.plist new file mode 100755 index 0000000..b1b6fea --- /dev/null +++ b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/Root.plist @@ -0,0 +1,61 @@ + + + + + StringsTable + Root + PreferenceSpecifiers + + + Type + PSGroupSpecifier + Title + Group + + + Type + PSTextFieldSpecifier + Title + Name + Key + name_preference + DefaultValue + + IsSecure + + KeyboardType + Alphabet + AutocapitalizationType + None + AutocorrectionType + No + + + Type + PSToggleSwitchSpecifier + Title + Enabled + Key + enabled_preference + DefaultValue + + + + Type + PSSliderSpecifier + Key + slider_preference + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + MinimumValueImage + + MaximumValueImage + + + + + diff --git a/Libs/GSYUniPlugin.framework/SGQRCode.bundle/en.lproj/Root.strings b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/en.lproj/Root.strings new file mode 100755 index 0000000..8cd87b9 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/en.lproj/Root.strings differ diff --git a/Libs/GSYUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@2x.png b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@2x.png new file mode 100644 index 0000000..eb29894 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@2x.png differ diff --git a/Libs/GSYUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@3x.png b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@3x.png new file mode 100644 index 0000000..f418f89 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/sacnningCode_line@3x.png differ diff --git a/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanEndSound.caf b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanEndSound.caf new file mode 100755 index 0000000..4428bcc Binary files /dev/null and b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanEndSound.caf differ diff --git a/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLine@2x.png b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLine@2x.png new file mode 100755 index 0000000..c301db7 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLine@2x.png differ diff --git a/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLine@3x.png b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLine@3x.png new file mode 100755 index 0000000..89b3b0e Binary files /dev/null and b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLine@3x.png differ diff --git a/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLineGrid@2x.png b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLineGrid@2x.png new file mode 100644 index 0000000..4929bd1 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLineGrid@2x.png differ diff --git a/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLineGrid@3x.png b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLineGrid@3x.png new file mode 100644 index 0000000..93d32eb Binary files /dev/null and b/Libs/GSYUniPlugin.framework/SGQRCode.bundle/scanLineGrid@3x.png differ diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Align_occlusion_106_1.19.6.model b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Align_occlusion_106_1.19.6.model new file mode 100644 index 0000000..9c1f0eb Binary files /dev/null and b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Align_occlusion_106_1.19.6.model differ diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model new file mode 100644 index 0000000..52119c5 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model differ diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model new file mode 100644 index 0000000..d58c83a Binary files /dev/null and b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model differ diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model new file mode 100644 index 0000000..31ec9e5 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model differ diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model new file mode 100644 index 0000000..fd3def8 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model differ diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model new file mode 100644 index 0000000..935cef8 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model differ diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model new file mode 100644 index 0000000..307b8de Binary files /dev/null and b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model differ diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/License.lic b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/License.lic new file mode 100644 index 0000000..85675aa --- /dev/null +++ b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/License.lic @@ -0,0 +1,64 @@ +############################################################ +# SenseTime License +# License Product: SSID-3.0 +# Expiration: 20220901~20220913 +# License SN: 7527ccf0-050d-4b14-a9b4-e8503ccb4589 +############################################################ +sGfdd8EYXYDBX5EKP6HNHV364g+3STNiNcLwy+NxAuN9p+BckbE+GSKI6YDd +wSNf+ipZIPEaGTSfUfvArc3pOZCVPQaNCyoa9SP+WcGBZpNAgQytwfkwvONA +H7h72yWnWpT49qAs/cZEApNJvtiGBCyptuiDF1ilXzOGs6I4NSXr+UJdAQAA +AAEAAAA18z926I6hjcQURARf13JWuynYrJB/k5vcJil34g/6FNH1U/Rt76dC +X06AogRs/Cf/d5CdoFkoGsewnFLDiBymchCsMh6S3/IGfv4ZyR2eOHSvO4+N +gtYCaXszCT8T3jCBY+KtfZgQhWrgA1yWauKRxp/W3YRPXZ5mlmHSuLL5IpvG +zAgUWFPr0TjTMZuNDZ/EacqXEY79S8FhiNbbZEwaikV0Gv6+RMkG0rG+FO3R +BhbQpHb9kxYZSwmodVFiEuhD/ghVmuIY0xDkZJ1LWeEFQN55MAAamTzwrGDG +V+BLmQCahrNxHB97q8BX9AN3EXPT/5HReDztSdU2OWJQfRqtAQABAAAAAAAD +AAAAAAAAAAAAAABS0AXiRhGrMZN1UNkKq0X0LuOBNv/wUwyYRxuI88iar/2g +2oN+bZqAGiyDRgzYWtwdUmFV+g3FDHx9x/Xm+klsh+oLEdkFxAdNr3Kd5hXm +iy1WBjRgicTc0Tn4xDJuakdUOYUCD/5FniPt7kALLrqHwHwZbwBiv0Rwfexn +aFNfdxC0UFClgkaJpn3lRGmIZI/8o/Gz0JWUladeHzmUoK2wbx8agVWDXdzi +AJArtAZWgStM88A9+xCaq+xzEYBBEmlU3OAwUMQGwgNaloShDSHTvTUqSoiw +3RzUBnOHurKb8oaOJxdVTLVZZrZblrmIMTktQBH0tadPl/b+3m+PsgSOcgFn +MGcH38qrMrZtT7P2Y2+4rP231PS01/rrZvxN+eBnjEW79BpNWiVakVs7uLPO +If63mGOd0ZLw+dvnFVU2I0YZb1tGgsLs+TcxWN2wkoeXzbG7XEVgjxNYTtVO +P/GiplcrCQNcXOELoU0Z3ceidYzItjumHVbdZSKVsi7qKzsR23qYi8uZpAhe +ktiAeWJRfY5MdtQTU6bBoaUMBuq4dd/xD7PkhRo/2udnEZ6wEdJH/QXRo+Xr +sacRf8E6CfrBPyGhYDdegSPgwgA+uTpFrIa5TH4zExH5aNG92jbGOgC3hcLr +BdvcGevz8VqT97Z61V7vW0XwMjzG3T13A8ghJ3pocHWUFdreN69M8HtwewOA +vT9QZvFVT2bd3blCE1DaRx0JNSUXFAiNoYwPXzUwUkw3lghYOQgenxThrgqf +MLYMJYt8yOnJQvtJ+6IIa3TiDSF5wTMCA+56m4SS8QRwE5W75mAwKyrLF+lf +D4HJv3av+IxQeAokykDItDX5PwzZOJgXTvyIWQe7n6uqUfs+og== +------------------------------------------------------------ +sGfddzBMTSjysSq1rLCSeelJ/M+FkTP7WdI0zscymSblmEwxLrTclRN3zCsI +0NkM3zvYAsr5h/ME7D8xhWgc82x6fHGiwPglBO4FZlkD8JWjaN0AtmfMNdtq +yZveeu8ITHY2Tq585AxShPKs/0oEtUp/e9/lAPM52oj+v7rT1J2clVmoAQAA +AAIAAAARtQ8s/MJHs5tm+95l2UZG27Vm5BitD11aou3kE/5pM1JFESs8Z9Dz +z2oaIm1aZgXISin6UYe61HWM67K+KkCglwAqtcvbPZXUEJVj5XHjuGVTUgDk +P3/UIQ73a6z433CLiuEO/tdWZbCSbviV042qOJeob3awkuDKzSAqyt9mcsBY +05o3Yd1N2Jq8537tJDJLQgDygnJfQWRLKBqJjWzo0VUZbhy7zYvCyNLP8PR4 +vIxn3KinMx/2497MN4ntzvqEAhIuzkM6Bm+YzAwgQrONyzZemh5tTwrdfk1Z +bRolZDjt1YB5NzVbD1bDI7pCQ2Py1hXTupvIWLs7tx7qPP5rAAAAAAAAAAAA +AAAAAAAAAAAAAAA2xEgRrYgNOuM4XYSY+luZnWcFudPhPRAnLIAhnekbyazs +xvXOjYwTZ0Wqrr1fBL8qEdlKnssgKCJ3DM/L54Jfyw/agTe6iJ/XgdFIXc1C ++udA+N7ns84IHrxDkufWju1Qr7TSV4cokoR8y6sJrCLAJ0hDY7bVTPJ3WHsy +Gy+d0qsJgr+tg6oAhzvuuZeN8hmLvA7VG3vdlJvYFbnVtPQgZK3Z52f5Kd/c +U3nKMP4LyjWTeh1xquC3OGC4tPaxblAcX7ufyMgEZI3ln1pLUvsVEDC5u2PZ +4Vng2i1xcQUpgtB97VBHhl40GFOK+2wUxnmvQpDLgKn3yi2lbLQT1+0Y4yXj +BJd0WXiLSpHp894nnahG5pS3EGbr4m15vtQSN5/eRR/TwZLto4+4kcrblxLB +ITMDBNikP27vl8INozGYmcxleCT81kY/02StmBpgrMoD14Lo1A/klbQ3Ht/G +4jFKzOon3dp6BMnFZb4ScQvH+lDhjU2WNrhSmcsvWAR4f3/OBUg8nOy/jAD/ +w9Mh87ML9ldg26dzYnuTXUyb2nphpjcp6bDhMgqc2vgdBTUgV14ey2KdVCUJ +Eh9YxbYrozWqkuXo4PReqb8pn8i22o4wtuc+y3HPw66cdgndy/okTAMCf6fr +ri7UObgHx1HbhNFEIR5Hql/h0th4MdH8/FzejHMqsFZdCUkijEDkJyGdQnJ1 +Z6g/6/pg2i0hBo5EX+yol6HRjP5UjMdnTcqOphBh9X1HPJazL0wjvVWSzzpH +Z0bVfOcwVZaq/erNfbA9Ap2kyKpHKWztCdIndt049jmtU973LdfVeTxG2Q+y +eUdXm7+ULmLBpChtHEOO+ITiDDlx7NMHEH3s5p4cfC8UyIjx5qXY0bHuEIEN +Nz5vd9Q3RMONvKIHkOyq1uJiJGUWOn+y7+o1dVzvbhrP5YkCVsxlmCNTNwIj +vwOU2TMEnNfBvKLERe+BJV5pEond17I4MXVB1us9s05oXEiMf7vK9JQWHN5S +cm72OI7bPLbkwN4lCUg7O8AxF76rfmyCw4fLFs1efYKiqWsVtZBRk7OXoctC +XQTqbQCSTlEDsw3MmEUdWQCIN2+JHa04H/fdP7yjr0XsP3TEK3CiSu0NtqlM +fiK5yLT73CDuWKKglOLNuuAxgwKVSU9WJ1qmgTcyii1OIN14O3auTjaJEBsW +Bm58CGu82whs/Mms8ORE0Y8L9U1A+r4vLbDRsNxLy8x/HO/MBk66s1PH1aGd +/5LiyninTYd+n+pKYRCnMuu04ufs0y47j/SqzFmXJPUeJumG2U3nKOybpcnE +36VG8ud6WGFIAdUHZo1Lk5pkefQk8WeCTUc0 +############################################################ diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/Root.plist b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/Root.plist new file mode 100644 index 0000000..b1b6fea --- /dev/null +++ b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/Root.plist @@ -0,0 +1,61 @@ + + + + + StringsTable + Root + PreferenceSpecifiers + + + Type + PSGroupSpecifier + Title + Group + + + Type + PSTextFieldSpecifier + Title + Name + Key + name_preference + DefaultValue + + IsSecure + + KeyboardType + Alphabet + AutocapitalizationType + None + AutocorrectionType + No + + + Type + PSToggleSwitchSpecifier + Title + Enabled + Key + enabled_preference + DefaultValue + + + + Type + PSSliderSpecifier + Key + slider_preference + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + MinimumValueImage + + MaximumValueImage + + + + + diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/config.plist b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/config.plist new file mode 100644 index 0000000..ad2cace --- /dev/null +++ b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/config.plist @@ -0,0 +1,12 @@ +{ + License = "License.lic"; + Models = { + hunter = "KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model"; + august = "KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model"; + align = "KM_Align_occlusion_106_1.19.6.model"; + headpose = "KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model"; + pageant = "KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model"; + eyestate = "KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model"; + liveness = "KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model"; + }; +} \ No newline at end of file diff --git a/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/en.lproj/Root.strings b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/en.lproj/Root.strings new file mode 100644 index 0000000..8cd87b9 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/STSilentlivenessResource.bundle/en.lproj/Root.strings differ diff --git a/Libs/GSYUniPlugin.framework/_CodeSignature/CodeDirectory b/Libs/GSYUniPlugin.framework/_CodeSignature/CodeDirectory new file mode 100644 index 0000000..4c4d629 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/_CodeSignature/CodeDirectory differ diff --git a/Libs/GSYUniPlugin.framework/_CodeSignature/CodeRequirements b/Libs/GSYUniPlugin.framework/_CodeSignature/CodeRequirements new file mode 100644 index 0000000..17e5fc8 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/_CodeSignature/CodeRequirements differ diff --git a/Libs/GSYUniPlugin.framework/_CodeSignature/CodeRequirements-1 b/Libs/GSYUniPlugin.framework/_CodeSignature/CodeRequirements-1 new file mode 100644 index 0000000..2ee8e45 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/_CodeSignature/CodeRequirements-1 differ diff --git a/Libs/GSYUniPlugin.framework/_CodeSignature/CodeResources b/Libs/GSYUniPlugin.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..a5025fb --- /dev/null +++ b/Libs/GSYUniPlugin.framework/_CodeSignature/CodeResources @@ -0,0 +1,3442 @@ + + + + + files + + .DS_Store + + D98IbfFVlwFZA23QOhsaXfgiXWk= + + BDFaceParamsConfig.json + + siFhbAECuQgdK/dLIm+y5K6bIdg= + + Info.plist + + xLLNXpBOKSyWq8A1nYMLFs8IPWA= + + QRResource.bundle/Root.plist + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + QRResource.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + optional + + + QRResource.bundle/scaningCode_album@2x.png + + jrsHfhkFVnFuIXQt9w4NyuxWj8I= + + QRResource.bundle/scaningCode_album@3x.png + + r1/PtcfiO3O/HXuXI6bAb7eDFdI= + + QRResource.bundle/scanningCode_back_highlight@2x.png + + w577/ZEWktkoHdobPtzdRbCkVP4= + + QRResource.bundle/scanningCode_back_highlight@3x.png + + 8TUAJckYo5CEVEfkBLyzd21hrag= + + QRResource.bundle/scanningCode_back_normal@2x.png + + X3BKCIvbmZVI01bFhjJiFJWw/3Y= + + QRResource.bundle/scanningCode_back_normal@3x.png + + pqT5sHx4P2iVD0WuXo/VYK/fwwQ= + + QRResource.bundle/scanningCode_light_highlight@2x.png + + tgkXBsSmpgACFhkcj7YRh4kKbYI= + + QRResource.bundle/scanningCode_light_highlight@3x.png + + bINOz/42KMhDXe3TwGKa7f1PWoE= + + QRResource.bundle/scanningCode_light_normal@2x.png + + hX4Egv9Xj31Dgl3ITf0JgjL4LLU= + + QRResource.bundle/scanningCode_light_normal@3x.png + + C2g4vSTZex1EHkLSl1jpRcurwMA= + + SGQRCode.bundle/Root.plist + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + SGQRCode.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + optional + + + SGQRCode.bundle/sacnningCode_line@2x.png + + Sdq+Gly1PjYQxrAeRn0uRDaBUdc= + + SGQRCode.bundle/sacnningCode_line@3x.png + + 0h42mOyclVBYnzBXVVE/827JjRM= + + SGQRCode.bundle/scanEndSound.caf + + iZVdiwY7C4RBniEGgPS440vVkRo= + + SGQRCode.bundle/scanLine@2x.png + + hIOfFERrCtyus2oRKTWjCkXDCSQ= + + SGQRCode.bundle/scanLine@3x.png + + tmiCUo964YPLT/wKYv/pCuWKVfc= + + SGQRCode.bundle/scanLineGrid@2x.png + + dB3+VkRESnFugPUpyDJ2iHFAZiE= + + SGQRCode.bundle/scanLineGrid@3x.png + + Lxw8X/gDtCuZM3mhqVeg1opBZ7o= + + STSilentlivenessResource.bundle/KM_Align_occlusion_106_1.19.6.model + + 3RZXAXY2FXPpxvNs1DsOEx0sO7s= + + STSilentlivenessResource.bundle/KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model + + AkPAyLJ1+61AKvPszCecbUAT0Ao= + + STSilentlivenessResource.bundle/KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model + + +aNDwakxlMd+LR5KY1PGNtXjbeM= + + STSilentlivenessResource.bundle/KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model + + nQngtpRJ4i/Zp703VJLT4RhKA9g= + + STSilentlivenessResource.bundle/KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model + + 5nbhU2ze1pTUogCZBLbAjGyhhmg= + + STSilentlivenessResource.bundle/KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model + + qhrAF80eEFzUfcQgHpZU0jiwqZs= + + STSilentlivenessResource.bundle/KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model + + 3GInRkqUvSImAh8rmIz3+xyhbcY= + + STSilentlivenessResource.bundle/License.lic + + QOG65+CLQfSiEm9EoE9i6lM20G0= + + STSilentlivenessResource.bundle/Root.plist + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + STSilentlivenessResource.bundle/config.plist + + s+4Pqn0wSDUbVuxTT6Oq6mUWYh8= + + STSilentlivenessResource.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + optional + + + com.baidu.idl.face.faceSDK.bundle/blink.mp3 + + zbDg8LSSnS4gmu7UmZu6oyTRUng= + + com.baidu.idl.face.faceSDK.bundle/ding.mp3 + + 7UCqBAWc+FQu96Wo+J23lpKlsto= + + com.baidu.idl.face.faceSDK.bundle/head_down.mp3 + + nXojqtRAE8JCq4kib3ud41vqnO4= + + com.baidu.idl.face.faceSDK.bundle/head_up.mp3 + + 7abNcPt1MP5NbtLagoBPEzPqQ4E= + + com.baidu.idl.face.faceSDK.bundle/head_yaw.mp3 + + SGSDVq5B1a/akc1q2I21O55bpIo= + + com.baidu.idl.face.faceSDK.bundle/moveface.mp3 + + A2FB3yrj41tlSA7qgWsZWfrbwjc= + + com.baidu.idl.face.faceSDK.bundle/open_mouth.mp3 + + wVZRrJ7TMe+rTXl06qhsrFwvm0Y= + + com.baidu.idl.face.faceSDK.bundle/turn_left.mp3 + + R/jxcWCXiBYOnUZeFTHyjYwNQZ0= + + com.baidu.idl.face.faceSDK.bundle/turn_right.mp3 + + 3JjViABorgxq0bZFbJ/hw8uoa5U= + + com.baidu.idl.face.live.action.image.bundle/0_01.png + + P5N91l0RhLAXrxJQoHJsjpf+9J0= + + com.baidu.idl.face.live.action.image.bundle/0_02.png + + UIWZ2aQhNkeExuT3jn/kAFr8Buc= + + com.baidu.idl.face.live.action.image.bundle/0_03.png + + 9UXmuq632sFhXcx2rWHVUwzpBs8= + + com.baidu.idl.face.live.action.image.bundle/0_04.png + + svs8maDma3+Qk7M09TTYR4m3B1A= + + com.baidu.idl.face.live.action.image.bundle/0_05.png + + /fTpgQ4aobo/5Twrgg4fhgRfsl0= + + com.baidu.idl.face.live.action.image.bundle/0_06.png + + 4jA6Rx+9PcFIK9QwhFYF4o2e0oM= + + com.baidu.idl.face.live.action.image.bundle/0_07.png + + 4uSN2+pwqjvI2wyVMjKvBCu3ER8= + + com.baidu.idl.face.live.action.image.bundle/0_08.png + + LhG3FW/RVtApTImFbo+pb7q0Who= + + com.baidu.idl.face.live.action.image.bundle/0_09.png + + 5FldzkkQThjvXtNePmOxd6YUSWM= + + com.baidu.idl.face.live.action.image.bundle/0_10.png + + kJUtpwQWJJss/IZorZemeRecOp4= + + com.baidu.idl.face.live.action.image.bundle/0_11.png + + G33OuRx7jh4zaNrSJyZJc5nwEn8= + + com.baidu.idl.face.live.action.image.bundle/0_12.png + + k7jpphPTACHb9GSdIETR36gArSk= + + com.baidu.idl.face.live.action.image.bundle/0_13.png + + rVtYi6nY98x9cJkTAPboZiUStD4= + + com.baidu.idl.face.live.action.image.bundle/0_14.png + + AGB3GJu1a3qEnRIk4gbN0HlVItk= + + com.baidu.idl.face.live.action.image.bundle/0_15.png + + 9f7G++J5TVcJNpiYDKHEb7OoiFE= + + com.baidu.idl.face.live.action.image.bundle/0_16.png + + CPOsA9acZBE9LH15Q4mYfhadvx0= + + com.baidu.idl.face.live.action.image.bundle/0_17.png + + P5N91l0RhLAXrxJQoHJsjpf+9J0= + + com.baidu.idl.face.live.action.image.bundle/0_18.png + + P5N91l0RhLAXrxJQoHJsjpf+9J0= + + com.baidu.idl.face.live.action.image.bundle/0_19.png + + P5N91l0RhLAXrxJQoHJsjpf+9J0= + + com.baidu.idl.face.live.action.image.bundle/1_01.png + + t4lc8+gl1zN0ar7bLOHYZIhq1TM= + + com.baidu.idl.face.live.action.image.bundle/1_02.png + + 7CZ00+VNn/AhRrPtk9NrRz7zAwo= + + com.baidu.idl.face.live.action.image.bundle/1_03.png + + qJCX8in7xR1TorXrtxuEiTuknTs= + + com.baidu.idl.face.live.action.image.bundle/1_04.png + + js8KNcx5xTj+z4ZRJQ3K1BP9XEo= + + com.baidu.idl.face.live.action.image.bundle/1_05.png + + y7MNMh7URpkeOHGmLCOhq8ggQnw= + + com.baidu.idl.face.live.action.image.bundle/1_06.png + + 2NJh180Mc7wrWoxbWOcZXC5jeJ0= + + com.baidu.idl.face.live.action.image.bundle/1_07.png + + GClomy8Mb82Jvq1QBblTq4UiFgg= + + com.baidu.idl.face.live.action.image.bundle/1_08.png + + u8axj9UIgYWnKh7EpAQ3FSqJmRw= + + com.baidu.idl.face.live.action.image.bundle/1_09.png + + 2xyGb/eSqrztIAXjyL1to5CCEDA= + + com.baidu.idl.face.live.action.image.bundle/1_10.png + + qdnvkubcVS7Xc2/7vKQDSTYyszg= + + com.baidu.idl.face.live.action.image.bundle/1_11.png + + +mFO7HphK9q0cWE1j9wH9NT0zv4= + + com.baidu.idl.face.live.action.image.bundle/1_12.png + + TpcOhxHwac8tVfHeHRBPbzRRjZY= + + com.baidu.idl.face.live.action.image.bundle/1_13.png + + y30UFfXlf2Mijj3ZeIFbbRE0rLw= + + com.baidu.idl.face.live.action.image.bundle/1_14.png + + dsrnsA3HghTBjJHxzM//fMJV9eo= + + com.baidu.idl.face.live.action.image.bundle/1_15.png + + sL7n/O72fDvcHihFe8pN9w8mrBs= + + com.baidu.idl.face.live.action.image.bundle/1_16.png + + o00Z2OJ44JDXXCBnz6vpY50QXm0= + + com.baidu.idl.face.live.action.image.bundle/1_17.png + + GX42HTGjGi8V8Tk8FWi4SlnPXaQ= + + com.baidu.idl.face.live.action.image.bundle/1_18.png + + BQFFWXIt4i3h8gIPNeRqbHlXY2U= + + com.baidu.idl.face.live.action.image.bundle/1_19.png + + F6arAY0Q/BeP5W72/g4qYO6RtqA= + + com.baidu.idl.face.live.action.image.bundle/1_20.png + + 9YMX3AtJ8IKyw7aOkBSrxuntJBg= + + com.baidu.idl.face.live.action.image.bundle/1_21.png + + t4lc8+gl1zN0ar7bLOHYZIhq1TM= + + com.baidu.idl.face.live.action.image.bundle/1_22.png + + t4lc8+gl1zN0ar7bLOHYZIhq1TM= + + com.baidu.idl.face.live.action.image.bundle/1_23.png + + t4lc8+gl1zN0ar7bLOHYZIhq1TM= + + com.baidu.idl.face.live.action.image.bundle/2_01.png + + 6HvBuazWytW5wiP9J5cTWBp/D0w= + + com.baidu.idl.face.live.action.image.bundle/2_02.png + + 6HvBuazWytW5wiP9J5cTWBp/D0w= + + com.baidu.idl.face.live.action.image.bundle/2_03.png + + 6HvBuazWytW5wiP9J5cTWBp/D0w= + + com.baidu.idl.face.live.action.image.bundle/2_04.png + + x3DtjqcHaO9jl5SuGQsfX5jCeZ8= + + com.baidu.idl.face.live.action.image.bundle/2_05.png + + cBaE9Y1XFOq7N9BWpdeAUl0K53I= + + com.baidu.idl.face.live.action.image.bundle/2_06.png + + zFHYGhqU65KOXyD5vOf7TLvG+tU= + + com.baidu.idl.face.live.action.image.bundle/2_07.png + + 6zVHsJGIkWW5TXBwXDZtI3lTPbw= + + com.baidu.idl.face.live.action.image.bundle/2_08.png + + cm3WjxPqbcRHBrjb6mXTu1mEa8s= + + com.baidu.idl.face.live.action.image.bundle/2_09.png + + 379MvDbCHuCOnwsf9WhzLh0Ipbs= + + com.baidu.idl.face.live.action.image.bundle/2_10.png + + NQ98mVaUcnv6oWStgtLIA05beRM= + + com.baidu.idl.face.live.action.image.bundle/2_11.png + + jduAGbLjycq2XK6RGU90Ts/F0gE= + + com.baidu.idl.face.live.action.image.bundle/2_12.png + + 0WtV8nXWWspZsEdoBqFEDimrd3o= + + com.baidu.idl.face.live.action.image.bundle/2_13.png + + gAdEblfWsBuIQA0s6FuHow6F72k= + + com.baidu.idl.face.live.action.image.bundle/2_14.png + + vxLiMdim4/Z9f4nO7gbOBjpxKeA= + + com.baidu.idl.face.live.action.image.bundle/2_15.png + + vxLiMdim4/Z9f4nO7gbOBjpxKeA= + + com.baidu.idl.face.live.action.image.bundle/2_16.png + + vxLiMdim4/Z9f4nO7gbOBjpxKeA= + + com.baidu.idl.face.live.action.image.bundle/2_17.png + + SadC1VhtwrU12F/f6t25z8+7S10= + + com.baidu.idl.face.live.action.image.bundle/2_18.png + + BzpqDWFe4ygctKlquv6pBmjLXEY= + + com.baidu.idl.face.live.action.image.bundle/2_19.png + + w5hiGi/lSE/Ja/OSl8i1Z2e53/M= + + com.baidu.idl.face.live.action.image.bundle/2_20.png + + rJxyBQeVwaZkSUfAiqu2uNERcLo= + + com.baidu.idl.face.live.action.image.bundle/2_21.png + + 5sAOkseQINwRFfkBY5UUqv6a86c= + + com.baidu.idl.face.live.action.image.bundle/2_22.png + + JBxfOpqPenC5k+IIKYuUBRpUO3k= + + com.baidu.idl.face.live.action.image.bundle/2_23.png + + 7aOjh1/78x6R0pEdtewgTpE1UBM= + + com.baidu.idl.face.live.action.image.bundle/2_24.png + + 7Q4kgMyo8pcWFK82+6n3Wfxn5XA= + + com.baidu.idl.face.live.action.image.bundle/2_25.png + + 3QySMnYLRlYb24YDEMPau0QrAOA= + + com.baidu.idl.face.live.action.image.bundle/2_26.png + + XAr//OLkY4UwuzNygXOVhu0xn6E= + + com.baidu.idl.face.live.action.image.bundle/2_27.png + + 3iikS94MKxlOF4h93IEqlsfGFYg= + + com.baidu.idl.face.live.action.image.bundle/2_28.png + + 3iikS94MKxlOF4h93IEqlsfGFYg= + + com.baidu.idl.face.live.action.image.bundle/2_29.png + + 3iikS94MKxlOF4h93IEqlsfGFYg= + + com.baidu.idl.face.live.action.image.bundle/2_30.png + + 3iikS94MKxlOF4h93IEqlsfGFYg= + + com.baidu.idl.face.live.action.image.bundle/2_31.png + + 3iikS94MKxlOF4h93IEqlsfGFYg= + + com.baidu.idl.face.live.action.image.bundle/3_01.png + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + com.baidu.idl.face.live.action.image.bundle/3_02.png + + OjmsyMvTH8lmzSHBf07s6lbmFKg= + + com.baidu.idl.face.live.action.image.bundle/3_03.png + + 5vs8vysJNicTH9h/K+gYWlSI1zI= + + com.baidu.idl.face.live.action.image.bundle/3_04.png + + lh6nlKqKYWcmTDe5zFYkhFithYs= + + com.baidu.idl.face.live.action.image.bundle/3_05.png + + wvGBUyLpzkZyiBs3iC1Vho90TVE= + + com.baidu.idl.face.live.action.image.bundle/3_06.png + + MV03aOk23IN/qJCVghRdgr9xi8M= + + com.baidu.idl.face.live.action.image.bundle/3_07.png + + qO+6phIAtNYKDaHlA7NvLm5Qd9A= + + com.baidu.idl.face.live.action.image.bundle/3_08.png + + T7bI/UpDkcNeV4Solm5gYhgbawY= + + com.baidu.idl.face.live.action.image.bundle/3_09.png + + 7qY6J0Sm+Kx7tWlBbbKJMLJRlfc= + + com.baidu.idl.face.live.action.image.bundle/3_10.png + + fIhJM6CQV2/g7z9gQ9U34UBJGKA= + + com.baidu.idl.face.live.action.image.bundle/3_11.png + + Tb1T8j6Re5pNsBkxmb/omR9yL+Q= + + com.baidu.idl.face.live.action.image.bundle/3_12.png + + xgwig+7LLbG3HYtdHxGLjviKtCs= + + com.baidu.idl.face.live.action.image.bundle/3_13.png + + mg8hbBHe9no+/pvqamBcVRz/cGc= + + com.baidu.idl.face.live.action.image.bundle/3_14.png + + mg8hbBHe9no+/pvqamBcVRz/cGc= + + com.baidu.idl.face.live.action.image.bundle/3_15.png + + mg8hbBHe9no+/pvqamBcVRz/cGc= + + com.baidu.idl.face.live.action.image.bundle/3_16.png + + A7pOou32J4POlZJ3Nxw95/5IPtU= + + com.baidu.idl.face.live.action.image.bundle/3_17.png + + y1lLWYoVsq8EOwBYnzB3NvY8uNc= + + com.baidu.idl.face.live.action.image.bundle/3_18.png + + ZXc1Pq4meqzR+rRr4mDwPsgH3nA= + + com.baidu.idl.face.live.action.image.bundle/3_19.png + + XPO+T+rN6YFauv0Ww/cnJuoQYoA= + + com.baidu.idl.face.live.action.image.bundle/3_20.png + + 6NYd6DuomTfeySaRszMyQ0C5lCM= + + com.baidu.idl.face.live.action.image.bundle/3_21.png + + lysDq9y1fZ5Qq85qTwzty4RiB30= + + com.baidu.idl.face.live.action.image.bundle/3_22.png + + 91kNaSMj+yJFST7ZEZmf9cQL6fk= + + com.baidu.idl.face.live.action.image.bundle/3_23.png + + oUAmv2MWazcJcmef35WgQ62fK94= + + com.baidu.idl.face.live.action.image.bundle/3_24.png + + yE0mZXDpibjVw9LPsi28VZzl36E= + + com.baidu.idl.face.live.action.image.bundle/3_25.png + + aGU9ZRB2S3s0Ai+LuiH5aP8rU+0= + + com.baidu.idl.face.live.action.image.bundle/3_26.png + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + com.baidu.idl.face.live.action.image.bundle/3_27.png + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + com.baidu.idl.face.live.action.image.bundle/3_28.png + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + com.baidu.idl.face.live.action.image.bundle/3_29.png + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + com.baidu.idl.face.live.action.image.bundle/3_30.png + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + com.baidu.idl.face.live.action.image.bundle/3_31.png + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + com.baidu.idl.face.live.action.image.bundle/4_01.png + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + com.baidu.idl.face.live.action.image.bundle/4_02.png + + loqyoBfrSN4pfvHGEwSiDFbPbQI= + + com.baidu.idl.face.live.action.image.bundle/4_03.png + + 7Ovq039bES4JpAiK8IRfHUu3d/s= + + com.baidu.idl.face.live.action.image.bundle/4_04.png + + m/k4oanzvnxTXmgg59FKS9FrFFw= + + com.baidu.idl.face.live.action.image.bundle/4_05.png + + kRGwAQA7hAhpZoooKIyhVJoKrSo= + + com.baidu.idl.face.live.action.image.bundle/4_06.png + + MSaH2YqMeVprSmIAQdGQCDs21eo= + + com.baidu.idl.face.live.action.image.bundle/4_07.png + + sQrPSlj+7IQs7fRhPv0zoZDzEJY= + + com.baidu.idl.face.live.action.image.bundle/4_08.png + + wBArHCTOhomFc+lr8U16OTj0FhQ= + + com.baidu.idl.face.live.action.image.bundle/4_09.png + + f1Z/8AzsfbqNfECcEFIBJODppB4= + + com.baidu.idl.face.live.action.image.bundle/4_10.png + + 3f5qYxqW7DMuf4l/TwRbk+hLG7c= + + com.baidu.idl.face.live.action.image.bundle/4_11.png + + 6AByB6No0u8jJxgMaJWPEhKykOw= + + com.baidu.idl.face.live.action.image.bundle/4_12.png + + 392GI3hdOgM0O91s3dff5L1QMXg= + + com.baidu.idl.face.live.action.image.bundle/4_13.png + + 9cTKMv8Ro+b4H1lXHU5j00LhR4w= + + com.baidu.idl.face.live.action.image.bundle/4_14.png + + 9cTKMv8Ro+b4H1lXHU5j00LhR4w= + + com.baidu.idl.face.live.action.image.bundle/4_15.png + + wU8wQ5CVHnqRMBL1uXl7gAizO60= + + com.baidu.idl.face.live.action.image.bundle/4_16.png + + 94b3HfXsbqQyJJL901Q03JqTQ4A= + + com.baidu.idl.face.live.action.image.bundle/4_17.png + + wknvGDlaFhnpEk4EFaRw0HDJ9OI= + + com.baidu.idl.face.live.action.image.bundle/4_18.png + + g/OomFIYk6PCibKcfPt5kHuNXgU= + + com.baidu.idl.face.live.action.image.bundle/4_19.png + + 3hFKeJLnwYeiwe9qXBKbpSOKdTA= + + com.baidu.idl.face.live.action.image.bundle/4_20.png + + OB6A2+N3z3lT2kIrvum2jZ8Ebww= + + com.baidu.idl.face.live.action.image.bundle/4_21.png + + kG1o6ki0RiFUrOdWI6xfg9S11Hc= + + com.baidu.idl.face.live.action.image.bundle/4_22.png + + o0XtDD9k6Uiy+dzG0PQsgXiKPc4= + + com.baidu.idl.face.live.action.image.bundle/4_23.png + + c5CCvRbxZnVljkpx5Sy+kpx2wE8= + + com.baidu.idl.face.live.action.image.bundle/4_24.png + + PlIWh6CGShG76sSQ+QfpIhPs2k4= + + com.baidu.idl.face.live.action.image.bundle/4_25.png + + MPNjQ2fCDxT6EyOHXzH4xos6icE= + + com.baidu.idl.face.live.action.image.bundle/4_26.png + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + com.baidu.idl.face.live.action.image.bundle/4_27.png + + U0yUxmmMn+x3GFFGnLCC646L8KU= + + com.baidu.idl.face.live.action.image.bundle/4_28.png + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + com.baidu.idl.face.live.action.image.bundle/4_29.png + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + com.baidu.idl.face.live.action.image.bundle/4_30.png + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + com.baidu.idl.face.live.action.image.bundle/4_31.png + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + com.baidu.idl.face.live.action.image.bundle/5_01.png + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + com.baidu.idl.face.live.action.image.bundle/5_02.png + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + com.baidu.idl.face.live.action.image.bundle/5_03.png + + 1dP1qmDv/JNWOM3/roXab1eWL9M= + + com.baidu.idl.face.live.action.image.bundle/5_04.png + + VtTK6RmsCamDwWUTw9XzAn53s6U= + + com.baidu.idl.face.live.action.image.bundle/5_05.png + + J/jqvnyiAjL0lGuaDy6EjR+C68I= + + com.baidu.idl.face.live.action.image.bundle/5_06.png + + puHtM0Mqv0XgVO6q9MEFZAytSKg= + + com.baidu.idl.face.live.action.image.bundle/5_07.png + + dgIcWiBlQo4k//bb5ctqaxWPANw= + + com.baidu.idl.face.live.action.image.bundle/5_08.png + + PEsxz2TLCMiVPt/kj0TwmYi/lZE= + + com.baidu.idl.face.live.action.image.bundle/5_09.png + + 5yVSK3Ww9t6mbI5BrfZpe7GMxd8= + + com.baidu.idl.face.live.action.image.bundle/5_10.png + + k2pwMGca9hxGnu/FDE+vnfsTVew= + + com.baidu.idl.face.live.action.image.bundle/5_11.png + + M1WUjQBxBS7q05/rg2TXj7lvte8= + + com.baidu.idl.face.live.action.image.bundle/5_12.png + + +KtK6Nofw4gDnEEyzJYQjecik7Y= + + com.baidu.idl.face.live.action.image.bundle/5_13.png + + JWf0qqKizLBWrL44KBqeH4P+smg= + + com.baidu.idl.face.live.action.image.bundle/5_14.png + + JWf0qqKizLBWrL44KBqeH4P+smg= + + com.baidu.idl.face.live.action.image.bundle/5_15.png + + JWf0qqKizLBWrL44KBqeH4P+smg= + + com.baidu.idl.face.live.action.image.bundle/5_16.png + + VGR60m2uwo79iyRviEUE0LWTDZ0= + + com.baidu.idl.face.live.action.image.bundle/5_17.png + + YDlanxmsf61T6e8sSFC0zxyhevs= + + com.baidu.idl.face.live.action.image.bundle/5_18.png + + zu79CmargKX1cx6CPv6VLTdmEFk= + + com.baidu.idl.face.live.action.image.bundle/5_19.png + + fILkkulVJjEuZvSehi6caKEQmH0= + + com.baidu.idl.face.live.action.image.bundle/5_20.png + + /2EV+ttSh/F2bjGUtjd9tCpIV/Q= + + com.baidu.idl.face.live.action.image.bundle/5_21.png + + kVSoMc4tKOW9IPioy3KXUXiSYk8= + + com.baidu.idl.face.live.action.image.bundle/5_22.png + + GOHr0p8cj/AblwPep4+curlR86M= + + com.baidu.idl.face.live.action.image.bundle/5_23.png + + PknSaFLcbDeMzmAK7bCSHlrJH30= + + com.baidu.idl.face.live.action.image.bundle/5_24.png + + Dtie24F4IxeVAHp6yy4VAde6tbU= + + com.baidu.idl.face.live.action.image.bundle/5_25.png + + 1dP1qmDv/JNWOM3/roXab1eWL9M= + + com.baidu.idl.face.live.action.image.bundle/5_26.png + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + com.baidu.idl.face.live.action.image.bundle/5_27.png + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + com.baidu.idl.face.live.action.image.bundle/5_28.png + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + com.baidu.idl.face.live.action.image.bundle/5_29.png + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + com.baidu.idl.face.live.action.image.bundle/5_30.png + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + com.baidu.idl.face.live.action.image.bundle/5_31.png + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice1.png + + 63eC/kOht+DeSnMUQoqzlaK3ceI= + + com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice2.png + + CMjWBYjbULJ6Cd9ui+Q9XdI1Uc8= + + com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice_close.png + + CMaziQCYCMPXIP6zIqyRB7yMxU4= + + com.baidu.idl.face.live.action.image.bundle/nav_back@2x.png + + 3r4vpvlybfQ9SBQRGHmP8SoY3u0= + + com.baidu.idl.face.live.action.image.bundle/nav_back@3x.png + + XlVdXYAblylvrV2JMHnbRkRcuzQ= + + com.baidu.idl.face.model.faceSDK.bundle/align-customized-pa-offlineCapture_withScore_quant_20200909.model.int8.6.4.7.1 + + Ofe5NXkMOhX+IC4JR1AxhBnugvI= + + com.baidu.idl.face.model.faceSDK.bundle/blur-customized-pa-blurnet_9768.model.int8-3.0.9.1 + + LDLLS6h0cCIKdlolpg9TpMRMRoA= + + com.baidu.idl.face.model.faceSDK.bundle/detect_rgb-customized-pa-faceid4_0.model.int8.0.0.6.1 + + Eb9l8JMBe5XFexmoZSHbh66GKdw= + + com.baidu.idl.face.model.faceSDK.bundle/eyes-customized-pa-caiji.model.float32.1.0.3.1 + + 5QHS5LOtZ2udrCRkcZzKLZEDO98= + + com.baidu.idl.face.model.faceSDK.bundle/mouth-customized-pa-caiji.model.float32.1.0.3.1 + + frtruYCzAPpuVrzFRjsQDJ571+Q= + + com.baidu.idl.face.model.faceSDK.bundle/occlusion-customized-pa-occ.model.float32.2.0.6.1 + + QATOaYpO+dxFby2K6sAsuaJgkGc= + + idl-key.face-ios + + CSIcj5wd37ai6ZOD5te+ttAdD+I= + + idl-license.face-ios + + vhqKtqXfL9qkLsMZ2a2rOIdOLnA= + + + files2 + + BDFaceParamsConfig.json + + hash + + siFhbAECuQgdK/dLIm+y5K6bIdg= + + hash2 + + RlnHwlJjlCMmA+WpAMmYDP+sg3QVsZgpfVU73NaWHvs= + + + QRResource.bundle/Root.plist + + hash + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + hash2 + + m26DmegPkB5jwUJkVEtLlObYALX8He100Ny0+NNJg/g= + + + QRResource.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + hash2 + + xUzNd7J7w99oAnMIWGe1dAGArHMuEXwQqxSziDU5vLk= + + optional + + + QRResource.bundle/scaningCode_album@2x.png + + hash + + jrsHfhkFVnFuIXQt9w4NyuxWj8I= + + hash2 + + ZKqh8ZiFJhGJshE3C8GbwmQsiNDPo++shZHD35uY0F0= + + + QRResource.bundle/scaningCode_album@3x.png + + hash + + r1/PtcfiO3O/HXuXI6bAb7eDFdI= + + hash2 + + Cz0iT3GkX0pwz4FhkxV72MIlh0a1ARBUgzCl9bsZDhA= + + + QRResource.bundle/scanningCode_back_highlight@2x.png + + hash + + w577/ZEWktkoHdobPtzdRbCkVP4= + + hash2 + + gs8hrx3kobVkVpqb8zHL1yVIIjSQUeMw8eI9T0b80iE= + + + QRResource.bundle/scanningCode_back_highlight@3x.png + + hash + + 8TUAJckYo5CEVEfkBLyzd21hrag= + + hash2 + + LlY7iQ+m9ha2ji2gt3eXrAlIjx7qNJmjJiUumHivLsc= + + + QRResource.bundle/scanningCode_back_normal@2x.png + + hash + + X3BKCIvbmZVI01bFhjJiFJWw/3Y= + + hash2 + + Vr4URvMSgzhy2jW7q50BfNbS5804IF38o9flzaPXv6g= + + + QRResource.bundle/scanningCode_back_normal@3x.png + + hash + + pqT5sHx4P2iVD0WuXo/VYK/fwwQ= + + hash2 + + Xe+rVJr+tSbX3WxdsTTLvvOnBFqhsddw4B+isuZ9Mrc= + + + QRResource.bundle/scanningCode_light_highlight@2x.png + + hash + + tgkXBsSmpgACFhkcj7YRh4kKbYI= + + hash2 + + obiRhM+5VNEchOlvd2ht1PhEKxjC6LJWlOrFqr6KDrE= + + + QRResource.bundle/scanningCode_light_highlight@3x.png + + hash + + bINOz/42KMhDXe3TwGKa7f1PWoE= + + hash2 + + aHL76M4nwEEyvTlqXI+x/ktP8UiAZlqjVusf4PJYUIk= + + + QRResource.bundle/scanningCode_light_normal@2x.png + + hash + + hX4Egv9Xj31Dgl3ITf0JgjL4LLU= + + hash2 + + Y5kYrDK5is1ux7MdRJpsoIfLBFlCuI8sGXABaFt/N6c= + + + QRResource.bundle/scanningCode_light_normal@3x.png + + hash + + C2g4vSTZex1EHkLSl1jpRcurwMA= + + hash2 + + uIo5CaN2qXXBo5mRb+439dn1D2YDEUmyz15+xVF1yaM= + + + SGQRCode.bundle/Root.plist + + hash + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + hash2 + + m26DmegPkB5jwUJkVEtLlObYALX8He100Ny0+NNJg/g= + + + SGQRCode.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + hash2 + + xUzNd7J7w99oAnMIWGe1dAGArHMuEXwQqxSziDU5vLk= + + optional + + + SGQRCode.bundle/sacnningCode_line@2x.png + + hash + + Sdq+Gly1PjYQxrAeRn0uRDaBUdc= + + hash2 + + VwlDmPPPNCNdaVG5f2tmtNWMicpYiWQZXn2FJbYdWbs= + + + SGQRCode.bundle/sacnningCode_line@3x.png + + hash + + 0h42mOyclVBYnzBXVVE/827JjRM= + + hash2 + + A7dBvbK0RbSA/sbqKZ3VLrebNPE/1UMH3OXQ96NIdmc= + + + SGQRCode.bundle/scanEndSound.caf + + hash + + iZVdiwY7C4RBniEGgPS440vVkRo= + + hash2 + + nF6Fi+K3yiQ85bNQ6qX1Zg+XRhxlRV3UWNISmh7b4OM= + + + SGQRCode.bundle/scanLine@2x.png + + hash + + hIOfFERrCtyus2oRKTWjCkXDCSQ= + + hash2 + + xv+GfJwdKEJJ/dJGXAU32tyd0uxNN0vMWHYFab5L2tM= + + + SGQRCode.bundle/scanLine@3x.png + + hash + + tmiCUo964YPLT/wKYv/pCuWKVfc= + + hash2 + + iBjR9lPWtEk/CWmCJNLYgJkrIriV90DzAN3wL/UwXVs= + + + SGQRCode.bundle/scanLineGrid@2x.png + + hash + + dB3+VkRESnFugPUpyDJ2iHFAZiE= + + hash2 + + DmEX+cfAM47y5NysP/PM/n+PEU44Ug8gNHtl/ZxsJJk= + + + SGQRCode.bundle/scanLineGrid@3x.png + + hash + + Lxw8X/gDtCuZM3mhqVeg1opBZ7o= + + hash2 + + z98Lbo9mUkww36DK82tt9eToRA/LqTWVDuQdwPs06LA= + + + STSilentlivenessResource.bundle/KM_Align_occlusion_106_1.19.6.model + + hash + + 3RZXAXY2FXPpxvNs1DsOEx0sO7s= + + hash2 + + xsHNNpkPzbDGUrChjPuKzYA/COx34x/qxarjrtoY198= + + + STSilentlivenessResource.bundle/KM_August_Face_Gray_PPL_2.6.3_half_compression_v2_origin.model + + hash + + AkPAyLJ1+61AKvPszCecbUAT0Ao= + + hash2 + + Q1avJFcCg9V7Xf56Xnnt3e2m99ayaPQAv1N8G7FMDPY= + + + STSilentlivenessResource.bundle/KM_Headpose_106_ppl_2.3.0_half_compression_v2_origin.model + + hash + + +aNDwakxlMd+LR5KY1PGNtXjbeM= + + hash2 + + AuCwsL/HKo60r1JY16Qdv0Z0eCnbg0vJZpeK0ZupTS4= + + + STSilentlivenessResource.bundle/KM_Hunter_SmallFace_Gray_ppl_9.6.1_half_compression_v1_weak.model + + hash + + nQngtpRJ4i/Zp703VJLT4RhKA9g= + + hash2 + + C3Up14/v1TVp/upRZWT8aZdkBa4FuxGM3tOrFOaTY60= + + + STSilentlivenessResource.bundle/KM_Pageant_88id_Fcfp32_ppl_1.0.7_half_compression_v2_origin.model + + hash + + 5nbhU2ze1pTUogCZBLbAjGyhhmg= + + hash2 + + EPyHYsayiyMmQPvHoKy9jMY1uvUxKRGRhbcQTd3FRkk= + + + STSilentlivenessResource.bundle/KM_RGB_Liveness_General_Face_FP32_12.1.44_half_compression_v2_origin.model + + hash + + qhrAF80eEFzUfcQgHpZU0jiwqZs= + + hash2 + + xC4XV9bY9w75R8cogeObISpNBz+G28zfwIyWRrIpyhM= + + + STSilentlivenessResource.bundle/KM_eyestate_ppl_3.6.1_half_compression_v2_origin.model + + hash + + 3GInRkqUvSImAh8rmIz3+xyhbcY= + + hash2 + + 2kOa6fdeztfWlrZKGeAO3+QuwFTqRWcnreDpDp/pWvI= + + + STSilentlivenessResource.bundle/License.lic + + hash + + QOG65+CLQfSiEm9EoE9i6lM20G0= + + hash2 + + Y6u/QaSUPIERzvdeNBQTK7heHL9adxIZrDOmHxgm474= + + + STSilentlivenessResource.bundle/Root.plist + + hash + + jOhqEUF1/xyY+fuswiWT+ELC3dI= + + hash2 + + m26DmegPkB5jwUJkVEtLlObYALX8He100Ny0+NNJg/g= + + + STSilentlivenessResource.bundle/config.plist + + hash + + s+4Pqn0wSDUbVuxTT6Oq6mUWYh8= + + hash2 + + bcdjkuMxoaL8eHDoAz/Qz6PF3WCV3LJwyzZqkO3s5Tc= + + + STSilentlivenessResource.bundle/en.lproj/Root.strings + + hash + + t4KY9Gh4uIiOv7VnHtRrKEuPRY8= + + hash2 + + xUzNd7J7w99oAnMIWGe1dAGArHMuEXwQqxSziDU5vLk= + + optional + + + com.baidu.idl.face.faceSDK.bundle/blink.mp3 + + hash + + zbDg8LSSnS4gmu7UmZu6oyTRUng= + + hash2 + + ashZoFq/Acf5SwQ9uSaPjfDkzGrQJPxG1Ip+qTcOMGk= + + + com.baidu.idl.face.faceSDK.bundle/ding.mp3 + + hash + + 7UCqBAWc+FQu96Wo+J23lpKlsto= + + hash2 + + l0hbonrad9VKW+S3TmMfJ6+KsIrHIE7eVJJTBXCxKjk= + + + com.baidu.idl.face.faceSDK.bundle/head_down.mp3 + + hash + + nXojqtRAE8JCq4kib3ud41vqnO4= + + hash2 + + FDve8BKquNBSxIVFcgCFTXrUiZgMpe9XnHEkO43dm94= + + + com.baidu.idl.face.faceSDK.bundle/head_up.mp3 + + hash + + 7abNcPt1MP5NbtLagoBPEzPqQ4E= + + hash2 + + TgXWjCbiG8h2ejq5rIjgIuOoy7oyLii1h5RXJJ9rulw= + + + com.baidu.idl.face.faceSDK.bundle/head_yaw.mp3 + + hash + + SGSDVq5B1a/akc1q2I21O55bpIo= + + hash2 + + kSp07Xmr5IQ1J5uSCS/Xbmd+9Bc/zEXpY730vGEPb38= + + + com.baidu.idl.face.faceSDK.bundle/moveface.mp3 + + hash + + A2FB3yrj41tlSA7qgWsZWfrbwjc= + + hash2 + + 2MrGEkVqGHxi5Kds4A9X501sf72/SptZLPvM1oCD3JI= + + + com.baidu.idl.face.faceSDK.bundle/open_mouth.mp3 + + hash + + wVZRrJ7TMe+rTXl06qhsrFwvm0Y= + + hash2 + + U1E6MsVGXANVlCxd5pvilIwwJWwTFTic4k0mbWpTR18= + + + com.baidu.idl.face.faceSDK.bundle/turn_left.mp3 + + hash + + R/jxcWCXiBYOnUZeFTHyjYwNQZ0= + + hash2 + + uB9aX7rllzq4445XWQZHo7hMgY5EFWin6HVQjkZE3PE= + + + com.baidu.idl.face.faceSDK.bundle/turn_right.mp3 + + hash + + 3JjViABorgxq0bZFbJ/hw8uoa5U= + + hash2 + + KQ954V1eJmy12KnH5B1tC9OMZtS+Wx7PMcoo6pAlHqc= + + + com.baidu.idl.face.live.action.image.bundle/0_01.png + + hash + + P5N91l0RhLAXrxJQoHJsjpf+9J0= + + hash2 + + DPAVEg2JoG9588Wr5UKBd9xvqrLprSVPEgXi5XHs0H8= + + + com.baidu.idl.face.live.action.image.bundle/0_02.png + + hash + + UIWZ2aQhNkeExuT3jn/kAFr8Buc= + + hash2 + + FTsD35fQ/u4i0qV2bw1M/+F9m4xdmdxYIPqwzI1uQCQ= + + + com.baidu.idl.face.live.action.image.bundle/0_03.png + + hash + + 9UXmuq632sFhXcx2rWHVUwzpBs8= + + hash2 + + ClVUP+k/2exAzbYRaZYOtcLNRA7txzsEobX7ZTOnQpc= + + + com.baidu.idl.face.live.action.image.bundle/0_04.png + + hash + + svs8maDma3+Qk7M09TTYR4m3B1A= + + hash2 + + MWeJpGu1O/4NFkZq/T3vfI5HqSy6UN5ZB5RmoGiGi6I= + + + com.baidu.idl.face.live.action.image.bundle/0_05.png + + hash + + /fTpgQ4aobo/5Twrgg4fhgRfsl0= + + hash2 + + c9B+pnSmtT1NNnKEI2J456AZAeO4BYd0+iSoiEhhr6g= + + + com.baidu.idl.face.live.action.image.bundle/0_06.png + + hash + + 4jA6Rx+9PcFIK9QwhFYF4o2e0oM= + + hash2 + + 3HsFCbWd0cYjIrI1DqftVfdrB5UlNH6f7nXdxhT0XJ0= + + + com.baidu.idl.face.live.action.image.bundle/0_07.png + + hash + + 4uSN2+pwqjvI2wyVMjKvBCu3ER8= + + hash2 + + S9P52mm/jLeAyTCEyLp936qPVHjHuTwmkQxxzXPgbBQ= + + + com.baidu.idl.face.live.action.image.bundle/0_08.png + + hash + + LhG3FW/RVtApTImFbo+pb7q0Who= + + hash2 + + 2bWcSdsTirbTnawfP8x029Fv4Z7kpvq7+IC3o+NwDX0= + + + com.baidu.idl.face.live.action.image.bundle/0_09.png + + hash + + 5FldzkkQThjvXtNePmOxd6YUSWM= + + hash2 + + wgKKlbHsUo+yTEldgJ6L1vQ0lpeXksAtrEzZylJzGkA= + + + com.baidu.idl.face.live.action.image.bundle/0_10.png + + hash + + kJUtpwQWJJss/IZorZemeRecOp4= + + hash2 + + NThMdMXK5c1zXtcRfNHFH5eEqDZ8heUVkNDrVOXuAII= + + + com.baidu.idl.face.live.action.image.bundle/0_11.png + + hash + + G33OuRx7jh4zaNrSJyZJc5nwEn8= + + hash2 + + SXnnsxRBRZvxZrMRuHowwr81ceLlwNMI1zQ86DXFHmA= + + + com.baidu.idl.face.live.action.image.bundle/0_12.png + + hash + + k7jpphPTACHb9GSdIETR36gArSk= + + hash2 + + Ls//zRp8Ghsj7WzXVS/r2TQgoBP6qygp2w6kBJuTpAg= + + + com.baidu.idl.face.live.action.image.bundle/0_13.png + + hash + + rVtYi6nY98x9cJkTAPboZiUStD4= + + hash2 + + ULD9lWU1o0EBlGULDaCw+dgPEGaMcS6HSRATTZ3PDxo= + + + com.baidu.idl.face.live.action.image.bundle/0_14.png + + hash + + AGB3GJu1a3qEnRIk4gbN0HlVItk= + + hash2 + + yy7S+/GeuSraBar1auljcHm6FPGrjvTErEOwJbSdTgU= + + + com.baidu.idl.face.live.action.image.bundle/0_15.png + + hash + + 9f7G++J5TVcJNpiYDKHEb7OoiFE= + + hash2 + + tV02Z91GNb+Vy5USZCyIxF7IuXQDyrLvGXWQf/DprL4= + + + com.baidu.idl.face.live.action.image.bundle/0_16.png + + hash + + CPOsA9acZBE9LH15Q4mYfhadvx0= + + hash2 + + MXchjijCyZKYnQ7MEiZCzXs1hBsas1ecxnmBwE2CotY= + + + com.baidu.idl.face.live.action.image.bundle/0_17.png + + hash + + P5N91l0RhLAXrxJQoHJsjpf+9J0= + + hash2 + + DPAVEg2JoG9588Wr5UKBd9xvqrLprSVPEgXi5XHs0H8= + + + com.baidu.idl.face.live.action.image.bundle/0_18.png + + hash + + P5N91l0RhLAXrxJQoHJsjpf+9J0= + + hash2 + + DPAVEg2JoG9588Wr5UKBd9xvqrLprSVPEgXi5XHs0H8= + + + com.baidu.idl.face.live.action.image.bundle/0_19.png + + hash + + P5N91l0RhLAXrxJQoHJsjpf+9J0= + + hash2 + + DPAVEg2JoG9588Wr5UKBd9xvqrLprSVPEgXi5XHs0H8= + + + com.baidu.idl.face.live.action.image.bundle/1_01.png + + hash + + t4lc8+gl1zN0ar7bLOHYZIhq1TM= + + hash2 + + snCmzmwJI/KnwLpDdx8S935iNh8KWVGF+ykoBmW59ho= + + + com.baidu.idl.face.live.action.image.bundle/1_02.png + + hash + + 7CZ00+VNn/AhRrPtk9NrRz7zAwo= + + hash2 + + x5JyL465m9BMSLITovqDFE8J+6b/mlPa4G8K+gNc4y0= + + + com.baidu.idl.face.live.action.image.bundle/1_03.png + + hash + + qJCX8in7xR1TorXrtxuEiTuknTs= + + hash2 + + q5aE0+mzkzbKzCWeTXZ6U+uoEmPsgGprRLysciaBNhU= + + + com.baidu.idl.face.live.action.image.bundle/1_04.png + + hash + + js8KNcx5xTj+z4ZRJQ3K1BP9XEo= + + hash2 + + Lg++XiuutSiPp68CwtI1mEv70epUYEiK23RL9ax98Y0= + + + com.baidu.idl.face.live.action.image.bundle/1_05.png + + hash + + y7MNMh7URpkeOHGmLCOhq8ggQnw= + + hash2 + + Lf4A/ZFbkRdbkcvtrX6eJYnWf2NSEMt1HKHlGj9+QIY= + + + com.baidu.idl.face.live.action.image.bundle/1_06.png + + hash + + 2NJh180Mc7wrWoxbWOcZXC5jeJ0= + + hash2 + + DCuochrflVp1VURcWH2V/Fnrr+s6ISmsLs1p8B4sdsk= + + + com.baidu.idl.face.live.action.image.bundle/1_07.png + + hash + + GClomy8Mb82Jvq1QBblTq4UiFgg= + + hash2 + + qJbl8eoTDaS+bQbby91gxraGm/EfsUiRW9LiPUGXqrg= + + + com.baidu.idl.face.live.action.image.bundle/1_08.png + + hash + + u8axj9UIgYWnKh7EpAQ3FSqJmRw= + + hash2 + + 6trO4AXPtMZnVyynEVN4ekN54xt7ORrAtx/TtNtBrL0= + + + com.baidu.idl.face.live.action.image.bundle/1_09.png + + hash + + 2xyGb/eSqrztIAXjyL1to5CCEDA= + + hash2 + + 6lwL58472xrng7/jturCSu4t0C20tXkX0+S96g9Fs/E= + + + com.baidu.idl.face.live.action.image.bundle/1_10.png + + hash + + qdnvkubcVS7Xc2/7vKQDSTYyszg= + + hash2 + + gOmJW++dhwlP2yDexPChehUcAFQeSGC05e9wxPltH8o= + + + com.baidu.idl.face.live.action.image.bundle/1_11.png + + hash + + +mFO7HphK9q0cWE1j9wH9NT0zv4= + + hash2 + + plgPf4kNTuCjAwgmWnEBnIunsiQ54vJ0K7Wofmzkj3o= + + + com.baidu.idl.face.live.action.image.bundle/1_12.png + + hash + + TpcOhxHwac8tVfHeHRBPbzRRjZY= + + hash2 + + rjFP7vhAEQgcUL/JIxiyHjJP3+mT9IRE5tLDbBHQmvE= + + + com.baidu.idl.face.live.action.image.bundle/1_13.png + + hash + + y30UFfXlf2Mijj3ZeIFbbRE0rLw= + + hash2 + + RTz6sPx2gdDIW63KYb2dND9wwzT7E9ZFfHXN+YLe7Kg= + + + com.baidu.idl.face.live.action.image.bundle/1_14.png + + hash + + dsrnsA3HghTBjJHxzM//fMJV9eo= + + hash2 + + /Enhjl6fhrO+CC5A4GJ6BGDsQ1M5kKCJX2ycE0/ZKmE= + + + com.baidu.idl.face.live.action.image.bundle/1_15.png + + hash + + sL7n/O72fDvcHihFe8pN9w8mrBs= + + hash2 + + VUekp8O5VGidYIEChCDxvOZobx1KBnsp417hy4PkUks= + + + com.baidu.idl.face.live.action.image.bundle/1_16.png + + hash + + o00Z2OJ44JDXXCBnz6vpY50QXm0= + + hash2 + + 8ukVaSaE355snEVcMTSdc7KGO42wZQG9Yl+OWPv0Dwk= + + + com.baidu.idl.face.live.action.image.bundle/1_17.png + + hash + + GX42HTGjGi8V8Tk8FWi4SlnPXaQ= + + hash2 + + Te9MgW2JCpcaPgeQi4kWh5f8UP7nlrKVWwChrQ4wdbo= + + + com.baidu.idl.face.live.action.image.bundle/1_18.png + + hash + + BQFFWXIt4i3h8gIPNeRqbHlXY2U= + + hash2 + + vEmN5TgECxF96isnYjUqQbxzBTfGx/Mc2LPZxjhUEiQ= + + + com.baidu.idl.face.live.action.image.bundle/1_19.png + + hash + + F6arAY0Q/BeP5W72/g4qYO6RtqA= + + hash2 + + h/GIhqqSfOaukrB3qoM9keiU/wEtnWXWMoFl4RIG99g= + + + com.baidu.idl.face.live.action.image.bundle/1_20.png + + hash + + 9YMX3AtJ8IKyw7aOkBSrxuntJBg= + + hash2 + + UvOgzREfprUp2yJSCp4N5z9jbFTPBkBTPRc4xeAgdLg= + + + com.baidu.idl.face.live.action.image.bundle/1_21.png + + hash + + t4lc8+gl1zN0ar7bLOHYZIhq1TM= + + hash2 + + snCmzmwJI/KnwLpDdx8S935iNh8KWVGF+ykoBmW59ho= + + + com.baidu.idl.face.live.action.image.bundle/1_22.png + + hash + + t4lc8+gl1zN0ar7bLOHYZIhq1TM= + + hash2 + + snCmzmwJI/KnwLpDdx8S935iNh8KWVGF+ykoBmW59ho= + + + com.baidu.idl.face.live.action.image.bundle/1_23.png + + hash + + t4lc8+gl1zN0ar7bLOHYZIhq1TM= + + hash2 + + snCmzmwJI/KnwLpDdx8S935iNh8KWVGF+ykoBmW59ho= + + + com.baidu.idl.face.live.action.image.bundle/2_01.png + + hash + + 6HvBuazWytW5wiP9J5cTWBp/D0w= + + hash2 + + CW8we9hj2gSRgoCCSEMmme+MQKdriqtt8IywWNknRqc= + + + com.baidu.idl.face.live.action.image.bundle/2_02.png + + hash + + 6HvBuazWytW5wiP9J5cTWBp/D0w= + + hash2 + + CW8we9hj2gSRgoCCSEMmme+MQKdriqtt8IywWNknRqc= + + + com.baidu.idl.face.live.action.image.bundle/2_03.png + + hash + + 6HvBuazWytW5wiP9J5cTWBp/D0w= + + hash2 + + CW8we9hj2gSRgoCCSEMmme+MQKdriqtt8IywWNknRqc= + + + com.baidu.idl.face.live.action.image.bundle/2_04.png + + hash + + x3DtjqcHaO9jl5SuGQsfX5jCeZ8= + + hash2 + + mZdtag0vqhtcW4e+rpdUYJ2VQrx4weTusk2WI4tsCzc= + + + com.baidu.idl.face.live.action.image.bundle/2_05.png + + hash + + cBaE9Y1XFOq7N9BWpdeAUl0K53I= + + hash2 + + NO8erVyvb1yCk8wLguEdVRgF3Y1nfdpJYzwQ9gLp5lY= + + + com.baidu.idl.face.live.action.image.bundle/2_06.png + + hash + + zFHYGhqU65KOXyD5vOf7TLvG+tU= + + hash2 + + Bwflcm9cjuTMbkzaOLtJ3bNQo7PYYBqcmf4aX1yTSE8= + + + com.baidu.idl.face.live.action.image.bundle/2_07.png + + hash + + 6zVHsJGIkWW5TXBwXDZtI3lTPbw= + + hash2 + + PqghrIGgH7z59zbbaY0frlwt/x1Ah3625Bpmin8ciRo= + + + com.baidu.idl.face.live.action.image.bundle/2_08.png + + hash + + cm3WjxPqbcRHBrjb6mXTu1mEa8s= + + hash2 + + XLslhGYjb5QKTQAYxu/QYLQuA0xjseGCtG5RXdJK96s= + + + com.baidu.idl.face.live.action.image.bundle/2_09.png + + hash + + 379MvDbCHuCOnwsf9WhzLh0Ipbs= + + hash2 + + T+0WVRYv4FIrrD0S5VYmHHgINhIZrg3EMgaJ6E9TW4s= + + + com.baidu.idl.face.live.action.image.bundle/2_10.png + + hash + + NQ98mVaUcnv6oWStgtLIA05beRM= + + hash2 + + HUNGSBB0BLhIQUZBnKG/rryienNpKBynctapgCs4DKE= + + + com.baidu.idl.face.live.action.image.bundle/2_11.png + + hash + + jduAGbLjycq2XK6RGU90Ts/F0gE= + + hash2 + + TJLkTYRhTVr2p3R780IftqdJHcgjBY8R/d3BzxUKVIg= + + + com.baidu.idl.face.live.action.image.bundle/2_12.png + + hash + + 0WtV8nXWWspZsEdoBqFEDimrd3o= + + hash2 + + lRuLEHbJnQckOUO6I2jDWh2Ig4ibRLIDG8G9K7nSq3g= + + + com.baidu.idl.face.live.action.image.bundle/2_13.png + + hash + + gAdEblfWsBuIQA0s6FuHow6F72k= + + hash2 + + 627fItKs/sb7a7YdWIHQ0Jhw0MKD90GFumffLc9WCdA= + + + com.baidu.idl.face.live.action.image.bundle/2_14.png + + hash + + vxLiMdim4/Z9f4nO7gbOBjpxKeA= + + hash2 + + AnkIOYGQwkekuFqawBykGntLioyxkqpNPW0C3yE3ECk= + + + com.baidu.idl.face.live.action.image.bundle/2_15.png + + hash + + vxLiMdim4/Z9f4nO7gbOBjpxKeA= + + hash2 + + AnkIOYGQwkekuFqawBykGntLioyxkqpNPW0C3yE3ECk= + + + com.baidu.idl.face.live.action.image.bundle/2_16.png + + hash + + vxLiMdim4/Z9f4nO7gbOBjpxKeA= + + hash2 + + AnkIOYGQwkekuFqawBykGntLioyxkqpNPW0C3yE3ECk= + + + com.baidu.idl.face.live.action.image.bundle/2_17.png + + hash + + SadC1VhtwrU12F/f6t25z8+7S10= + + hash2 + + Z8gDBLbyPzbO2Z+Fa4mIcJuRcoH1nH4MicQiG7NbyBM= + + + com.baidu.idl.face.live.action.image.bundle/2_18.png + + hash + + BzpqDWFe4ygctKlquv6pBmjLXEY= + + hash2 + + BUE9T89m2oKpdOJvQ2t/Tpyd3NPQbPGTZlRY/Cblpoo= + + + com.baidu.idl.face.live.action.image.bundle/2_19.png + + hash + + w5hiGi/lSE/Ja/OSl8i1Z2e53/M= + + hash2 + + 7KTCMZreXJm/IqK5CYRSj42siURFiWSPNHZk/1d1mlY= + + + com.baidu.idl.face.live.action.image.bundle/2_20.png + + hash + + rJxyBQeVwaZkSUfAiqu2uNERcLo= + + hash2 + + fu+AuIojCpS1AaORdUnu3GNxDpVdZzidjl5bp++lOT0= + + + com.baidu.idl.face.live.action.image.bundle/2_21.png + + hash + + 5sAOkseQINwRFfkBY5UUqv6a86c= + + hash2 + + miXQXIVFUNbFRvpWKoUEm+OS01uHUcSMJsuoT/VQ07g= + + + com.baidu.idl.face.live.action.image.bundle/2_22.png + + hash + + JBxfOpqPenC5k+IIKYuUBRpUO3k= + + hash2 + + Md2J3oiaN2MTkWjcqiGghuKAcoRxsHaLnjJofXwxOL8= + + + com.baidu.idl.face.live.action.image.bundle/2_23.png + + hash + + 7aOjh1/78x6R0pEdtewgTpE1UBM= + + hash2 + + ZZ8nbK9UqLaqOym4VDPUe1esnOvPb4WL1jZuaV0Ta34= + + + com.baidu.idl.face.live.action.image.bundle/2_24.png + + hash + + 7Q4kgMyo8pcWFK82+6n3Wfxn5XA= + + hash2 + + xFmFv8/qrter//9y1Q1pPnEtHUpwBUwsEI73bbXdyNI= + + + com.baidu.idl.face.live.action.image.bundle/2_25.png + + hash + + 3QySMnYLRlYb24YDEMPau0QrAOA= + + hash2 + + a17sDmM7EZ/eO7su1997zMIuYBouDv5SlUlenTYz8Lc= + + + com.baidu.idl.face.live.action.image.bundle/2_26.png + + hash + + XAr//OLkY4UwuzNygXOVhu0xn6E= + + hash2 + + 9RdC/y1MgfvzaCXglKcqx3uHTTX3ZhNFer9QlGDgSuY= + + + com.baidu.idl.face.live.action.image.bundle/2_27.png + + hash + + 3iikS94MKxlOF4h93IEqlsfGFYg= + + hash2 + + cHlZFCnuuTWVHHgvasHD6ri9Et/UmJ7DkEXxQMD5h90= + + + com.baidu.idl.face.live.action.image.bundle/2_28.png + + hash + + 3iikS94MKxlOF4h93IEqlsfGFYg= + + hash2 + + cHlZFCnuuTWVHHgvasHD6ri9Et/UmJ7DkEXxQMD5h90= + + + com.baidu.idl.face.live.action.image.bundle/2_29.png + + hash + + 3iikS94MKxlOF4h93IEqlsfGFYg= + + hash2 + + cHlZFCnuuTWVHHgvasHD6ri9Et/UmJ7DkEXxQMD5h90= + + + com.baidu.idl.face.live.action.image.bundle/2_30.png + + hash + + 3iikS94MKxlOF4h93IEqlsfGFYg= + + hash2 + + cHlZFCnuuTWVHHgvasHD6ri9Et/UmJ7DkEXxQMD5h90= + + + com.baidu.idl.face.live.action.image.bundle/2_31.png + + hash + + 3iikS94MKxlOF4h93IEqlsfGFYg= + + hash2 + + cHlZFCnuuTWVHHgvasHD6ri9Et/UmJ7DkEXxQMD5h90= + + + com.baidu.idl.face.live.action.image.bundle/3_01.png + + hash + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + hash2 + + Gr4ONwH1bE231BSjpXpimdmvec7w6oHISIvVzWaVAUA= + + + com.baidu.idl.face.live.action.image.bundle/3_02.png + + hash + + OjmsyMvTH8lmzSHBf07s6lbmFKg= + + hash2 + + 2uTRY3qmWmbHk9V/3YDLpgQ2Rgs2XXSuuh4j6bwagxw= + + + com.baidu.idl.face.live.action.image.bundle/3_03.png + + hash + + 5vs8vysJNicTH9h/K+gYWlSI1zI= + + hash2 + + +vab/AIlUbfgh+1AVYzFLG0bSHPH/etG67pJWa3rL7g= + + + com.baidu.idl.face.live.action.image.bundle/3_04.png + + hash + + lh6nlKqKYWcmTDe5zFYkhFithYs= + + hash2 + + ExLEC0XRcwV7yY2h0LuXgvMX5d0TiBB9O7ygKDlPqac= + + + com.baidu.idl.face.live.action.image.bundle/3_05.png + + hash + + wvGBUyLpzkZyiBs3iC1Vho90TVE= + + hash2 + + ZA2jzHccEk24GQGIcpej0pcGoQkMaz2JSHJYBIrW9VU= + + + com.baidu.idl.face.live.action.image.bundle/3_06.png + + hash + + MV03aOk23IN/qJCVghRdgr9xi8M= + + hash2 + + QmHQ21UnchkZOeuqigeIN5W+WB3RG6CsrDmsCRfyhXQ= + + + com.baidu.idl.face.live.action.image.bundle/3_07.png + + hash + + qO+6phIAtNYKDaHlA7NvLm5Qd9A= + + hash2 + + ELDRm9MsrhLB1OuNoqkHGXgFeF6TgNyY+r2GoZszq/s= + + + com.baidu.idl.face.live.action.image.bundle/3_08.png + + hash + + T7bI/UpDkcNeV4Solm5gYhgbawY= + + hash2 + + OkCP0uDUZhbtVIsAShczMmqHq6G4b0SIyVS6r5kXjc8= + + + com.baidu.idl.face.live.action.image.bundle/3_09.png + + hash + + 7qY6J0Sm+Kx7tWlBbbKJMLJRlfc= + + hash2 + + xphfCcZlc9xJrINgSgcr0IIE5yIcPTkpc43B6Z3oBc4= + + + com.baidu.idl.face.live.action.image.bundle/3_10.png + + hash + + fIhJM6CQV2/g7z9gQ9U34UBJGKA= + + hash2 + + sHXstosQevbZRnq2nDRIiyEnwtPuJU4CAOews/rdv9M= + + + com.baidu.idl.face.live.action.image.bundle/3_11.png + + hash + + Tb1T8j6Re5pNsBkxmb/omR9yL+Q= + + hash2 + + QHAudLqKKXsas9kQglHQUgfhMv3NlTMsyk2DdC/w9U4= + + + com.baidu.idl.face.live.action.image.bundle/3_12.png + + hash + + xgwig+7LLbG3HYtdHxGLjviKtCs= + + hash2 + + amc3A3HsMzEnbYHh5PuzELBE4N90wnU+Prz5z4nPwMM= + + + com.baidu.idl.face.live.action.image.bundle/3_13.png + + hash + + mg8hbBHe9no+/pvqamBcVRz/cGc= + + hash2 + + OCG/B4c/hg+R1eR8GxRRVUmVQHL4nmtyXL3yF7P+HfM= + + + com.baidu.idl.face.live.action.image.bundle/3_14.png + + hash + + mg8hbBHe9no+/pvqamBcVRz/cGc= + + hash2 + + OCG/B4c/hg+R1eR8GxRRVUmVQHL4nmtyXL3yF7P+HfM= + + + com.baidu.idl.face.live.action.image.bundle/3_15.png + + hash + + mg8hbBHe9no+/pvqamBcVRz/cGc= + + hash2 + + OCG/B4c/hg+R1eR8GxRRVUmVQHL4nmtyXL3yF7P+HfM= + + + com.baidu.idl.face.live.action.image.bundle/3_16.png + + hash + + A7pOou32J4POlZJ3Nxw95/5IPtU= + + hash2 + + BMd9b/XQ60QWpVWY/fPe9BMQSaub4+HcGRmfkx20Iww= + + + com.baidu.idl.face.live.action.image.bundle/3_17.png + + hash + + y1lLWYoVsq8EOwBYnzB3NvY8uNc= + + hash2 + + zYfc2ixW7+TD4jpD6zFooj4nv9fdXMe8+aSz9E6dQJA= + + + com.baidu.idl.face.live.action.image.bundle/3_18.png + + hash + + ZXc1Pq4meqzR+rRr4mDwPsgH3nA= + + hash2 + + xW4Q+16EJvXmffAvcDIz+S8OYawfTxrGyR5q4qyZ+cY= + + + com.baidu.idl.face.live.action.image.bundle/3_19.png + + hash + + XPO+T+rN6YFauv0Ww/cnJuoQYoA= + + hash2 + + 0actsWRaY046t6YyE2Gm0q57FwvkHyLMJDA5Z714/gk= + + + com.baidu.idl.face.live.action.image.bundle/3_20.png + + hash + + 6NYd6DuomTfeySaRszMyQ0C5lCM= + + hash2 + + ZQBeXXiq31hBaR30UWwsTSRMEerBfbFmg2E5V6x+RJo= + + + com.baidu.idl.face.live.action.image.bundle/3_21.png + + hash + + lysDq9y1fZ5Qq85qTwzty4RiB30= + + hash2 + + b6vLDJKAAxXNaAZKRc3AcVDD7GRnJnEHd7l7sB4rpkA= + + + com.baidu.idl.face.live.action.image.bundle/3_22.png + + hash + + 91kNaSMj+yJFST7ZEZmf9cQL6fk= + + hash2 + + 4idpUMjD862SrGpIv47BdSL3Qsf2jHOWjhvVkACKVRY= + + + com.baidu.idl.face.live.action.image.bundle/3_23.png + + hash + + oUAmv2MWazcJcmef35WgQ62fK94= + + hash2 + + F0QhVRyqJ+lstNS0BINhIurn4KBRA5OCX97kunynkok= + + + com.baidu.idl.face.live.action.image.bundle/3_24.png + + hash + + yE0mZXDpibjVw9LPsi28VZzl36E= + + hash2 + + L0UzpWAlmlJRnzPECRK2HoJrAo6kERcAFwOmrVwDVG0= + + + com.baidu.idl.face.live.action.image.bundle/3_25.png + + hash + + aGU9ZRB2S3s0Ai+LuiH5aP8rU+0= + + hash2 + + mvFz5ZjkIy2dRcKyWR+cD7zQAk0LPVnuG8tkI3XgLmA= + + + com.baidu.idl.face.live.action.image.bundle/3_26.png + + hash + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + hash2 + + Gr4ONwH1bE231BSjpXpimdmvec7w6oHISIvVzWaVAUA= + + + com.baidu.idl.face.live.action.image.bundle/3_27.png + + hash + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + hash2 + + Gr4ONwH1bE231BSjpXpimdmvec7w6oHISIvVzWaVAUA= + + + com.baidu.idl.face.live.action.image.bundle/3_28.png + + hash + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + hash2 + + Gr4ONwH1bE231BSjpXpimdmvec7w6oHISIvVzWaVAUA= + + + com.baidu.idl.face.live.action.image.bundle/3_29.png + + hash + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + hash2 + + Gr4ONwH1bE231BSjpXpimdmvec7w6oHISIvVzWaVAUA= + + + com.baidu.idl.face.live.action.image.bundle/3_30.png + + hash + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + hash2 + + Gr4ONwH1bE231BSjpXpimdmvec7w6oHISIvVzWaVAUA= + + + com.baidu.idl.face.live.action.image.bundle/3_31.png + + hash + + b4Ph59S5+O0YUzEwt1aCkcasrHo= + + hash2 + + Gr4ONwH1bE231BSjpXpimdmvec7w6oHISIvVzWaVAUA= + + + com.baidu.idl.face.live.action.image.bundle/4_01.png + + hash + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + hash2 + + fRB9zTrlz1FC8ER0Avf0iq26FyuxR/ogHvD97mE+jwU= + + + com.baidu.idl.face.live.action.image.bundle/4_02.png + + hash + + loqyoBfrSN4pfvHGEwSiDFbPbQI= + + hash2 + + AbdSHaSQCaKo0iV7WzON8hzihegFYz0kbXPtHyHuIfQ= + + + com.baidu.idl.face.live.action.image.bundle/4_03.png + + hash + + 7Ovq039bES4JpAiK8IRfHUu3d/s= + + hash2 + + 9jsUHqKW+Tm/e1hODwK3rTNDRsdGNqcpfwAIdZdb+4I= + + + com.baidu.idl.face.live.action.image.bundle/4_04.png + + hash + + m/k4oanzvnxTXmgg59FKS9FrFFw= + + hash2 + + uOp1tFKu33k8g69o939YlhP2AOxWmSB8btvwDxsUUlQ= + + + com.baidu.idl.face.live.action.image.bundle/4_05.png + + hash + + kRGwAQA7hAhpZoooKIyhVJoKrSo= + + hash2 + + Tce4WllyQ6i5zGPElhBcSLuYRGApoDOC35cLUmVdprA= + + + com.baidu.idl.face.live.action.image.bundle/4_06.png + + hash + + MSaH2YqMeVprSmIAQdGQCDs21eo= + + hash2 + + k0nmx2T9QZOW9iu7pqaEdtl75TCfN2q11uiT7CDaL4Q= + + + com.baidu.idl.face.live.action.image.bundle/4_07.png + + hash + + sQrPSlj+7IQs7fRhPv0zoZDzEJY= + + hash2 + + +dlfv0AFCKjow9jrjZD362+Fg2cC+4mvUVm1jonhpfQ= + + + com.baidu.idl.face.live.action.image.bundle/4_08.png + + hash + + wBArHCTOhomFc+lr8U16OTj0FhQ= + + hash2 + + ZJ7U1tt2S+WpNtZtrAHzyf+DPm/nIAs4AxB68ULTqPU= + + + com.baidu.idl.face.live.action.image.bundle/4_09.png + + hash + + f1Z/8AzsfbqNfECcEFIBJODppB4= + + hash2 + + dVTBZsc6z0L8R8rFC85Kn0M42g7fynM4l8I8BxNqM5s= + + + com.baidu.idl.face.live.action.image.bundle/4_10.png + + hash + + 3f5qYxqW7DMuf4l/TwRbk+hLG7c= + + hash2 + + sHghepcuie3FJzY1jsESEVK0SA0FLvfGXOLRjqWwpIw= + + + com.baidu.idl.face.live.action.image.bundle/4_11.png + + hash + + 6AByB6No0u8jJxgMaJWPEhKykOw= + + hash2 + + lJi5HUB7Fk+ETtiueHBcEwt+30hipApzVOcLd98R35E= + + + com.baidu.idl.face.live.action.image.bundle/4_12.png + + hash + + 392GI3hdOgM0O91s3dff5L1QMXg= + + hash2 + + 4gsuZRDxkDjZNvGRF5sny7LHi2MR/6Nh2Pp4VH3UCy8= + + + com.baidu.idl.face.live.action.image.bundle/4_13.png + + hash + + 9cTKMv8Ro+b4H1lXHU5j00LhR4w= + + hash2 + + LlEh8tVytJTxYy1ywBeDp2zCOuBgGHO7TMP9LCPWFrI= + + + com.baidu.idl.face.live.action.image.bundle/4_14.png + + hash + + 9cTKMv8Ro+b4H1lXHU5j00LhR4w= + + hash2 + + LlEh8tVytJTxYy1ywBeDp2zCOuBgGHO7TMP9LCPWFrI= + + + com.baidu.idl.face.live.action.image.bundle/4_15.png + + hash + + wU8wQ5CVHnqRMBL1uXl7gAizO60= + + hash2 + + OZN80FF5FOVrDy7zV1BSXMU1VTMkOBe5Q5n3FVgJjpI= + + + com.baidu.idl.face.live.action.image.bundle/4_16.png + + hash + + 94b3HfXsbqQyJJL901Q03JqTQ4A= + + hash2 + + zTbMobYz/kdHCW/YFkoIpxai+Fw6J5Nl7V17XX2xBhQ= + + + com.baidu.idl.face.live.action.image.bundle/4_17.png + + hash + + wknvGDlaFhnpEk4EFaRw0HDJ9OI= + + hash2 + + LT+1zum/hocoeN5+RqyNzH7ZLUCTmp/Z0QEfz+2Q/6Y= + + + com.baidu.idl.face.live.action.image.bundle/4_18.png + + hash + + g/OomFIYk6PCibKcfPt5kHuNXgU= + + hash2 + + 4mk4J7EvQbnzWG7AD4sAbeH3Gp5P2XBp+15JIHnBLyk= + + + com.baidu.idl.face.live.action.image.bundle/4_19.png + + hash + + 3hFKeJLnwYeiwe9qXBKbpSOKdTA= + + hash2 + + Lep8n+eWghgGcZ998A5B67kt+Zj4ngGbNJl5sWOYEqo= + + + com.baidu.idl.face.live.action.image.bundle/4_20.png + + hash + + OB6A2+N3z3lT2kIrvum2jZ8Ebww= + + hash2 + + 36JEj+LGh/5LB/MapRXJT+0vgZRsKpciVAH3KFlFAG8= + + + com.baidu.idl.face.live.action.image.bundle/4_21.png + + hash + + kG1o6ki0RiFUrOdWI6xfg9S11Hc= + + hash2 + + uKipTOFxr+6F7nJ9VCVAh3FCdAfzanJjOJeOUxjntlo= + + + com.baidu.idl.face.live.action.image.bundle/4_22.png + + hash + + o0XtDD9k6Uiy+dzG0PQsgXiKPc4= + + hash2 + + D7KSRBggBpiv3w3iMGJZsoOARI1a1zsWs6CsrVzvuNE= + + + com.baidu.idl.face.live.action.image.bundle/4_23.png + + hash + + c5CCvRbxZnVljkpx5Sy+kpx2wE8= + + hash2 + + 5oFtgqRqsjPLPfKOoAaqVMiPt1kYecybo7aajyYb8Rk= + + + com.baidu.idl.face.live.action.image.bundle/4_24.png + + hash + + PlIWh6CGShG76sSQ+QfpIhPs2k4= + + hash2 + + AYfy6OPwIWDOEflOpka/OLYdmfQpvT9pgQsPDyJnSdE= + + + com.baidu.idl.face.live.action.image.bundle/4_25.png + + hash + + MPNjQ2fCDxT6EyOHXzH4xos6icE= + + hash2 + + 5Npjw4tyPDFLCOOL00rHhfHDowWJY1luccogNhv0vpc= + + + com.baidu.idl.face.live.action.image.bundle/4_26.png + + hash + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + hash2 + + fRB9zTrlz1FC8ER0Avf0iq26FyuxR/ogHvD97mE+jwU= + + + com.baidu.idl.face.live.action.image.bundle/4_27.png + + hash + + U0yUxmmMn+x3GFFGnLCC646L8KU= + + hash2 + + 465tlbX+BkPpgWx2c5S8rcSbu13RDMpUGStAmI5+jHM= + + + com.baidu.idl.face.live.action.image.bundle/4_28.png + + hash + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + hash2 + + fRB9zTrlz1FC8ER0Avf0iq26FyuxR/ogHvD97mE+jwU= + + + com.baidu.idl.face.live.action.image.bundle/4_29.png + + hash + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + hash2 + + fRB9zTrlz1FC8ER0Avf0iq26FyuxR/ogHvD97mE+jwU= + + + com.baidu.idl.face.live.action.image.bundle/4_30.png + + hash + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + hash2 + + fRB9zTrlz1FC8ER0Avf0iq26FyuxR/ogHvD97mE+jwU= + + + com.baidu.idl.face.live.action.image.bundle/4_31.png + + hash + + g1cvgvFJLYY3aiautjKbg5/1NW8= + + hash2 + + fRB9zTrlz1FC8ER0Avf0iq26FyuxR/ogHvD97mE+jwU= + + + com.baidu.idl.face.live.action.image.bundle/5_01.png + + hash + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + hash2 + + Kk6FKqYJPqL8RyxpIl6vN4F7aaMmaoVgdjBQxX1MPMM= + + + com.baidu.idl.face.live.action.image.bundle/5_02.png + + hash + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + hash2 + + Kk6FKqYJPqL8RyxpIl6vN4F7aaMmaoVgdjBQxX1MPMM= + + + com.baidu.idl.face.live.action.image.bundle/5_03.png + + hash + + 1dP1qmDv/JNWOM3/roXab1eWL9M= + + hash2 + + bQKFb8LH4eWOaarBd+MU7s2xPydDWnwaBselhtt2P8A= + + + com.baidu.idl.face.live.action.image.bundle/5_04.png + + hash + + VtTK6RmsCamDwWUTw9XzAn53s6U= + + hash2 + + cZL2Fdc/2BakFm/KhZXmTa9uJepPgRcsVUlytEoYG9Y= + + + com.baidu.idl.face.live.action.image.bundle/5_05.png + + hash + + J/jqvnyiAjL0lGuaDy6EjR+C68I= + + hash2 + + Rv5oU/pQSAMYBbdlRoQ++XB8QvKDfaT2CsgBuaSQ/VE= + + + com.baidu.idl.face.live.action.image.bundle/5_06.png + + hash + + puHtM0Mqv0XgVO6q9MEFZAytSKg= + + hash2 + + EnPXvYT3ejuUEG1N7FxoDUTR8Z7pRSxb7YIUJVh5NNw= + + + com.baidu.idl.face.live.action.image.bundle/5_07.png + + hash + + dgIcWiBlQo4k//bb5ctqaxWPANw= + + hash2 + + rsknENzCfD8oPNnkEjD25ErDcK0RCAM2l/px8knkm3w= + + + com.baidu.idl.face.live.action.image.bundle/5_08.png + + hash + + PEsxz2TLCMiVPt/kj0TwmYi/lZE= + + hash2 + + Z00M2b124867x1U7clb0f2Wwc/T4lJn24r3jd76AC18= + + + com.baidu.idl.face.live.action.image.bundle/5_09.png + + hash + + 5yVSK3Ww9t6mbI5BrfZpe7GMxd8= + + hash2 + + hSLhS76Mk6qOupWshjFMvc1W9ihyCskTBruyZdYQJL4= + + + com.baidu.idl.face.live.action.image.bundle/5_10.png + + hash + + k2pwMGca9hxGnu/FDE+vnfsTVew= + + hash2 + + RgSyThVSi/bNiM/7mEV/PBcCZfZ7LMe5+exrZpk8gCY= + + + com.baidu.idl.face.live.action.image.bundle/5_11.png + + hash + + M1WUjQBxBS7q05/rg2TXj7lvte8= + + hash2 + + 9rcm8GQfLBgGJZaKKQq83mCrN4cdF8JZE1J4zXT74a8= + + + com.baidu.idl.face.live.action.image.bundle/5_12.png + + hash + + +KtK6Nofw4gDnEEyzJYQjecik7Y= + + hash2 + + 8zx7JmrvpSIPrY7rNKiVagExfyokFuAY7GrgXHq951Y= + + + com.baidu.idl.face.live.action.image.bundle/5_13.png + + hash + + JWf0qqKizLBWrL44KBqeH4P+smg= + + hash2 + + MGCkZqE/wkdiUTfY0S8a8oQdVXDIxFvtBLc+0e4QSCw= + + + com.baidu.idl.face.live.action.image.bundle/5_14.png + + hash + + JWf0qqKizLBWrL44KBqeH4P+smg= + + hash2 + + MGCkZqE/wkdiUTfY0S8a8oQdVXDIxFvtBLc+0e4QSCw= + + + com.baidu.idl.face.live.action.image.bundle/5_15.png + + hash + + JWf0qqKizLBWrL44KBqeH4P+smg= + + hash2 + + MGCkZqE/wkdiUTfY0S8a8oQdVXDIxFvtBLc+0e4QSCw= + + + com.baidu.idl.face.live.action.image.bundle/5_16.png + + hash + + VGR60m2uwo79iyRviEUE0LWTDZ0= + + hash2 + + eOnbRY9iixJpE2QVwjQYOfz3aKQ0yil45Da3MmtZ1hE= + + + com.baidu.idl.face.live.action.image.bundle/5_17.png + + hash + + YDlanxmsf61T6e8sSFC0zxyhevs= + + hash2 + + kXPEvhtALC0vZWjW20NtC+SkIEPxt6cfdwhB+C+0HqI= + + + com.baidu.idl.face.live.action.image.bundle/5_18.png + + hash + + zu79CmargKX1cx6CPv6VLTdmEFk= + + hash2 + + cEzQvxp2fGZmQ5RJGZAMh8MUUmsE/C7qs+OmFbmWy9k= + + + com.baidu.idl.face.live.action.image.bundle/5_19.png + + hash + + fILkkulVJjEuZvSehi6caKEQmH0= + + hash2 + + RrhMqLoIsqTf51ES1x/30LgXv8VM+eqcLI6iCNGkQIk= + + + com.baidu.idl.face.live.action.image.bundle/5_20.png + + hash + + /2EV+ttSh/F2bjGUtjd9tCpIV/Q= + + hash2 + + 6ux2doe9s15I4c0ZBqAqhnjPSzWEPk/IxTho6aV8rtk= + + + com.baidu.idl.face.live.action.image.bundle/5_21.png + + hash + + kVSoMc4tKOW9IPioy3KXUXiSYk8= + + hash2 + + 3G5jv8VgQ0MJJBM1TF/k+u5ne0QuIgipWkdBJv5u/VQ= + + + com.baidu.idl.face.live.action.image.bundle/5_22.png + + hash + + GOHr0p8cj/AblwPep4+curlR86M= + + hash2 + + 7bTFpDaCmVzeWgnVy65bItNSVI/rZe3fOzWgA+Ai2JQ= + + + com.baidu.idl.face.live.action.image.bundle/5_23.png + + hash + + PknSaFLcbDeMzmAK7bCSHlrJH30= + + hash2 + + KixuDCNbUiGmVIG5wFDWe3Tn791ZCGMD2P8bxhCYPPo= + + + com.baidu.idl.face.live.action.image.bundle/5_24.png + + hash + + Dtie24F4IxeVAHp6yy4VAde6tbU= + + hash2 + + 7COM9pwGxTi9oySY8Lr7w+siYjsWo8GpyYG4t7T9cBc= + + + com.baidu.idl.face.live.action.image.bundle/5_25.png + + hash + + 1dP1qmDv/JNWOM3/roXab1eWL9M= + + hash2 + + bQKFb8LH4eWOaarBd+MU7s2xPydDWnwaBselhtt2P8A= + + + com.baidu.idl.face.live.action.image.bundle/5_26.png + + hash + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + hash2 + + Kk6FKqYJPqL8RyxpIl6vN4F7aaMmaoVgdjBQxX1MPMM= + + + com.baidu.idl.face.live.action.image.bundle/5_27.png + + hash + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + hash2 + + Kk6FKqYJPqL8RyxpIl6vN4F7aaMmaoVgdjBQxX1MPMM= + + + com.baidu.idl.face.live.action.image.bundle/5_28.png + + hash + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + hash2 + + Kk6FKqYJPqL8RyxpIl6vN4F7aaMmaoVgdjBQxX1MPMM= + + + com.baidu.idl.face.live.action.image.bundle/5_29.png + + hash + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + hash2 + + Kk6FKqYJPqL8RyxpIl6vN4F7aaMmaoVgdjBQxX1MPMM= + + + com.baidu.idl.face.live.action.image.bundle/5_30.png + + hash + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + hash2 + + Kk6FKqYJPqL8RyxpIl6vN4F7aaMmaoVgdjBQxX1MPMM= + + + com.baidu.idl.face.live.action.image.bundle/5_31.png + + hash + + NPmxYBLFOO1QRe2JUOJOFTa5KM8= + + hash2 + + Kk6FKqYJPqL8RyxpIl6vN4F7aaMmaoVgdjBQxX1MPMM= + + + com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice1.png + + hash + + 63eC/kOht+DeSnMUQoqzlaK3ceI= + + hash2 + + OBNhZ0XMG/r2KVA8xInw3FwRbG11E6WFIczRYa66dtU= + + + com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice2.png + + hash + + CMjWBYjbULJ6Cd9ui+Q9XdI1Uc8= + + hash2 + + EHUDhghhh3/hO24lGpKhkx2nPhRIOTUFUculOSpAlxo= + + + com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice_close.png + + hash + + CMaziQCYCMPXIP6zIqyRB7yMxU4= + + hash2 + + 0iEKeIee8i558sA1pHYjFM7wmxXyh7mwg5OYeyk/P2g= + + + com.baidu.idl.face.live.action.image.bundle/nav_back@2x.png + + hash + + 3r4vpvlybfQ9SBQRGHmP8SoY3u0= + + hash2 + + yLN52Ll+ujA6aYaTT3RMjFVZF+kWhxY4KNNmHqC8hVM= + + + com.baidu.idl.face.live.action.image.bundle/nav_back@3x.png + + hash + + XlVdXYAblylvrV2JMHnbRkRcuzQ= + + hash2 + + dhwR7AOHI5dSr7xL214vvymY1JOSPVpGDg8vCQaPTvM= + + + com.baidu.idl.face.model.faceSDK.bundle/align-customized-pa-offlineCapture_withScore_quant_20200909.model.int8.6.4.7.1 + + hash + + Ofe5NXkMOhX+IC4JR1AxhBnugvI= + + hash2 + + 9U76qE2axFlLt2u6pethY1jQMt573kDoel1oPY/POKI= + + + com.baidu.idl.face.model.faceSDK.bundle/blur-customized-pa-blurnet_9768.model.int8-3.0.9.1 + + hash + + LDLLS6h0cCIKdlolpg9TpMRMRoA= + + hash2 + + Shd3Z4HL1AF9E+5ugZ91rE1AET8Wg0fP+BMlqG4ttBk= + + + com.baidu.idl.face.model.faceSDK.bundle/detect_rgb-customized-pa-faceid4_0.model.int8.0.0.6.1 + + hash + + Eb9l8JMBe5XFexmoZSHbh66GKdw= + + hash2 + + IbhK1NXK70B6mpBjR86LvUt4hkpj/HDcBG+CeHD1Tr4= + + + com.baidu.idl.face.model.faceSDK.bundle/eyes-customized-pa-caiji.model.float32.1.0.3.1 + + hash + + 5QHS5LOtZ2udrCRkcZzKLZEDO98= + + hash2 + + Onxt/TXomQF91Cl1O1Jn6Sg5ucEvJ/rn91zKs0xSrB4= + + + com.baidu.idl.face.model.faceSDK.bundle/mouth-customized-pa-caiji.model.float32.1.0.3.1 + + hash + + frtruYCzAPpuVrzFRjsQDJ571+Q= + + hash2 + + 2FmIA7E7lSxMuhGE0OzbO+bE747hqtX+O1dVtFyUGKs= + + + com.baidu.idl.face.model.faceSDK.bundle/occlusion-customized-pa-occ.model.float32.2.0.6.1 + + hash + + QATOaYpO+dxFby2K6sAsuaJgkGc= + + hash2 + + 2u+5ctvOUCF6HF6dYHvLs85m8D5h5JrLH8Sz/hZRyfw= + + + idl-key.face-ios + + hash + + CSIcj5wd37ai6ZOD5te+ttAdD+I= + + hash2 + + AJ97gMnw7z7gUKBnnj18LL67p0OsW2P+RLZdE9flC90= + + + idl-license.face-ios + + hash + + vhqKtqXfL9qkLsMZ2a2rOIdOLnA= + + hash2 + + 5H2dVVItNidOXCxfJ25A8telPbsNZMMe19xBP/XtTyk= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Libs/GSYUniPlugin.framework/_CodeSignature/CodeSignature b/Libs/GSYUniPlugin.framework/_CodeSignature/CodeSignature new file mode 100644 index 0000000..0b587dd Binary files /dev/null and b/Libs/GSYUniPlugin.framework/_CodeSignature/CodeSignature differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/blink.mp3 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/blink.mp3 new file mode 100644 index 0000000..b85d071 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/blink.mp3 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/ding.mp3 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/ding.mp3 new file mode 100644 index 0000000..f26eed9 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/ding.mp3 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/head_down.mp3 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/head_down.mp3 new file mode 100644 index 0000000..642c230 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/head_down.mp3 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/head_up.mp3 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/head_up.mp3 new file mode 100644 index 0000000..6f32b93 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/head_up.mp3 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/head_yaw.mp3 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/head_yaw.mp3 new file mode 100644 index 0000000..790eae5 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/head_yaw.mp3 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/moveface.mp3 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/moveface.mp3 new file mode 100644 index 0000000..e1d1738 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/moveface.mp3 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/open_mouth.mp3 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/open_mouth.mp3 new file mode 100644 index 0000000..147b087 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/open_mouth.mp3 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/turn_left.mp3 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/turn_left.mp3 new file mode 100644 index 0000000..713edbc Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/turn_left.mp3 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/turn_right.mp3 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/turn_right.mp3 new file mode 100644 index 0000000..790afff Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.faceSDK.bundle/turn_right.mp3 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_01.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_01.png new file mode 100644 index 0000000..28c1a86 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_01.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_02.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_02.png new file mode 100644 index 0000000..4e17b8b Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_02.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_03.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_03.png new file mode 100644 index 0000000..fe1de42 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_03.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_04.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_04.png new file mode 100644 index 0000000..275a22f Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_04.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_05.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_05.png new file mode 100644 index 0000000..1b790e1 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_05.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_06.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_06.png new file mode 100644 index 0000000..03a3499 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_06.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_07.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_07.png new file mode 100644 index 0000000..5a2392f Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_07.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_08.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_08.png new file mode 100644 index 0000000..315f4d9 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_08.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_09.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_09.png new file mode 100644 index 0000000..405652e Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_09.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_10.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_10.png new file mode 100644 index 0000000..8b9e999 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_10.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_11.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_11.png new file mode 100644 index 0000000..54d65bf Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_11.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_12.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_12.png new file mode 100644 index 0000000..c3660c0 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_12.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_13.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_13.png new file mode 100644 index 0000000..844d59b Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_13.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_14.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_14.png new file mode 100644 index 0000000..41ce5b7 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_14.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_15.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_15.png new file mode 100644 index 0000000..3a9445d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_15.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_16.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_16.png new file mode 100644 index 0000000..1e38069 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_16.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_17.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_17.png new file mode 100644 index 0000000..28c1a86 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_17.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_18.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_18.png new file mode 100644 index 0000000..28c1a86 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_18.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_19.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_19.png new file mode 100644 index 0000000..28c1a86 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/0_19.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_01.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_01.png new file mode 100644 index 0000000..b5427d0 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_01.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_02.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_02.png new file mode 100644 index 0000000..b454a5b Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_02.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_03.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_03.png new file mode 100644 index 0000000..bc6b270 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_03.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_04.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_04.png new file mode 100644 index 0000000..05f2988 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_04.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_05.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_05.png new file mode 100644 index 0000000..c08fa4c Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_05.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_06.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_06.png new file mode 100644 index 0000000..e72dc04 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_06.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_07.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_07.png new file mode 100644 index 0000000..be0d72e Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_07.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_08.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_08.png new file mode 100644 index 0000000..59ff492 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_08.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_09.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_09.png new file mode 100644 index 0000000..720e0c4 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_09.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_10.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_10.png new file mode 100644 index 0000000..9c6cba9 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_10.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_11.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_11.png new file mode 100644 index 0000000..b8c49d0 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_11.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_12.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_12.png new file mode 100644 index 0000000..044ad92 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_12.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_13.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_13.png new file mode 100644 index 0000000..0d6053a Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_13.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_14.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_14.png new file mode 100644 index 0000000..034588b Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_14.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_15.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_15.png new file mode 100644 index 0000000..4b4ecfa Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_15.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_16.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_16.png new file mode 100644 index 0000000..7b2422d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_16.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_17.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_17.png new file mode 100644 index 0000000..5e7c00d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_17.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_18.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_18.png new file mode 100644 index 0000000..0db7985 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_18.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_19.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_19.png new file mode 100644 index 0000000..4a04b69 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_19.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_20.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_20.png new file mode 100644 index 0000000..9fb68dd Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_20.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_21.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_21.png new file mode 100644 index 0000000..b5427d0 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_21.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_22.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_22.png new file mode 100644 index 0000000..b5427d0 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_22.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_23.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_23.png new file mode 100644 index 0000000..b5427d0 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/1_23.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_01.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_01.png new file mode 100644 index 0000000..6b0bdde Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_01.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_02.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_02.png new file mode 100644 index 0000000..6b0bdde Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_02.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_03.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_03.png new file mode 100644 index 0000000..6b0bdde Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_03.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_04.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_04.png new file mode 100644 index 0000000..e8773c6 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_04.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_05.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_05.png new file mode 100644 index 0000000..66d7873 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_05.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_06.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_06.png new file mode 100644 index 0000000..8df2bf3 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_06.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_07.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_07.png new file mode 100644 index 0000000..1810b16 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_07.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_08.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_08.png new file mode 100644 index 0000000..022d4df Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_08.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_09.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_09.png new file mode 100644 index 0000000..2b801ca Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_09.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_10.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_10.png new file mode 100644 index 0000000..6aca1d7 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_10.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_11.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_11.png new file mode 100644 index 0000000..9c25269 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_11.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_12.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_12.png new file mode 100644 index 0000000..51150af Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_12.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_13.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_13.png new file mode 100644 index 0000000..69812b6 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_13.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_14.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_14.png new file mode 100644 index 0000000..d1e2601 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_14.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_15.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_15.png new file mode 100644 index 0000000..d1e2601 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_15.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_16.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_16.png new file mode 100644 index 0000000..d1e2601 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_16.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_17.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_17.png new file mode 100644 index 0000000..eb0ea04 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_17.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_18.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_18.png new file mode 100644 index 0000000..2550091 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_18.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_19.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_19.png new file mode 100644 index 0000000..2f4f1a5 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_19.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_20.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_20.png new file mode 100644 index 0000000..c248cf4 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_20.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_21.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_21.png new file mode 100644 index 0000000..d05f52e Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_21.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_22.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_22.png new file mode 100644 index 0000000..9cbaf33 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_22.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_23.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_23.png new file mode 100644 index 0000000..2471f02 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_23.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_24.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_24.png new file mode 100644 index 0000000..277784d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_24.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_25.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_25.png new file mode 100644 index 0000000..29c0f61 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_25.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_26.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_26.png new file mode 100644 index 0000000..4ab9164 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_26.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_27.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_27.png new file mode 100644 index 0000000..ed75389 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_27.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_28.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_28.png new file mode 100644 index 0000000..ed75389 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_28.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_29.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_29.png new file mode 100644 index 0000000..ed75389 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_29.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_30.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_30.png new file mode 100644 index 0000000..ed75389 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_30.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_31.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_31.png new file mode 100644 index 0000000..ed75389 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/2_31.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_01.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_01.png new file mode 100644 index 0000000..5e11e89 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_01.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_02.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_02.png new file mode 100644 index 0000000..48b80bc Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_02.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_03.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_03.png new file mode 100644 index 0000000..b843d2b Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_03.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_04.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_04.png new file mode 100644 index 0000000..16330e8 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_04.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_05.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_05.png new file mode 100644 index 0000000..a0e6bc5 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_05.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_06.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_06.png new file mode 100644 index 0000000..c09d675 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_06.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_07.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_07.png new file mode 100644 index 0000000..d8c4af4 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_07.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_08.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_08.png new file mode 100644 index 0000000..ab1e22c Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_08.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_09.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_09.png new file mode 100644 index 0000000..4134905 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_09.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_10.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_10.png new file mode 100644 index 0000000..9be669d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_10.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_11.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_11.png new file mode 100644 index 0000000..f271a59 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_11.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_12.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_12.png new file mode 100644 index 0000000..0e53ed1 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_12.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_13.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_13.png new file mode 100644 index 0000000..8811579 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_13.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_14.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_14.png new file mode 100644 index 0000000..8811579 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_14.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_15.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_15.png new file mode 100644 index 0000000..8811579 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_15.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_16.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_16.png new file mode 100644 index 0000000..2372d7f Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_16.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_17.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_17.png new file mode 100644 index 0000000..bac5180 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_17.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_18.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_18.png new file mode 100644 index 0000000..968dd64 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_18.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_19.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_19.png new file mode 100644 index 0000000..8a29485 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_19.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_20.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_20.png new file mode 100644 index 0000000..11ea06b Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_20.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_21.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_21.png new file mode 100644 index 0000000..ea5120d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_21.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_22.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_22.png new file mode 100644 index 0000000..7d013b5 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_22.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_23.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_23.png new file mode 100644 index 0000000..6fca9c2 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_23.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_24.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_24.png new file mode 100644 index 0000000..1972495 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_24.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_25.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_25.png new file mode 100644 index 0000000..1bd8475 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_25.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_26.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_26.png new file mode 100644 index 0000000..5e11e89 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_26.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_27.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_27.png new file mode 100644 index 0000000..5e11e89 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_27.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_28.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_28.png new file mode 100644 index 0000000..5e11e89 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_28.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_29.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_29.png new file mode 100644 index 0000000..5e11e89 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_29.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_30.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_30.png new file mode 100644 index 0000000..5e11e89 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_30.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_31.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_31.png new file mode 100644 index 0000000..5e11e89 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/3_31.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_01.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_01.png new file mode 100644 index 0000000..7186b4c Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_01.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_02.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_02.png new file mode 100644 index 0000000..3247e8e Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_02.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_03.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_03.png new file mode 100644 index 0000000..658a00e Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_03.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_04.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_04.png new file mode 100644 index 0000000..6fe007d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_04.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_05.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_05.png new file mode 100644 index 0000000..9f43f8d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_05.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_06.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_06.png new file mode 100644 index 0000000..6e58f0f Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_06.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_07.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_07.png new file mode 100644 index 0000000..c61e924 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_07.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_08.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_08.png new file mode 100644 index 0000000..271ed48 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_08.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_09.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_09.png new file mode 100644 index 0000000..f514e11 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_09.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_10.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_10.png new file mode 100644 index 0000000..7218f44 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_10.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_11.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_11.png new file mode 100644 index 0000000..bc6b583 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_11.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_12.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_12.png new file mode 100644 index 0000000..e7edaa8 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_12.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_13.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_13.png new file mode 100644 index 0000000..660517f Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_13.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_14.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_14.png new file mode 100644 index 0000000..660517f Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_14.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_15.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_15.png new file mode 100644 index 0000000..6e7306f Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_15.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_16.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_16.png new file mode 100644 index 0000000..8bdb8de Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_16.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_17.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_17.png new file mode 100644 index 0000000..cedd813 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_17.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_18.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_18.png new file mode 100644 index 0000000..fc4cb62 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_18.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_19.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_19.png new file mode 100644 index 0000000..c64e091 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_19.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_20.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_20.png new file mode 100644 index 0000000..ad5d580 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_20.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_21.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_21.png new file mode 100644 index 0000000..d89c423 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_21.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_22.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_22.png new file mode 100644 index 0000000..2a387d4 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_22.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_23.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_23.png new file mode 100644 index 0000000..33d44a2 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_23.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_24.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_24.png new file mode 100644 index 0000000..c2374fc Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_24.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_25.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_25.png new file mode 100644 index 0000000..e448f34 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_25.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_26.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_26.png new file mode 100644 index 0000000..7186b4c Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_26.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_27.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_27.png new file mode 100644 index 0000000..3052060 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_27.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_28.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_28.png new file mode 100644 index 0000000..7186b4c Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_28.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_29.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_29.png new file mode 100644 index 0000000..7186b4c Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_29.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_30.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_30.png new file mode 100644 index 0000000..7186b4c Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_30.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_31.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_31.png new file mode 100644 index 0000000..7186b4c Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/4_31.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_01.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_01.png new file mode 100644 index 0000000..54041ca Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_01.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_02.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_02.png new file mode 100644 index 0000000..54041ca Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_02.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_03.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_03.png new file mode 100644 index 0000000..9e99c0d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_03.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_04.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_04.png new file mode 100644 index 0000000..5621426 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_04.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_05.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_05.png new file mode 100644 index 0000000..cb74dd3 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_05.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_06.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_06.png new file mode 100644 index 0000000..56eb712 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_06.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_07.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_07.png new file mode 100644 index 0000000..c94986d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_07.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_08.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_08.png new file mode 100644 index 0000000..76fae08 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_08.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_09.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_09.png new file mode 100644 index 0000000..efbc42a Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_09.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_10.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_10.png new file mode 100644 index 0000000..97fb81a Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_10.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_11.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_11.png new file mode 100644 index 0000000..9e7ee01 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_11.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_12.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_12.png new file mode 100644 index 0000000..eb520b8 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_12.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_13.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_13.png new file mode 100644 index 0000000..56bebe8 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_13.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_14.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_14.png new file mode 100644 index 0000000..56bebe8 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_14.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_15.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_15.png new file mode 100644 index 0000000..56bebe8 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_15.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_16.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_16.png new file mode 100644 index 0000000..af4861c Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_16.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_17.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_17.png new file mode 100644 index 0000000..425e16e Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_17.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_18.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_18.png new file mode 100644 index 0000000..ac27350 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_18.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_19.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_19.png new file mode 100644 index 0000000..84107b0 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_19.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_20.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_20.png new file mode 100644 index 0000000..40e806f Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_20.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_21.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_21.png new file mode 100644 index 0000000..3d46cac Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_21.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_22.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_22.png new file mode 100644 index 0000000..444f1b5 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_22.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_23.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_23.png new file mode 100644 index 0000000..ee7faa3 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_23.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_24.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_24.png new file mode 100644 index 0000000..ab3d770 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_24.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_25.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_25.png new file mode 100644 index 0000000..9e99c0d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_25.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_26.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_26.png new file mode 100644 index 0000000..54041ca Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_26.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_27.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_27.png new file mode 100644 index 0000000..54041ca Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_27.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_28.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_28.png new file mode 100644 index 0000000..54041ca Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_28.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_29.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_29.png new file mode 100644 index 0000000..54041ca Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_29.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_30.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_30.png new file mode 100644 index 0000000..54041ca Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_30.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_31.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_31.png new file mode 100644 index 0000000..54041ca Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/5_31.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice1.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice1.png new file mode 100644 index 0000000..1cdaa69 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice1.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice2.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice2.png new file mode 100644 index 0000000..c3864a2 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice2.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice_close.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice_close.png new file mode 100644 index 0000000..a9b9bb6 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/icon_titlebar_voice_close.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/nav_back@2x.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/nav_back@2x.png new file mode 100644 index 0000000..c6d2bd9 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/nav_back@2x.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/nav_back@3x.png b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/nav_back@3x.png new file mode 100644 index 0000000..9d4cccd Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.live.action.image.bundle/nav_back@3x.png differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/align-customized-pa-offlineCapture_withScore_quant_20200909.model.int8.6.4.7.1 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/align-customized-pa-offlineCapture_withScore_quant_20200909.model.int8.6.4.7.1 new file mode 100644 index 0000000..95c587d Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/align-customized-pa-offlineCapture_withScore_quant_20200909.model.int8.6.4.7.1 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/blur-customized-pa-blurnet_9768.model.int8-3.0.9.1 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/blur-customized-pa-blurnet_9768.model.int8-3.0.9.1 new file mode 100644 index 0000000..1d557b2 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/blur-customized-pa-blurnet_9768.model.int8-3.0.9.1 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/detect_rgb-customized-pa-faceid4_0.model.int8.0.0.6.1 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/detect_rgb-customized-pa-faceid4_0.model.int8.0.0.6.1 new file mode 100644 index 0000000..ae3c485 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/detect_rgb-customized-pa-faceid4_0.model.int8.0.0.6.1 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/eyes-customized-pa-caiji.model.float32.1.0.3.1 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/eyes-customized-pa-caiji.model.float32.1.0.3.1 new file mode 100644 index 0000000..28c7f92 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/eyes-customized-pa-caiji.model.float32.1.0.3.1 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/mouth-customized-pa-caiji.model.float32.1.0.3.1 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/mouth-customized-pa-caiji.model.float32.1.0.3.1 new file mode 100644 index 0000000..40d925f Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/mouth-customized-pa-caiji.model.float32.1.0.3.1 differ diff --git a/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/occlusion-customized-pa-occ.model.float32.2.0.6.1 b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/occlusion-customized-pa-occ.model.float32.2.0.6.1 new file mode 100644 index 0000000..a8a6c3f Binary files /dev/null and b/Libs/GSYUniPlugin.framework/com.baidu.idl.face.model.faceSDK.bundle/occlusion-customized-pa-occ.model.float32.2.0.6.1 differ diff --git a/Libs/GSYUniPlugin.framework/idl-key.face-ios b/Libs/GSYUniPlugin.framework/idl-key.face-ios new file mode 100644 index 0000000..8a9fdc8 Binary files /dev/null and b/Libs/GSYUniPlugin.framework/idl-key.face-ios differ diff --git a/Libs/GSYUniPlugin.framework/idl-license.face-ios b/Libs/GSYUniPlugin.framework/idl-license.face-ios new file mode 100644 index 0000000..90c223c --- /dev/null +++ b/Libs/GSYUniPlugin.framework/idl-license.face-ios @@ -0,0 +1,2 @@ +7C3BE56CDAC63D5A9CED891B4AE917B3FBC286EF02D330E554DE791F9FF06AAFC94CCD7E94F9BE288BF4089948B316790889E0D9DE8CC1571A8BD59A066EFDBB0C60470FC5F30EF15F3BEA567A0BCD829765838EA4A5948F8697F07FB24F6E267851DCB63B131A79905A647EE2220E031A7FB8AA8ADA62169DDFA784298D9C17F249889CBBB5293CA22F802FFAC15D63F5136458460635E2EB3089448208A5F5D1A9A2D389A78A6950963704429D7F596118F990ACAD4A4C3498A61EA389B6D67301570A22DFB9935D6A0FA0BABEF366D089BA776AFDE7ED8659219921C9C7E9136D8083EC12FEE2D20F7CAD3E3098F3886F983A382178057F857E66729973A3 +8472D4AB81C42568B2E69F4A986411417079E2FC21642A622FC068EAA1B3FE494A5FA2BE549629A53A5567259F632F179E547E25D872058DD2CAFB7141C9B602846669AFD8F7F70B422E1A98906CF10B5DF1BEBAC5B2B4FDF176F772CDEE20F94D1889709FC708A1998B42EFAD9E1832DCE533F95A7C36BF923F90E6CE96EF6DFBB51418C072D2AFB3BFC9851A1199C37F26506B953B2D4E635AA3F42F688336EE6BD72831598E5CB7B0957D05CC92F463CDAC22EA52D3602BCF65F6AD65D6E459BD84CF90B1522A0DA6DE97F05651CA03A8DFAE76DFA424BC405F83C19FAEDFA7764FD1DDDFD25DFE29F9FD827DB4C21B3C0388587DFA647F34195A415B3738 diff --git a/Libs/IDLFaceSDK.framework/Headers/BDFaceQualityUtil.h b/Libs/IDLFaceSDK.framework/Headers/BDFaceQualityUtil.h new file mode 100644 index 0000000..d2009ce --- /dev/null +++ b/Libs/IDLFaceSDK.framework/Headers/BDFaceQualityUtil.h @@ -0,0 +1,15 @@ +// +// QualityUtil.h +// IDLFaceSDK +// +// Created by Tong,Shasha on 2017/5/24. +// Copyright © 2017年 Baidu. All rights reserved. +// + +#import +#import + +@interface BDFaceQualityUtil : NSObject ++ (CGRect)getFaceRect:(NSArray *) trackingPoints withCount:(NSUInteger) count; + +@end diff --git a/Libs/IDLFaceSDK.framework/Headers/BDFaceUtil.h b/Libs/IDLFaceSDK.framework/Headers/BDFaceUtil.h new file mode 100644 index 0000000..84cb2e4 --- /dev/null +++ b/Libs/IDLFaceSDK.framework/Headers/BDFaceUtil.h @@ -0,0 +1,22 @@ +// +// Util.h +// IDLFaceSDK +// +// Created by Tong,Shasha on 2017/5/24. +// Copyright © 2017年 Baidu. All rights reserved. +// + +#import +#import +#import + +#define FACESDK_BUNDLE_Name @"com.baidu.idl.face.faceSDK.bundle" +#define FACESDK_BUNDLE [[NSBundle alloc] initWithPath:[[NSBundle mainBundle] pathForResource:FACESDK_BUNDLE_Name ofType:nil]] + +@interface BDFaceUtil : NSObject + ++ (CGRect)convertRectFrom:(CGRect)imageRect image:(UIImage *)image previewRect:(CGRect)previewRect; + ++ (NSString *)iphoneType; + +@end diff --git a/Libs/IDLFaceSDK.framework/Headers/FaceSDKManager.h b/Libs/IDLFaceSDK.framework/Headers/FaceSDKManager.h new file mode 100644 index 0000000..5be79ae --- /dev/null +++ b/Libs/IDLFaceSDK.framework/Headers/FaceSDKManager.h @@ -0,0 +1,441 @@ +// +// FaceSDKManager.h +// IDLFaceSDK +// +// Created by Tong,Shasha on 2017/5/15. +// Copyright © 2017年 Baidu. All rights reserved. +// + +#import +#import + + +typedef NS_ENUM(NSInteger, FaceLivenessActionType) { + FaceLivenessActionTypeLiveEye = 0, + FaceLivenessActionTypeLiveMouth = 1, + FaceLivenessActionTypeLiveYawRight = 2, + FaceLivenessActionTypeLiveYawLeft = 3, + FaceLivenessActionTypeLivePitchUp = 4, + FaceLivenessActionTypeLivePitchDown = 5, + FaceLivenessActionTypeLiveYaw = 6, + FaceLivenessActionTypeNoAction = 7, +}; + +typedef NS_ENUM(NSUInteger, ResultCode) { + ResultCodeOK, + ResultCodePitchOutofDownRange, //头部偏低 + ResultCodePitchOutofUpRange, //头部偏高 + ResultCodeYawOutofLeftRange, //头部偏左 + ResultCodeYawOutofRightRange, //头部偏右 + ResultCodeTooBrightIllumination, // 光线过亮 + ResultCodePoorIllumination, //光照不足 + ResultCodeNoFaceDetected, //没有检测到人脸 + ResultCodeDataNotReady, + ResultCodeDataHitOne, //采集到一张照片 + ResultCodeDataHitLast, //采集到最后一张照片 + ResultCodeImageBlured, //图像模糊 + ResultCodeOcclusionLeftEye, //左眼有遮挡 + ResultCodeOcclusionRightEye, //右眼有遮挡 + ResultCodeOcclusionNose, //鼻子有遮挡 + ResultCodeOcclusionMouth, //嘴巴有遮挡 + ResultCodeOcclusionLeftContour, //左脸颊有遮挡 + ResultCodeOcclusionRightContour, //右脸颊有遮挡 + ResultCodeOcclusionChinCoutour, //下颚有遮挡 + ResultCodeVerifyInitError, //鉴权失败 + ResultCodeVerifyDecryptError, + ResultCodeVerifyInfoFormatError, + ResultCodeVerifyExpired, + ResultCodeVerifyMissRequiredInfo, + ResultCodeVerifyInfoCheckError, + ResultCodeVerifyLocalFileError, + ResultCodeVerifyRemoteDataError, + ResultCodeLeftEyeClosed, + ResultCodeRightEyeClosed, + ResultCodeUnknowType //未知类型 +}; + + +typedef NS_ENUM(NSUInteger, TrackResultCode) { + TrackResultCodeOK, + TrackResultCodeImageBlured, // 图像模糊 + TrackResultCodePoorIllumination, // 光照不行 + TrackResultCodeNoFaceDetected, //没有检测到人脸 + TrackResultCodeOcclusionLeftEye, //左眼有遮挡 + TrackResultCodeOcclusionRightEye, //右眼有遮挡 + TrackResultCodeOcclusionNose, //鼻子有遮挡 + TrackResultCodeOcclusionMouth, //嘴巴有遮挡 + TrackResultCodeOcclusionLeftContour, //左脸颊有遮挡 + TrackResultCodeOcclusionRightContour, //右脸颊有遮挡 + TrackResultCodeOcclusionChinCoutour, //下颚有遮挡 + TrackResultCodeVerifyInitError, //鉴权失败 + TrackResultCodeVerifyDecryptError, + TrackResultCodeVerifyInfoFormatError, + TrackResultCodeVerifyExpired, + TrackResultCodeVerifyMissRequiredInfo, + TrackResultCodeVerifyInfoCheckError, + TrackResultCodeVerifyLocalFileError, + TrackResultCodeVerifyRemoteDataError, + TrackResultCodeUnknowType //未知类型 +}; + + +@class FaceInfo; +@class FaceLivenessState; +@class FaceCropImageInfo; + +@interface FaceSDKManager : NSObject +/* 超时时间 */ +@property (nonatomic, assign) CGFloat conditionTimeout; +/* 语音超时*/ +@property (nonatomic, assign) CGFloat intervalOfVoiceRemind; +/* 输出图像个数 */ +@property (nonatomic, assign) int imageNum; +/* 图像加密类型,默认0 */ +@property (nonatomic, assign) int imageEncrypteType; +/* 图像加密类型,默认0 */ +@property (nonatomic, assign) float minRectScale; +/* 图片计数器,用来计当前图片的数量*/ +@property (nonatomic, assign) int currentNum; + ++ (instancetype)sharedInstance; + +/** + * 获取版本号 + */ +- (NSString *)getVersion; + +/** + * 重置计数器 + */ +- (void)reset; + +/** + * 获取设备zid 公安验证上传 + */ +- (NSString *)getZtoken; + +/** + * SDK鉴权方法-文件授权 + * SDK鉴权方法 必须在使用其他方法之前设置,否则会导致SDK不可用 + * + * @param licenseID 授权ID + * @param licensePath 本地鉴权文件路径 + * @param remoteAuthorize 是否远程更新过期鉴权文件 + */ +- (void)setLicenseID:(NSString *)licenseID andLocalLicenceFile:(NSString *)licensePath andRemoteAuthorize:(BOOL)remoteAuthorize; + +/** + * 初始化采集功能 + */ +- (int) initCollect; + +/** + * 卸载采集功能 + */ +- (int)uninitCollect; + +/** + * 判断授权是否通过,true 表示通过,false 表示不通过 + */ +- (BOOL)canWork; + +/** + * 设置预测库耗能模式 + * 默认 LITE_POWER_NO_BIND + */ +- (void)setLitePower:(int)litePower; + +/** + * 需要检测的最大人脸数目 + * 默认1 + */ +- (void)setMaxDetectNum:(int)detectNum ; + +/** + * 需要检测的最小人脸大小 + * 默认40 + */ +- (void)setMinFaceSize:(int)width; + +/** + * 人脸置信度阈值(检测分值大于该阈值认为是人脸 + * RGB + * 默认 0.5f + */ +- (void)setNotFaceThreshold:(CGFloat)thr ; + +/** + * 质量检测遮挡阈值 + * 默认0.5 + */ +- (void)setOccluThreshold:(CGFloat)thr ; + +/** + * 质量检测遮挡阈值-左眼遮挡置信度 + * 默认0.31 + */ +-(void)setOccluLeftEyeThreshold:(CGFloat)thr ; + +/** + * 质量检测遮挡阈值- 右眼遮挡置信度 + * 默认0.31 + */ +-(void)setOccluRightEyeThreshold:(CGFloat)thr ; + +/** + * 质量检测遮挡阈值-鼻子遮挡置信度 + * 默认0.27 + */ +-(void)setOccluNoseThreshold:(CGFloat)thr ; + +/** + * 质量检测遮挡阈值-嘴巴遮挡置信度 + * 默认0.2 + */ +-(void)setOccluMouthThreshold:(CGFloat)thr ; + +/** + * 质量检测遮挡阈值-左脸遮挡置信度 + * 默认0.48 + */ +-(void)setOccluLeftCheekThreshold:(CGFloat)thr ; + +/** + * 质量检测遮挡阈值-右脸遮挡置信度 + * 默认0.48 + */ +-(void)setOccluRightCheekThreshold:(CGFloat)thr ; + +/** + * 质量检测遮挡阈值-下巴遮挡置信度 + * 默认0.4 + */ +-(void)setOccluChinThreshold:(CGFloat)thr ; + + +/** + * 最大光照阈值 + */ +- (void)setMaxIllumThreshold:(CGFloat)thr; + +/** + * 最小光照阈值 + */ +- (void)setMinIllumThreshold:(CGFloat)thr ; + +/** + * 质量检测模糊阈值 + * 默认0.5 + */ +- (void)setBlurThreshold:(CGFloat)thr ; + +/** + * 姿态检测阈值 + * 默认pitch=12,yaw=12,row=10 + */ +- (void)setEulurAngleThrPitch:(float)pitch yaw:(float)yaw roll:(float)roll ; + +/** + * 输出图像个数 + * 默认3 + */ +- (void)setMaxCropImageNum:(int)imageNum ; + +/** + * 输出图像宽,设置为有效值(大于0)则对图像进行缩放,否则输出原图抠图结果 + * 默认 480 + */ +- (void)setCropFaceSizeWidth:(CGFloat)width ; + +/** + * 输出图像高,设置为有效值(大于0)则对图像进行缩放,否则输出原图抠图结果 + * 默认 680 + */ +- (void)setCropFaceSizeHeight:(CGFloat)height ; + +/** + * 输出图像,下巴扩展,大于等于0,0:不进行扩展 + * 默认0.1 + */ +- (void)setCropChinExtend:(CGFloat)chinExtend ; + +/** + * 输出图像,额头扩展,大于等于0,0:不进行扩展 + * 默认0.2 + */ +- (void)setCropForeheadExtend:(CGFloat)foreheadExtend ; + +/** + * 输出图像,人脸框与背景比例,大于等于1,1:不进行扩展 + * 默认1.5f + */ +- (void)setCropEnlargeRatio:(float)cropEnlargeRatio; + +/** + * 动作超时配置 + */ +- (void)setConditionTimeout:(CGFloat)timeout ; + +/** + * 语音间隔提醒配置 + */ +- (void)setIntervalOfVoiceRemind:(CGFloat)timeout; + +/** + * 是否开启静默活体,默认false + */ +// - (void)setIsCheckSilentLive:(BOOL)isCheck; + +/** + * 静默活体阈值配置,默认0.8。 + * 大于阈值返回图片,低于阈值返回未检测到人脸 + */ +// - (void)setSilentLiveThreshold:(CGFloat)thr ; + +/** + * 设置原始图片缩放比例,默认1不缩放,scale 阈值0~1 + */ +- (void)setImageWithScale:(CGFloat)scale; + +/** + * 设置图片加密类型,type=0 基于base64 加密;type=1 基于百度安全算法加密 + */ +- (void)setImageEncrypteWithType:(int) type; + +/** + * 人脸过远框比例 默认:0.4 + */ +- (void)setMinRect:(float) minRectScale; +/** + * 采集动作验证 + * @param image 检测的图片 + * @param isOriginal 是否返回原始图片 + * @param completion 判断采集是否完成,人脸信息状态是否正常 + */ +- (void)detectWithImage:(UIImage *)image isRreturnOriginalValue:(BOOL) isOriginal completion:(void (^)(FaceInfo *faceinfo, ResultCode resultCode))completion; + +/** + * 动作活体动作验证 + * @param image 检测的图片 + * @param actionLiveType 当前要求做的动作 + * @param completion 判断当前动作是否完成,人脸信息状态是否正常 + */ +- (void)livenessWithImage:(UIImage *)image withAction:(FaceLivenessActionType)actionLiveType completion:(void (^)(FaceInfo *faceinfo, FaceLivenessState *state, ResultCode resultCode))completion; + +@end + +@interface FaceLivenessState : NSObject +/** + * 动作活体-眨眨眼 + */ +@property(nonatomic, assign) BOOL isLiveEye; +/** + * 动作活体-张张嘴 + */ +@property(nonatomic, assign) BOOL isLiveMouth; +/** + * 动作活体-向左转头 + */ +@property(nonatomic, assign) BOOL isLiveYawLeft; +/** + * 动作活体-向右转头 + */ +@property(nonatomic, assign) BOOL isLiveYawRight; +/** + * 动作活体-抬头 + */ +@property(nonatomic, assign) BOOL isLivePitchUp; +/** + * 动作活体-低头 + */ +@property(nonatomic, assign) BOOL isLivePitchDown; +@end + +@interface FaceCropImageInfo : NSObject +/** + * 基于质量检测,姿态角度,对图片得分 + */ +@property (nonatomic, assign) float qualityScore; +/** + * 离线RGB 静默活体得分 + */ +@property (nonatomic,assign) float silentliveScore; +/** + * 采集到的矫正,调整宽高图片,会有宽高 + */ +@property (nonatomic ,strong) UIImage *cropImageWithBlack; +/** + * 加密采集到的矫正,调整宽高图片,会有宽高 + */ +@property (nonatomic ,strong) NSString *cropImageWithBlackEncryptStr; +/** + * 原始图片 + */ +@property (nonatomic ,strong) UIImage *originalImage; +/** + * 加密原始图片 + */ +@property (nonatomic ,strong) NSString *originalImageEncryptStr; +/** + * 排序规则 + */ +- (NSComparisonResult)compareWithImageInfo:(FaceCropImageInfo *)info; +@end + +@interface FaceInfo : NSObject +/** + * 人脸在图片中的位置 + */ +@property (nonatomic, assign) CGRect faceRect; +/** + * 人脸track 中的faceid + */ +@property (nonatomic, assign) NSInteger faceId; +/** + * 人脸72关键点 + */ +@property (nonatomic, strong) NSArray * landMarks; +/** + * 人脸角度 + */ +@property (nonatomic, assign) float angle; +/** + * 人脸质量-光照置信度,通过quality 方法调用获取 + */ +@property (nonatomic,assign) float illum; + +/** + * 人脸质量-模糊置信度,通过quality 方法调用获取 + */ +@property (nonatomic,assign) float blur; +/** + * 人脸上下偏转角,通过headpose 方法调用获取 + */ +@property (nonatomic, assign) float pitch; + +/** + * 人脸左右偏转角,通过headpose 方法调用获取 + */ +@property (nonatomic, assign) float yaw; + +/** + * 人脸平行平面内的头部旋转角,通过headpose 方法调用获取 + */ +@property (nonatomic, assign) float roll; + +/** + * 离线RGB 静默活体得分 + */ +@property (nonatomic,assign) float silentliveScore; + +/** + * 人脸检测得分 + */ +@property (nonatomic, assign) CGFloat score; + +/** + * 输出图片结构体,包含图片质量分数,裁剪没有黑边的图片,裁剪有黑边的图片,未裁剪图片,原始图 + */ +@property (nonatomic, strong) FaceCropImageInfo * cropImageInfo; + +@end diff --git a/Libs/IDLFaceSDK.framework/Headers/IDLFaceDetectionManager.h b/Libs/IDLFaceSDK.framework/Headers/IDLFaceDetectionManager.h new file mode 100644 index 0000000..cbb0f56 --- /dev/null +++ b/Libs/IDLFaceSDK.framework/Headers/IDLFaceDetectionManager.h @@ -0,0 +1,93 @@ +// +// IDLFaceDetectionManager.h +// IDLFaceSDK +// +// Created by Tong,Shasha on 2017/5/18. +// Copyright © 2017年 Baidu. All rights reserved. +// + +#import +#import +#import + +@class FaceInfo; + +#define TIME_THRESHOLD_FOR_ANOTHER_SESSION 2.0 + +typedef NS_ENUM(NSUInteger, DetectRemindCode) { + DetectRemindCodeOK = 0, //成功 + DetectRemindCodeBeyondPreviewFrame, //出框 + DetectRemindCodeNoFaceDetected, //没有检测到人脸 + DetectRemindCodeMuchIllumination, + DetectRemindCodePoorIllumination, //光照不足 + DetectRemindCodeImageBlured, //图像模糊 + DetectRemindCodeTooFar, //太远 + DetectRemindCodeTooClose, //太近 + DetectRemindCodePitchOutofDownRange, //头部偏低 + DetectRemindCodePitchOutofUpRange, //头部偏高 + DetectRemindCodeYawOutofLeftRange, //头部偏左 + DetectRemindCodeYawOutofRightRange, //头部偏右 + DetectRemindCodeOcclusionLeftEye, //左眼有遮挡 + DetectRemindCodeOcclusionRightEye, //右眼有遮挡 + DetectRemindCodeOcclusionNose, //鼻子有遮挡 + DetectRemindCodeOcclusionMouth, //嘴巴有遮挡 + DetectRemindCodeOcclusionLeftContour, //左脸颊有遮挡 + DetectRemindCodeOcclusionRightContour, //右脸颊有遮挡 + DetectRemindCodeOcclusionChinCoutour, //下颚有遮挡 + DetectRemindCodeTimeout, //超时 + DetectRemindCodeVerifyInitError, //鉴权失败 +// DetectRemindCodeVerifyDecryptError, +// DetectRemindCodeVerifyInfoFormatError, +// DetectRemindCodeVerifyExpired, +// DetectRemindCodeVerifyMissRequiredInfo, +// DetectRemindCodeVerifyInfoCheckError, +// DetectRemindCodeVerifyLocalFileError, +// DetectRemindCodeVerifyRemoteDataError, +// DetectRemindCodeDataHitLast + DetectRemindCodeConditionMeet, + DetectRemindCodeDataHitOne +}; + +typedef NS_ENUM(NSUInteger, TrackDetectRemindCode) { + TrackDetectRemindCodeOK = 0, //成功 + TrackDetectRemindCodeImageBlured, //图像模糊 + TrackDetectRemindCodePoorIllumination, // 光照不足 + TrackDetectRemindCodeNoFaceDetected, //没有检测到人脸 + TrackDetectRemindCodeOcclusionLeftEye, //左眼有遮挡 + TrackDetectRemindCodeOcclusionRightEye, //右眼有遮挡 + TrackDetectRemindCodeOcclusionNose, //鼻子有遮挡 + TrackDetectRemindCodeOcclusionMouth, //嘴巴有遮挡 + TrackDetectRemindCodeOcclusionLeftContour, //左脸颊有遮挡 + TrackDetectRemindCodeOcclusionRightContour, //右脸颊有遮挡 + TrackDetectRemindCodeOcclusionChinCoutour, //下颚有遮挡 + TrackDetectRemindCodeTooClose, //太近 + TrackDetectRemindCodeTooFar, //太远 + TrackDetectRemindCodeBeyondPreviewFrame //出框 + +}; + +typedef void (^DetectStrategyCompletion) (FaceInfo * faceinfo,NSDictionary * images, DetectRemindCode remindCode); + +//typedef void (^TrackDetectStrategyCompletion) (NSArray * faceArray, TrackDetectRemindCode remindCode); + +@interface IDLFaceDetectionManager : NSObject + +@property (nonatomic, assign) BOOL enableSound; + ++ (instancetype)sharedInstance; + +/** + * 人脸采集,成功之后返回扣图图片,原始图片 + * @param image 镜头拿到的图片 + * @param detectRect 预览的Rect + * @param previewRect 检测的Rect + * return completion 回调信息 + */ +- (void)detectStratrgyWithNormalImage:(UIImage *)image previewRect:(CGRect)previewRect detectRect:(CGRect)detectRect completionHandler:(DetectStrategyCompletion)completion; + + +- (void)reset; + +-(void)startInitial; + +@end diff --git a/Libs/IDLFaceSDK.framework/Headers/IDLFaceLivenessManager.h b/Libs/IDLFaceSDK.framework/Headers/IDLFaceLivenessManager.h new file mode 100644 index 0000000..800a2bf --- /dev/null +++ b/Libs/IDLFaceSDK.framework/Headers/IDLFaceLivenessManager.h @@ -0,0 +1,114 @@ +// +// IDLFaceLivenessManager.h +// IDLFaceSDK +// +// Created by Tong,Shasha on 2017/5/18. +// Copyright © 2017年 Baidu. All rights reserved. +// + +#import +#import +#import +@class FaceInfo; +@class FaceLivenessState; + +#define TIME_THRESHOLD_FOR_ANOTHER_SESSION 2.0 + +typedef NS_ENUM(NSInteger, LivenessActionType) { + LivenessActionTypeLiveEye = 0, + LivenessActionTypeLiveMouth = 1, + LivenessActionTypeLiveYawRight = 2, + LivenessActionTypeLiveYawLeft = 3, + LivenessActionTypeLivePitchUp = 4, + LivenessActionTypeLivePitchDown = 5, + LivenessActionTypeLiveYaw = 6, + LivenessActionTypeNoAction = 7, +}; + +typedef NS_ENUM(NSUInteger, LivenessRemindCode) { + LivenessRemindCodeOK = 0, //成功 + LivenessRemindCodeBeyondPreviewFrame, //出框 + LivenessRemindCodeNoFaceDetected, //没有检测到人脸 + LivenessRemindCodeMuchIllumination, + LivenessRemindCodePoorIllumination, //光照不足 + LivenessRemindCodeImageBlured, //图像模糊 + LivenessRemindCodeTooFar, //太远 + LivenessRemindCodeTooClose, //太近 + LivenessRemindCodePitchOutofDownRange, //头部偏低 + LivenessRemindCodePitchOutofUpRange, //头部偏高 + LivenessRemindCodeYawOutofLeftRange, //头部偏左 + LivenessRemindCodeYawOutofRightRange, //头部偏右 + LivenessRemindCodeOcclusionLeftEye, //左眼有遮挡 + LivenessRemindCodeOcclusionRightEye, //右眼有遮挡 + LivenessRemindCodeOcclusionNose, //鼻子有遮挡 + LivenessRemindCodeOcclusionMouth, //嘴巴有遮挡 + LivenessRemindCodeOcclusionLeftContour, //左脸颊有遮挡 + LivenessRemindCodeOcclusionRightContour, //右脸颊有遮挡 + LivenessRemindCodeOcclusionChinCoutour, //下颚有遮挡 + LivenessRemindCodeTimeout, //超时 + LivenessRemindCodeLiveEye, //眨眨眼 + LivenessRemindCodeLiveMouth, //张大嘴 + LivenessRemindCodeLiveYawLeft, //向右摇头 + LivenessRemindCodeLiveYawRight, //向左摇头 + LivenessRemindCodeLivePitchUp, //向上抬头 + LivenessRemindCodeLivePitchDown, //向下低头 + LivenessRemindCodeLiveYaw, //摇摇头 + LivenessRemindCodeSingleLivenessFinished, //完成一个活体动作 + LivenessRemindActionCodeTimeout, // 当前活体动作超时 + LivenessRemindCodeLeftEyeClosed, + LivenessRemindCodeRightEyeClosed, + LivenessRemindCodeVerifyInitError, //鉴权失败 +// LivenessRemindCodeVerifyDecryptError, +// LivenessRemindCodeVerifyInfoFormatError, +// LivenessRemindCodeVerifyExpired, +// LivenessRemindCodeVerifyMissRequiredInfo, +// LivenessRemindCodeVerifyInfoCheckError, +// LivenessRemindCodeVerifyLocalFileError, +// LivenessRemindCodeVerifyRemoteDataError, + LivenessRemindCodeConditionMeet, + LivenessRemindCodeFaceIdChanged, // faceid 发生变化 + LivenessRemindCodeDataHitOne +// LivenessRemindCodeDataHitLast, +}; + +typedef void (^LivenessStrategyCompletion) (NSDictionary * images, FaceInfo *faceInfo, LivenessRemindCode remindCode); +typedef void (^LivenessNormalCompletion) (NSDictionary * images, FaceInfo *faceInfo, LivenessRemindCode remindCode); + +/** + * 活体检测过程中,返回活体总数,当前成功个数,当前活体类型 + */ +typedef void (^LivenessProcess) (float numberOfLiveness, float numberOfSuccess, LivenessActionType currenActionType); + + +@interface IDLFaceLivenessManager : NSObject +@property (nonatomic, assign) BOOL enableSound; + ++ (instancetype)sharedInstance; + +/** + * 人脸活体验证,成功之后返回扣图图片,原始图片 + * @param image 镜头拿到的图片 + * @param detectRect 预览的Rect + * @param previewRect 检测的Rect + * return completion 回调信息 + */ +-(void) livenessNormalWithImage:(UIImage *)image previewRect:(CGRect)previewRect detectRect:(CGRect)detectRect completionHandler:(LivenessNormalCompletion)completion; + +/** + * 活体检测过程中,返回活体总数,当前成功个数,当前活体类型 + */ +-(void) livenessProcessHandler:(LivenessProcess) process; + +- (void)reset; + +-(void)startInitial; + +/** + * 返回无黑边的方法 + * @param array 活体动作数组 + * @param order 是否顺序执行 + * @param numberOfLiveness 活体动作个数 + */ +- (void)livenesswithList:(NSArray *)array order:(BOOL)order numberOfLiveness:(NSInteger)numberOfLiveness; + +@end diff --git a/Libs/IDLFaceSDK.framework/Headers/IDLFaceSDK.h b/Libs/IDLFaceSDK.framework/Headers/IDLFaceSDK.h new file mode 100644 index 0000000..55e24e6 --- /dev/null +++ b/Libs/IDLFaceSDK.framework/Headers/IDLFaceSDK.h @@ -0,0 +1,24 @@ +// +// IDLFaceSDK.h +// IDLFaceSDK +// +// Created by Tong,Shasha on 2017/5/15. +// Copyright © 2017年 Baidu. All rights reserved. +// + +#import + +//! Project version number for IDLFaceSDK. +FOUNDATION_EXPORT double IDLFaceSDKVersionNumber; + +//! Project version string for IDLFaceSDK. +FOUNDATION_EXPORT const unsigned char IDLFaceSDKVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + +#import "FaceSDKManager.h" +#import "IDLFaceLivenessManager.h" +#import "IDLFaceDetectionManager.h" +#import "BDFaceUtil.h" +#import "BDFaceQualityUtil.h" diff --git a/Libs/IDLFaceSDK.framework/IDLFaceSDK b/Libs/IDLFaceSDK.framework/IDLFaceSDK new file mode 100755 index 0000000..283a7d8 Binary files /dev/null and b/Libs/IDLFaceSDK.framework/IDLFaceSDK differ diff --git a/Libs/IDLFaceSDK.framework/Info.plist b/Libs/IDLFaceSDK.framework/Info.plist new file mode 100644 index 0000000..0a8ba6b Binary files /dev/null and b/Libs/IDLFaceSDK.framework/Info.plist differ diff --git a/Libs/IDLFaceSDK.framework/Modules/module.modulemap b/Libs/IDLFaceSDK.framework/Modules/module.modulemap new file mode 100644 index 0000000..2f68d13 --- /dev/null +++ b/Libs/IDLFaceSDK.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module IDLFaceSDK { + umbrella header "IDLFaceSDK.h" + + export * + module * { export * } +} diff --git a/Libs/IDLFaceSDK.framework/_CodeSignature/CodeResources b/Libs/IDLFaceSDK.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..83dfd62 --- /dev/null +++ b/Libs/IDLFaceSDK.framework/_CodeSignature/CodeResources @@ -0,0 +1,207 @@ + + + + + files + + Headers/BDFaceQualityUtil.h + + fcj/C6f2qlP6eZ5+RCJmWMtAPQ0= + + Headers/BDFaceUtil.h + + VECTCE+71SOsF5RLPGnwLx2SOQg= + + Headers/FaceSDKManager.h + + HtK3UhOfFgE7zgaseOG5WK5QEg4= + + Headers/IDLFaceDetectionManager.h + + 3FgLOS0NvbMFpGRtqvEJlav7MuI= + + Headers/IDLFaceLivenessManager.h + + VbXN+PK0Q7IfahU2MI0U5SaPHIQ= + + Headers/IDLFaceSDK.h + + 4jVunSoXEW6EIui6HmQGQ/B7GgU= + + Info.plist + + gB1gmw3UfXQHkHkeV5Y7sb7bpDA= + + Modules/module.modulemap + + uTVmiSBEgQ4Qw0TMMpcn7pr7ssU= + + + files2 + + Headers/BDFaceQualityUtil.h + + hash + + fcj/C6f2qlP6eZ5+RCJmWMtAPQ0= + + hash2 + + 4FebuT7rY9k2JVw4SLUakj7+ixAkjWnoHD+MaQDJSYo= + + + Headers/BDFaceUtil.h + + hash + + VECTCE+71SOsF5RLPGnwLx2SOQg= + + hash2 + + Hxb8esap8atN28mAw/uztk+/wyRFRJl5Kv7KIYs0naM= + + + Headers/FaceSDKManager.h + + hash + + HtK3UhOfFgE7zgaseOG5WK5QEg4= + + hash2 + + 9xcXJTgHFJL+bQRkxB+pP+i/R4m53mKGg3BtzOl0bvw= + + + Headers/IDLFaceDetectionManager.h + + hash + + 3FgLOS0NvbMFpGRtqvEJlav7MuI= + + hash2 + + 5kMvOke/ASfe/WAEL97lR3CVaA99NKplFzR7rU4+nvA= + + + Headers/IDLFaceLivenessManager.h + + hash + + VbXN+PK0Q7IfahU2MI0U5SaPHIQ= + + hash2 + + /Hk63uC19rBPuUOElYDIMMETOhhWGNf16+qpnjOWbBc= + + + Headers/IDLFaceSDK.h + + hash + + 4jVunSoXEW6EIui6HmQGQ/B7GgU= + + hash2 + + lgQ9lUWcrFfTCL6Di9EwgliVBVZwbncZINzCfW4idDE= + + + Modules/module.modulemap + + hash + + uTVmiSBEgQ4Qw0TMMpcn7pr7ssU= + + hash2 + + 2UWkZrJMmZYFFeU4C525GWZ73nY7N7bcJ+9yd1WwEos= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Libs/MOBFoundation.framework/Headers/IMOBBaseUser.h b/Libs/MOBFoundation.framework/Headers/IMOBBaseUser.h new file mode 100755 index 0000000..97e57e7 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/IMOBBaseUser.h @@ -0,0 +1,38 @@ +// +// IMOBBaseUser.h +// MOBFoundation +// +// Created by 冯鸿杰 on 2017/9/5. +// Copyright © 2017年 MOB. All rights reserved. +// + +#import +#import "IMOBFDataModel.h" + +/** + 基础用户信息 + */ +@protocol IMOBBaseUser + +/** + 获取用户ID + + @return 用户ID + */ +- (NSString *)uid; + +/** + 获取用户头像 + + @return 头像 + */ +- (NSString *)avatar; + +/** + 获取用户昵称 + + @return 昵称 + */ +- (NSString *)nickname; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/IMOBFDataModel.h b/Libs/MOBFoundation.framework/Headers/IMOBFDataModel.h new file mode 100755 index 0000000..23c8a38 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/IMOBFDataModel.h @@ -0,0 +1,88 @@ +// +// IJIMDataModel.h +// Jimu +// +// Created by 冯鸿杰 on 17/2/10. +// Copyright © 2017年 Mob. All rights reserved. +// + +#import + +/** + 数据模型协议 + */ +@protocol IMOBFDataModel + +@required + +/** + 初始化数据模型 + + @param dict 初始化数据 + @return 数据模型 + */ +- (instancetype)initWithDict:(NSDictionary *)dict; + +/** + 设置数据 + + @param data 数据 + @param key 名称 + */ +- (void)set:(id)data key:(NSString *)key; + +/** + 获取数据 + + @param key 名称 + */ +- (id)get:(NSString *)key; + +/** + 返回一个字典结构 + + @return 字段数据对象 + */ +- (NSDictionary *)dictionaryValue; + +/** + 返回字段映射字典 + + 说明:类如果实现此方法,并返回映射字典,在使用initWithDict初始化时,则会按照映射查找属性;key 为真正想要设定的、存在的属性 ,value为需要映射的字段 + + @return 字段映射字典 + */ ++ (NSDictionary *)propertyMappingDictionary; + +/** + 当类中有属性为数组,且数组元素同为MOBFDataModel时,应该置制定该属性属性及其元素类型 + 例如有 @property NSArray *array; + 应主动实现本方法,并返回 @{@"array" : @"OtherDataModel"} + + @return 映射配置 + */ ++ (NSDictionary *)elementTypeOfCollectionPropertyDictionary; + +/** + 当属性定义类型不支持从原始数据直接转换时触发此方法,该方法默认返回nil,表示不进行转换 + + @param rawData 原始数据 + @param targetType 目标类型 + @param propertyName 属性名称 + @return 目标类型对象 + */ ++ (id)unsupportTypeWithRawData:(id)rawData + targetType:(Class)targetType + propertyName:(NSString *)propertyName; + +/** + 当设置属性对象不支持转化为原始数据时触发此方法,默认返回nil,表示不进行转换 + + @param object 对象 + @param propertyName 属性名称 + @return 原始数据,仅包含NSDictionary、NSArray、NSString、NSNumber类型的返回。 + */ ++ (id)rawDataWithUnsupportTypeObject:(id)object + propertyName:(NSString *)propertyName; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/IMOBFPlugin.h b/Libs/MOBFoundation.framework/Headers/IMOBFPlugin.h new file mode 100755 index 0000000..81247f6 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/IMOBFPlugin.h @@ -0,0 +1,30 @@ +// +// IMOBFPlugin.h +// MOBFoundation +// +// Created by fenghj on 15/6/2. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * 插件协议 + */ +@protocol IMOBFPlugin + +@required + +/** + * 插件加载时调用 + * + * @param key 插件标识 + */ +- (void)load:(NSString *)key; + +/** + * 插件卸载时调用 + */ +- (void)unload; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFApplication.h b/Libs/MOBFoundation.framework/Headers/MOBFApplication.h new file mode 100755 index 0000000..58302a8 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFApplication.h @@ -0,0 +1,79 @@ +// +// MOBFApplicationUtils.h +// MOBFoundation +// +// Created by vimfung on 15-1-20. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * 应用工具类 + */ +@interface MOBFApplication : NSObject + +/** + * 获取应用名称 + * + * @return 应用名称 + */ ++ (NSString *)name; + +/** + * 获取应用包名 + * + * @return 包名 + */ ++ (NSString *)bundleId; + +/** + * 获取应用编译版本 + * + * @return 编译版本 + */ ++ (NSString *)buildVersion; + +/** + * 获取应用版本号 + * + * @return 应用版本号 + */ ++ (NSString *)shortVersion; + +/** + * 获取应用版本号 + * + * @return 版本号 + */ ++ (NSString *)version __deprecated_msg("use [buildVersion] method instead"); + +/** + * 检测是否启用ATS功能 + */ ++ (BOOL)enabledATS; + +/** + * 获取应用运行经过的时间(单位:毫秒) + * + * @return 经过时间 + */ ++ (uint64_t)elapsedTime; + +/** + * 判断链接是否能打开 + * + * @param url 链接 + * + * @return YES 可以打开,NO 不能打开 + */ ++ (BOOL)canOpenUrl:(NSURL *)url; + +/** + * 打开链接 + * + * @param url 链接 + */ ++ (void)openUrl:(NSURL *)url; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFColor.h b/Libs/MOBFoundation.framework/Headers/MOBFColor.h new file mode 100755 index 0000000..e334508 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFColor.h @@ -0,0 +1,35 @@ +// +// MOBFColorUtils.h +// MOBFoundation +// +// Created by vimfung on 15-1-19. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import +#import + +/** + * 颜色工具类 + */ +@interface MOBFColor : NSObject + +/** + * 获取颜色对象 + * + * @param rgb RGB颜色值 + * + * @return 颜色对象 + */ ++ (UIColor *)colorWithRGB:(NSUInteger)rgb; + +/** + * 获取颜色对象 + * + * @param argb ARGB颜色值 + * + * @return 颜色对象 + */ ++ (UIColor *)colorWithARGB:(NSUInteger)argb; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFData.h b/Libs/MOBFoundation.framework/Headers/MOBFData.h new file mode 100755 index 0000000..685440b --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFData.h @@ -0,0 +1,205 @@ +// +// MOBFDataUtils.h +// MOBFoundation +// +// Created by vimfung on 15-1-16. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import +#import +#import + +/** + * 数据工具类 + */ +@interface MOBFData : NSObject + +/** + 将一个NSData对象转换为NSString对象,处理由于结束符导致json解析错误问题 + + @param data 原始data + @return 处理后字符串 + */ ++ (NSString *)stringByData:(NSData *)data; + +/** + * 使用HMAC-SHA1进行加密 + * + * @param data 原始数据 + * @param key 密钥 + * + * @return 加密后数据 + */ ++ (NSData *)hmacSha1Data:(NSData *)data forKey:(NSData *)key; + +/** + 使用HMAC-MD5进行签名 + + @param data 原始数据 + @param key 密钥 + @return 加密后数据 + */ ++ (NSData *)hmacMd5Data:(NSData *)data forKey:(NSData *)key; + +/** + * 对数据进行MD5签名 + * + * @param data 原始数据 + * + * @return 签名后数据 + */ ++ (NSData *)md5Data:(NSData *)data; + +/** + * 对数据进行AES128加密 + * + * @param data 原始数据 + * @param key 密钥 + * @param encoding 字符串编码 + * + * @return 加密后数据 + */ ++ (NSData *)aes128EncryptData:(NSData *)data + key:(NSString *)key + encoding:(NSStringEncoding)encoding; + +/** + * 对数据进行AES128解密 + * + * @param data 原始数据 + * @param key 密钥 + * @param encoding 字符串编码 + * + * @return 解密后数据 + */ ++ (NSData *)aes128DecryptData:(NSData *)data + key:(NSString *)key + encoding:(NSStringEncoding)encoding; + +/** + * 对数据进行AES128加密 + * + * @param data 原始数据 + * @param key 密钥 + * @param options 选项 + * + * @return 加密后数据 + */ ++ (NSData *)aes128EncryptData:(NSData *)data + key:(NSData *)key + options:(CCOptions)options; + +/** + * 对数据进行AES128解密 + * + * @param data 原始数据 + * @param key 密钥 + * @param options 选项 + * + * @return 解密后数据 + */ ++ (NSData *)aes128DecryptData:(NSData *)data + key:(NSData *)key + options:(CCOptions)options; + +/** + * 使用GZip压缩数据 + * + * @param data 原始数据 + * + * @return 压缩后数据 + */ ++ (NSData *)compressDataUsingGZip:(NSData *)data; + +/** + * 使用GZip解压缩数据 + * + * @param data 原始数据 + * + * @return 解压缩后数据 + */ ++ (NSData *)uncompressDataUsingGZip:(NSData *)data; + +/** + * 对数据进行MD5签名 + * + * @param data 原始数据 + * + * @return 签名后字符串 + */ ++ (NSString *)stringByMD5Data:(NSData *)data; + +/** + * 使用BASE64编码数据 + * + * @param data 原始数据 + * + * @return 编码后字符串 + */ ++ (NSString *)stringByBase64EncodeData:(NSData *)data; + +/** + * 对数据进行CRC32校验 + * + * @param data 数据对象 + * + * @return 校验值 + */ ++ (uLong)valueByCRC32Data:(NSData *)data; + +/** + * 对数据进行CRC32检验 + * + * @param data 原始数据 + * + * @return 检验值 + */ ++ (NSString *)stringByCRC32Data:(NSData *)data; + +/** + * 将数据转换成16进制字符串 + * + * @param data 原始数据 + * + * @return 字符串 + */ ++ (NSString *)hexStringByData:(NSData *)data; + +/** + * 写入一个32位整数到数据对象中 + * + * @param value 整数值 + * @param data 数据对象 + */ ++ (void)writeInt32:(int32_t)value toData:(NSMutableData *)data; + +/** + * 写入一个16位整数到数据对象中 + * + * @param value 整数值 + * @param data 数据对象 + */ ++ (void)writeInt16:(int16_t)value toData:(NSMutableData *)data; + +/** + * 读取一个16位整数 + * + * @param data 数据对象 + * @param offset 偏移位置 + * + * @return 短整型数据 + */ ++ (int16_t)readInt16FromData:(NSData *)data offset:(NSInteger)offset; + +/** + * 读取一个32位整数 + * + * @param data 数据对象 + * @param offset 偏移位置 + * + * @return 整型数据 + */ ++ (int32_t)readInt32FromData:(NSData *)data offset:(NSInteger)offset; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFDataModel.h b/Libs/MOBFoundation.framework/Headers/MOBFDataModel.h new file mode 100755 index 0000000..83d8df5 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFDataModel.h @@ -0,0 +1,18 @@ +// +// MOBFDataModel.h +// MOBFoundation +// +// Created by 冯鸿杰 on 17/2/15. +// Copyright © 2017年 MOB. All rights reserved. +// + +#import +#import "IMOBFDataModel.h" + +/** + 数据模型 + */ +@interface MOBFDataModel : NSObject + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFDataService.h b/Libs/MOBFoundation.framework/Headers/MOBFDataService.h new file mode 100755 index 0000000..29164f7 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFDataService.h @@ -0,0 +1,100 @@ +// +// MOBFDataService.h +// MOBFoundation +// +// Created by vimfung on 15-1-21. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * 数据服务 + */ +@interface MOBFDataService : NSObject + +/** + * 获取数据服务共享实例对象 + * + * @return 数据服务对象 + */ ++ (MOBFDataService *)sharedInstance; + +/** + * 设置共享数据 + * + * @param data 数据 + * @param key 标识 + */ +- (void)setSharedData:(id)data forKey:(NSString *)key; + +/** + * 获取共享数据 + * + * @param key 标识 + * + * @return 数据 + */ +- (id)sharedDataForKey:(NSString *)key; + +/** + * 开始缓存数据事务 + * + * @param domain 数据域 + */ +- (void)beginCacheDataTransForDomain:(NSString *)domain; + +/** + * 结束缓存数据事务 + * + * @param domain 数据域 + */ +- (void)endCacheDataTransForDomain:(NSString *)domain; + +/** + * 设置缓存数据 + * + * @param data 数据 + * @param key 标识 + * @param domain 数据域 + */ +- (void)setCacheData:(id)data forKey:(NSString *)key domain:(NSString *)domain; + +/** + * 获取缓存数据 + * + * @param key 标识 + * @param domain 数据域 + * + * @return 数据 + */ +- (id)cacheDataForKey:(NSString *)key domain:(NSString *)domain; + +/** + * 开始安全数据事务 + */ +- (void)beginSecureDataTrans; + +/** + * 结束安全数据事务 + */ +- (void)endSecureDataTrans; + +/** + * 设置安全数据 + * + * @param data 数据 + * @param key 标识 + */ +- (void)setSecureData:(id)data forKey:(NSString *)key; + +/** + * 获取安全数据 + * + * @param key 标识 + * + * @return 数据 + */ +- (id)secureDataForKey:(NSString *)key; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFDate.h b/Libs/MOBFoundation.framework/Headers/MOBFDate.h new file mode 100755 index 0000000..963ca3c --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFDate.h @@ -0,0 +1,133 @@ +// +// MOBFDateUtils.h +// MOBFoundation +// +// Created by vimfung on 15-1-19. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * 时间工具类 + */ +@interface MOBFDate : NSObject + +/** + * 获取时间的年份 + * + * @param date 时间 + * + * @return 年份 + */ ++ (NSInteger)fullYearByDate:(NSDate *)date; + +/** + * 获取时间的月份 + * + * @param date 时间 + * + * @return 月份 + */ ++ (NSInteger)monthByDate:(NSDate *)date; + +/** + * 获取时间的日期 + * + * @param date 时间 + * + * @return 日期部分 + */ ++ (NSInteger)dayByDate:(NSDate *)date; + +/** + * 获取时间的小时部分 + * + * @param date 时间 + * + * @return 小时部分 + */ ++ (NSInteger)hourByDate:(NSDate *)date; + +/** + * 获取时间的分钟部分 + * + * @param date 时间 + * + * @return 分钟部分 + */ ++ (NSInteger)minuteByDate:(NSDate *)date; + +/** + * 获取时间的秒部分 + * + * @param date 时间 + * + * @return 秒部分 + */ ++ (NSInteger)secondByDate:(NSDate *)date; + +/** + * 将时间转换为指定格式字符串 + * + * @param date 时间 + * @param format 格式字符串 + * + * @return 转换后字符串 + */ ++ (NSString *)stringByDate:(NSDate *)date + withFormat:(NSString *)format; + +/** + * 将字符串转换为时间对象 + * + * @param format 格式字符串 + * @param dateString 日期时间字符串 + * + * @return 时间对象 + */ ++ (NSDate *)dateWithFormat:(NSString *)format + dateString:(NSString *)dateString; + +/** + * 将字符串转换为时间对象 + * + * @param format 格式字符串 + * @param dateString 日期时间字符串 + * @param locale 本地化参数 + * + * @return 时间对象 + */ ++ (NSDate *)dateWithFormat:(NSString *)format + dateString:(NSString *)dateString + locale:(NSLocale *)locale; + +/** + * 创建日期时间对象 + * + * @param year 年份 + * @param month 月份 + * @param date 日期 + * @param hour 小时 + * @param minute 分钟 + * @param second 秒 + * + * @return 日期时间对象 + */ ++ (NSDate *)dateWithYear:(NSInteger)year + month:(NSInteger)month + date:(NSInteger)date + hour:(NSInteger)hour + minute:(NSInteger)minute + second:(NSInteger)second; + + +/** + * 0点毫秒数 + + * + * @return 0点毫秒数 + */ ++ (NSTimeInterval)zeroTimeInterval; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFDebug.h b/Libs/MOBFoundation.framework/Headers/MOBFDebug.h new file mode 100755 index 0000000..f28c7ef --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFDebug.h @@ -0,0 +1,31 @@ +// +// MOBFDebug.h +// MOBFoundation +// +// Created by 冯 鸿杰 on 15/2/4. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * 调试工具类 + */ +@interface MOBFDebug : NSObject + +/** + * 输出调试日志 + * + * @param format 日志格式 + * @param ... 日志参数 + */ ++ (void)log:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2); + +/** + * 观察释放对象,指定类型的被释放对象会打印在Console中。 + * + * @param type 对象类型 + */ ++ (void)watchDeallocObjectWithType:(Class)type; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFDevice.h b/Libs/MOBFoundation.framework/Headers/MOBFDevice.h new file mode 100755 index 0000000..d03724b --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFDevice.h @@ -0,0 +1,246 @@ +// +// MOBFDeviceUtils.h +// MOBFoundation +// +// Created by vimfung on 15-1-19. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import +#import +#import + +extern NSString *kMOBFReachabilityChangedNotification; + +/** + * 网络类型 + */ +typedef NS_ENUM(NSUInteger, MOBFNetworkType) +{ + /** + * 无网咯 + */ + MOBFNetworkTypeNone = 0, + /** + * 蜂窝网络 + */ + MOBFNetworkTypeCellular = 2, + /** + * WIFI + */ + MOBFNetworkTypeWifi = 1, + /** + * 2G网络 + */ + MOBFNetworkTypeCellular2G = 3, + /** + * 3G网络 + */ + MOBFNetworkTypeCellular3G = 4, + /** + * 4G网络 + */ + MOBFNetworkTypeCellular4G = 5, + /** + * 5G网络 + */ + MOBFNetworkTypeCellular5G = 6, +}; + + +/** + IP版本 + + - MOBFIPVersion4: IPv4 + - MOBFIPVersion6: IPv6 + */ +typedef NS_ENUM(NSUInteger, MOBFIPVersion) +{ + MOBFIPVersion4 = 0, + MOBFIPVersion6 = 1, +}; + +/** + * 设备工具类 + */ +@interface MOBFDevice : NSObject + + +/** + * 获取单例的 CTTelephonyNetworkInfo + * + * @return CTTelephonyNetworkInfo + */ ++ (CTTelephonyNetworkInfo *)networkInfo; + +/** + * 获取网卡物理地址 + * + * @return 网卡物理地址 + */ ++ (NSString *)macAddress; + +/** + * 获取设备型号 + * + * @return 设备型号 + */ ++ (NSString *)deviceModel; + +/** + * 获取当前网络类型 + * + * @return 网络类型 + */ ++ (MOBFNetworkType)currentNetworkType; + +/** + * 获取当前网络类型字符串 + * + * @return 网络类型 + */ ++ (NSString *)currentNetworkTypeStr; + +/** + * 获取手机运营商代码 + * + * @return 手机运营商代码 + */ ++ (NSString *)carrier; + +/** + * 获取手机运营商名称 + * + * @return 运营商名称 + */ ++ (NSString *)carrierName; + +/** + * 获取手机运营商国家码 + * + * @return 运营商国家码 + */ ++ (NSString *)mobileCountryCode; + +/** + * 获取手机运营商网络编号 + * + * @return 运营商网络编号 + */ ++ (NSString *)mobileNetworkCode; + +/** + * 与当前系统版本比较 + * + * @param other 需要对比的版本 + * + * @return < 0 低于指定版本; = 0 跟指定版本相同;> 0 高于指定版本 + */ ++ (NSInteger)versionCompare:(NSString *)other; + +/** + * 判断是否已经越狱 + * + * @return YES 已经越狱,NO 尚未越狱 + */ ++ (BOOL)hasJailBroken; + +/** + * 获取运行进程信息 + * + * @return 进程信息列表 + */ ++ (NSArray *)runningProcesses; + +/** + * 判断当前设备是否为iPad + * + * @return YES 是,NO 否 + */ ++ (BOOL)isPad; + +/** + * 获取设备唯一标识 + * + * @return 标识码 + */ ++ (NSString *)duid; + +/** + * 获取屏幕真实尺寸 + * + * @return 屏幕尺寸 + */ ++ (CGSize)nativeScreenSize; + +/** + * 获取无线局域网的服务集标识(WIFI名称) + * + * @return 服务集标识 + */ ++ (NSString *)ssid; + +/** + * 获取基础服务集标识(站点的MAC地址) + * + * @return 基础服务集标识 + */ ++ (NSString *)bssid; + +/** + * 获取当前语言 + * + * @return 语言描述 + */ ++ (NSString *)currentLanguage; + +/** + * 获取设备IP地址 + * + * @return IP地址 + */ ++ (NSString *)ipAddress:(MOBFIPVersion)ver; + +/** + * 获取开发商ID + * + * @return 开发商ID + */ ++ (NSString *)idfv; + +/** + * 获取物理内存 + + @return 物理内存 + */ ++ (double)physicalMemory; + +/** + * 获取存储大小 + + @return 存储大小 + */ ++ (long long)diskSpace; + +/** + * cpu 类型 + * + * @return cpu 类型 + */ ++ (NSString *)cpuType; + +/** + * 获取无线局域网的强度 + * + * @return 强度 3: 强 ,2:中, 1:弱 ,无 + */ ++ (int)wifiLevel; + +/** + * 获取原始当前网络类型 + * + * @return 网络类型 + */ ++ (NSString *)currentDataNetworkType; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFHttpPostedFile.h b/Libs/MOBFoundation.framework/Headers/MOBFHttpPostedFile.h new file mode 100755 index 0000000..a27c273 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFHttpPostedFile.h @@ -0,0 +1,63 @@ +// +// MOBHttpPostedFile.h +// MOBFoundation +// +// Created by 冯 鸿杰 on 15/1/30. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * @brief HTTP上传文件 + */ +@interface MOBFHttpPostedFile : NSObject + +/** + * @brief 文件名称 + */ +@property (nonatomic, copy) NSString *fileName; + +/** + * @brief 内容类型 + */ +@property (nonatomic, copy) NSString *contentType; + +/** + * @brief 文件数据 + */ +@property (nonatomic, retain) NSData *fileData; + +/** + * @brief 内容传输编码 + */ +@property (nonatomic, copy) NSString *transferEncoding; + +/** + * @brief 创建上传文件 + * + * @param fileName 文件名称 + * @param data 文件数据 + * @param contentType 内容类型 + * @param transferEncoding 传输编码 + * + * @return 上传文件信息 + */ ++ (MOBFHttpPostedFile *)httpPostedFileByFileName:(NSString *)fileName + data:(NSData *)data + contentType:(NSString *)contentType + transferEncoding:(NSString *)transferEncoding; + +/** + * @brief 创建上传文件 + * + * @param path 文件路径 + * @param contentType 内容类型 + * + * @return 上传文件信息 + */ ++ (MOBFHttpPostedFile *)httpPostedFileByPath:(NSString *)path + contentType:(NSString *)contentType; + + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFHttpService.h b/Libs/MOBFoundation.framework/Headers/MOBFHttpService.h new file mode 100755 index 0000000..e43205d --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFHttpService.h @@ -0,0 +1,269 @@ +// +// MOBFHttpService.h +// MOBFoundation +// +// Created by vimfung on 15-1-20. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +@class MOBFHttpService; + +/** + * GET方式 + */ +extern NSString *const kMOBFHttpMethodGet; + +/** + * POST方式 + */ +extern NSString *const kMOBFHttpMethodPost; + +/** + * DELETE方式 + */ +extern NSString *const kMOBFHttpMethodDelete; + +/** + * HEAD方式 + */ +extern NSString *const kMOBFHttpMethodHead; + +/** + * HTTP返回事件 + * + * @param response 回复对象 + * @param responseData 回复数据 + */ +typedef void(^MOBFHttpResultEvent) (NSHTTPURLResponse *response, NSData *responseData); + +/** + * HTTP错误事件 + * + * @param error 错误信息 + */ +typedef void(^MOBFHttpFaultEvent) (NSError *error); + +/** + * HTTP上传数据事件 + * + * @param totalBytes 总字节数 + * @param loadedBytes 上传字节数据 + */ +typedef void(^MOBFHttpUploadProgressEvent) (int64_t totalBytes, int64_t loadedBytes); + +/** + * HTTP下载数据事件 + * + * @param totalBytes 总字节数 + * @param loadedBytes 上传字节数据 + */ +typedef void(^MOBFHttpDownloadProgressEvent) (int64_t totalBytes, int64_t loadedBytes); + +/** + * HTTP服务类 + */ +@interface MOBFHttpService : NSObject + +/** + * @brief 提交方式,默认为GET + */ +@property (nonatomic, copy) NSString *method; + +/** + 超时时间 + */ +@property (nonatomic) NSTimeInterval timeout; + +/** + * @brief 是否缓存回复对象,默认为YES + */ +@property (nonatomic) BOOL isCacheResponse; + +/** + * 自动填充请求表单,默认为YES,如果为NO则表示使用自定义的方式发起请求。 + */ +@property (nonatomic) BOOL autoFillRequestForm; + +/** + * 初始化HTTP服务 + * + * @param urlString URL地址字符串 + * + * @return HTTP服务对象 + */ +- (id)initWithURLString:(NSString *)urlString; + +/** + * 初始化HTTP服务 + * + * @param URL URL地址对象 + * + * @return HTTP服务对象 + */ +- (id)initWithURL:(NSURL *)URL; + +/** + * 初始化HTTP服务 + * + * @param request 请求对象 + * + * @return HTTP服务对象 + */ +- (id)initWithRequest:(NSURLRequest *)request; + +/** + * 添加HTTP头 + * + * @param header 名称 + * @param value 值 + */ +- (void)addHeader:(NSString *)header value:(NSString *)value; + +/** + * 添加HTTP头集合 + * + * @param headers 头集合 + */ +- (void)addHeaders:(NSDictionary *)headers; + +/** + * 添加参数 + * + * @param value 参数值 + * @param key 参数名字 + */ +- (void)addParameter:(id)value forKey:(NSString *)key; + +/** + * 添加多个参数 + * + * @param parameters 参数集合 + */ +- (void)addParameters:(NSDictionary *)parameters; + +/** + * 添加上传文件参数 + * + * @param fileData 文件数据 + * @param fileName 文件名称 + * @param mimeType MIME类型 + * @param transferEncoding 传输编码 + * @param key 参数名字 + */ +- (void)addFileParameter:(NSData *)fileData + fileName:(NSString *)fileName + mimeType:(NSString *)mimeType + transferEncoding:(NSString *)transferEncoding + forKey:(NSString *)key; + +/** + * 设置请求体数据,可以为NSData或者NSInputStream + * + * @param body 请求体数据 + */ +- (void)setBody:(id)body; + +/** + * 发送请求 + * + * @param resultHandler 返回回调 + * @param faultHandler 错误回调 + * @param uploadProgressHandler 上传数据进度回调 + */ +- (void)sendRequestOnResult:(MOBFHttpResultEvent)resultHandler + onFault:(MOBFHttpFaultEvent)faultHandler + onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler; + + +/** + 发送请求 + + @param resultHandler 返回回调 + @param faultHandler 错误回调 + @param uploadProgressHandler 上传数据进度回调 + @param downloadProgressHandler 下载数据进度回调 + */ +- (void)sendRequestOnResult:(MOBFHttpResultEvent)resultHandler + onFault:(MOBFHttpFaultEvent)faultHandler + onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler + onDownloadProgress:(MOBFHttpDownloadProgressEvent)downloadProgressHandler; + +/** + * 取消请求 + */ +- (void)cancelRequest; + +/** + * 发送HTTP请求 + * + * @param urlString 请求地址 + * @param method 请求方式 + * @param parameters 请求参数 + * @param headers 请求头集合 + * @param resultHandler 返回回调 + * @param faultHandler 错误回调 + * @param uploadProgressHandler 上传数据进度回调 + * + * @return HTTP服务对象 + */ ++ (MOBFHttpService *)sendHttpRequestByURLString:(NSString *)urlString + method:(NSString *)method + parameters:(NSDictionary *)parameters + headers:(NSDictionary *)headers + onResult:(MOBFHttpResultEvent)resultHandler + onFault:(MOBFHttpFaultEvent)faultHandler + onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler; + + +/** + * 发送HTTP请求 + * + * @param urlString 请求地址 + * @param method 请求方式 + * @param parameters 请求参数 + * @param headers 请求头集合 + * @param timeout 请求超时 + * @param resultHandler 返回回调 + * @param faultHandler 错误回调 + * @param uploadProgressHandler 上传数据进度回调 + * + * @return HTTP服务对象 + */ ++ (MOBFHttpService *)sendHttpRequestByURLString:(NSString *)urlString + method:(NSString *)method + parameters:(NSDictionary *)parameters + headers:(NSDictionary *)headers + timeout:(NSTimeInterval)timeout + onResult:(MOBFHttpResultEvent)resultHandler + onFault:(MOBFHttpFaultEvent)faultHandler + onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler; + +/** + * 发送HTTP请求 + * + * @param urlString 请求地址 + * @param method 请求方式 + * @param parameters 请求参数 + * @param headers 请求头集合 + * @param timeout 请求超时 + * @param resultHandler 返回回调 + * @param faultHandler 错误回调 + * @param uploadProgressHandler 上传数据进度回调 + * @param downloadProgressHandler 下载数据进度回调 + * + * @return HTTP服务对象 + */ ++ (MOBFHttpService *)sendHttpRequestByURLString:(NSString *)urlString + method:(NSString *)method + parameters:(NSDictionary *)parameters + headers:(NSDictionary *)headers + timeout:(NSTimeInterval)timeout + onResult:(MOBFHttpResultEvent)resultHandler + onFault:(MOBFHttpFaultEvent)faultHandler + onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler + onDownloadProgress:(MOBFHttpDownloadProgressEvent)downloadProgressHandler; + + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFImage.h b/Libs/MOBFoundation.framework/Headers/MOBFImage.h new file mode 100755 index 0000000..447bc58 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFImage.h @@ -0,0 +1,114 @@ +// +// MOBFImageUtils.h +// MOBFoundation +// +// Created by vimfung on 15-1-19. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import +#import + +/** + * 圆角类型 + */ +typedef NS_ENUM(NSUInteger, MOBFOvalType) +{ + /** + * 无圆角 + */ + MOBFOvalTypeNone = 0x00, + /** + * 左上角 + */ + MOBFOvalTypeLeftTop = 0x01, + /** + * 左下角 + */ + MOBFOvalTypeLeftBottom = 0x02, + /** + * 右上角 + */ + MOBFOvalTypeRightTop = 0x04, + /** + * 右下角 + */ + MOBFOvalTypeRightBottom = 0x08, + /** + * 全部 + */ + MOBFOvalTypeAll = MOBFOvalTypeLeftTop | MOBFOvalTypeLeftBottom | MOBFOvalTypeRightTop | MOBFOvalTypeRightBottom +}; + +/** + * 图像工具类 + */ +@interface MOBFImage : NSObject + +/** + * 裁剪图片 + * + * @param image 原始图片 + * @param rect 裁剪范围 + * + * @return 裁剪后图片 + */ ++ (UIImage *)clipImage:(UIImage *)image withRect:(CGRect)rect; + +/** + * 将图片边角裁剪为圆角 + * + * @param image 原始图片 + * @param size 图像尺寸 + * @param ovalWidth 圆角宽度 + * @param ovalHeight 圆角高度 + * @param ovalType 圆角类型 + * + * @return 裁剪后图像 + */ ++ (UIImage *)roundRectImage:(UIImage *)image + withSize:(CGSize)size + ovalWidth:(CGFloat)ovalWidth + ovalHeight:(CGFloat)ovalHeight + ovalType:(MOBFOvalType)ovalType; + +/** + * 等比缩放图片 + * + * @param image 原始图片 + * @param size 缩放的图片尺寸 + * + * @return 缩放后图片 + */ ++ (UIImage *)scaleImage:(UIImage *)image withSize:(CGSize)size; + +/** + * 获取图片对象 + * + * @param name 图片名称 + * @param bundle 资源包对象 + * + * @return 图片对象 + */ ++ (UIImage *)imageName:(NSString *)name bundle:(NSBundle *)bundle; + +/** + * 通过指定视图生成图片 + * + * @param view 视图对象 + * + * @return 图片对象 + */ ++ (UIImage *)imageByView:(UIView *)view; + +/** + * 通过制定视图生成图片 + * + * @param view 视图对象 + * @param opaque 是否为不透明图片,YES,不透明,NO,透明 + * + * @return 图片对象 + */ ++ (UIImage *)imageByView:(UIView *)view opaque:(BOOL)opaque; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFImageCachePolicy.h b/Libs/MOBFoundation.framework/Headers/MOBFImageCachePolicy.h new file mode 100755 index 0000000..4748985 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFImageCachePolicy.h @@ -0,0 +1,31 @@ +// +// MOBFImageCachePolicy.h +// MOBFoundation +// +// Created by 冯鸿杰 on 2017/4/12. +// Copyright © 2017年 MOB. All rights reserved. +// + +#import +#import "MOBFImageServiceTypeDef.h" + +@interface MOBFImageCachePolicy : NSObject + +/** + 缓存名称,用于对不同的图片缓存划分到不同的缓存路径中,如果名称相同则缓存位置相同。 + */ +@property (nonatomic, copy) NSString *cacheName; + +/** + 缓存处理回调,当有图片需要进行缓存时会先调用该方法 + */ +@property (nonatomic, strong) MOBFImageGetterCacheHandler cacheHandler; + +/** + 获取默认的缓存策略 + + @return 缓存策略 + */ ++ (instancetype)defaultCachePolicy; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFImageGetter.h b/Libs/MOBFoundation.framework/Headers/MOBFImageGetter.h new file mode 100755 index 0000000..1d1df44 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFImageGetter.h @@ -0,0 +1,113 @@ +// +// MOBFImageGetter.h +// MOBFoundation +// +// Created by fenghj on 16/1/21. +// Copyright © 2016年 MOB. All rights reserved. +// + +#import "MOBFImageObserver.h" +#import "MOBFImageServiceTypeDef.h" +#import + +@class MOBFImageCachePolicy; + +/** + * 图片获取器 + */ +@interface MOBFImageGetter : NSObject + +/** + * 获取共享图片服务实例 + * + * @return 图片服务实例 + */ ++ (instancetype _Nullable )sharedInstance; + +/** + 初始化图片服务实例 + + @param cachePolicy 缓存策略 + @return 图片服务实例 + */ +- (instancetype _Nullable )initWithCachePolicy:(MOBFImageCachePolicy *_Nullable)cachePolicy; + +/** + * 是否存在图片缓存 + * + * @param url 图片URL + * + * @return YES 表示图片已缓存,NO 图片未缓存 + */ +- (BOOL)existsImageCacheWithURL:(NSURL *_Nullable)url; + +/** + * 获取图片 + * + * @param url 图片路径 + * @param resultHandler 返回事件 + * + * @return 服务观察者 + */ +- (MOBFImageObserver *_Nonnull)getImageWithURL:(NSURL *_Nullable)url + result:(MOBFImageGetterResultHandler _Nullable )resultHandler; + + +/** + * 获取图片 + * + * @param url 图片路径 + * @param allowReadCache 是否允许读取缓存 + * @param resultHandler 返回事件 + * + * @return 服务观察者 + */ +- (MOBFImageObserver *_Nullable)getImageWithURL:(NSURL * _Nullable)url + allowReadCache:(BOOL)allowReadCache + result:(MOBFImageGetterResultHandler _Nullable )resultHandler; + +/** + 获取图片数据 + + @param url 图片路径 + @param resultHandler 返回事件 + + @return 服务观察者 + */ +- (MOBFImageObserver *_Nullable)getImageDataWithURL:(NSURL * _Nullable)url + result:(MOBFImageDataGetterResultHandler _Nullable)resultHandler; + +/** + 获取图片数据 + + @param url 图片路径 + @param allowReadCache 是否允许读取缓存 + @param resultHandler 返回事件 + + @return 服务观察者 + */ +- (MOBFImageObserver *_Nullable)getImageDataWithURL:(NSURL * _Nullable)url + allowReadCache:(BOOL)allowReadCache + result:(MOBFImageDataGetterResultHandler _Nullable)resultHandler; + +/** + * 移除图片观察者 + * + * @param imageObserver 图片观察者 + */ +- (void)removeImageObserver:(MOBFImageObserver * _Nullable)imageObserver; + +/** + * 删除磁盘中缓存中图片 + * + * @param url 图片地址 + */ +- (void)removeImageForURL:(nullable NSURL *)url; + +/** + * 删除当前缓存策略下磁盘目录中所有图片 + * + */ +- (void)clearDisk; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFImageObserver.h b/Libs/MOBFoundation.framework/Headers/MOBFImageObserver.h new file mode 100755 index 0000000..36460f5 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFImageObserver.h @@ -0,0 +1,21 @@ +// +// MOBFImageObserver.h +// MOBFoundation +// +// Created by fenghj on 16/1/21. +// Copyright © 2016年 MOB. All rights reserved. +// + +#import + +/** + * 图片观察者 + */ +@interface MOBFImageObserver : NSObject + +/** + * 图片链接 + */ +@property (nonatomic, strong, readonly) NSURL *url; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFImageServiceTypeDef.h b/Libs/MOBFoundation.framework/Headers/MOBFImageServiceTypeDef.h new file mode 100755 index 0000000..21b2775 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFImageServiceTypeDef.h @@ -0,0 +1,38 @@ +// +// MOBFImageServiceTypeDef.h +// MOBFoundation +// +// Created by fenghj on 15/6/8. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#ifndef MOBFoundation_MOBFImageServiceTypeDef_h +#define MOBFoundation_MOBFImageServiceTypeDef_h + +#import + + +/** + 图片缓存处理 + + @param imageData 图片的数据 + */ +typedef NSData* (^MOBFImageGetterCacheHandler)(NSData *imageData); + +/** + * 图片加载返回 + * + * @param image 图片对象 + * @param error 错误信息 + */ +typedef void (^MOBFImageGetterResultHandler)(UIImage *image, NSError *error); + +/** + * 图片加载返回 + * + * @param imageData 图片数据 + * @param error 错误信息 + */ +typedef void (^MOBFImageDataGetterResultHandler)(NSData *imageData, NSError *error); + +#endif diff --git a/Libs/MOBFoundation.framework/Headers/MOBFJSContext.h b/Libs/MOBFoundation.framework/Headers/MOBFJSContext.h new file mode 100755 index 0000000..eb62317 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFJSContext.h @@ -0,0 +1,76 @@ +// +// MOBFJSContext.h +// MOBFoundation +// +// Created by 冯 鸿杰 on 15/2/27. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import +#import "MOBFJSTypeDefine.h" + +@class JSContext; + +/** + * JavaScript上下文环境 + */ +@interface MOBFJSContext : NSObject + +/** + * 获取默认的上下文环境 + * + * @return JS上下文环境 + */ ++ (instancetype)defaultContext; + + +/** + 初始化 + + @param context JS上下文 + @return JS上下文 + */ +- (instancetype)initWithContext:(JSContext *)context; + +/** + * 注册方法 + * + * @param name 方法名称 + * @param block 方法执行 + */ +- (void)registerJSMethod:(NSString *)name block:(MOBFJSMethodIMP)block; + +/** + * 调用方法 + * + * @param name 方法名称 + * @param arguments 参数 + * + * @return 返回值 + */ +- (NSString *)callJSMethod:(NSString *)name arguments:(NSArray *)arguments; + +/** + * 加载插件 + * + * @param path 插件脚本文件路径 + * @param name 插件名称 + */ +- (void)loadPluginWithPath:(NSString *)path forName:(NSString *)name; + +/** + * 加载插件 + * + * @param content 插件脚本内容 + * @param name 插件名称 + */ +- (void)loadPlugin:(NSString *)content forName:(NSString *)name; + +/** + * 执行脚本 + * + * @param script 脚本 + */ +- (void)runScript:(NSString *)script; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFJSMethod.h b/Libs/MOBFoundation.framework/Headers/MOBFJSMethod.h new file mode 100755 index 0000000..4eb94c5 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFJSMethod.h @@ -0,0 +1,37 @@ +// +// MOBFJSMethod.h +// MOBFoundation +// +// Created by 冯 鸿杰 on 15/2/27. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import +#import "MOBFJSTypeDefine.h" + +/** + * JS方法 + */ +@interface MOBFJSMethod : NSObject + +/** + * 方法名称 + */ +@property (nonatomic, copy, readonly) NSString *name; + +/** + * 方法实现 + */ +@property (nonatomic, strong, readonly) MOBFJSMethodIMP imp; + +/** + * 初始化方法 + * + * @param name 方法名称 + * @param imp 方法实现 + * + * @return 方法对象 + */ +- (id)initWithName:(NSString *)name imp:(MOBFJSMethodIMP)imp; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFJSTypeDefine.h b/Libs/MOBFoundation.framework/Headers/MOBFJSTypeDefine.h new file mode 100755 index 0000000..2020045 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFJSTypeDefine.h @@ -0,0 +1,19 @@ +// +// MOBFJSTypeDefine.h +// MOBFoundation +// +// Created by 冯 鸿杰 on 15/2/27. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#ifndef MOBFoundation_MOBFJSTypeDefine_h +#define MOBFoundation_MOBFJSTypeDefine_h + +/** + * JS方法实现 + * + * @param arguments 传入参数 + */ +typedef void(^MOBFJSMethodIMP) (NSArray *arguments); + +#endif diff --git a/Libs/MOBFoundation.framework/Headers/MOBFJson.h b/Libs/MOBFoundation.framework/Headers/MOBFJson.h new file mode 100755 index 0000000..3d6eca7 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFJson.h @@ -0,0 +1,72 @@ +// +// MOBFJson.h +// MOBFoundation +// +// Created by vimfung on 15-1-20. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * JSON工具类 + */ +@interface MOBFJson : NSObject + +/** + * 通过JSON字符串反序列化为对象 + * + * @param jsonString JSON字符串 + * + * @return 对象 + */ ++ (id)objectFromJSONString:(NSString *)jsonString; + +/** + * 通过JSON数据反序列化为对象 + * + * @param jsonData JSON数据 + * + * @return 对象 + */ ++ (id)objectFromJSONData:(NSData *)jsonData; + +/** + * 通过对象序列化为JSON字符串 + * + * @param object 对象 + * + * @return JSON字符串 + */ ++ (NSString *)jsonStringFromObject:(id)object; + +/** + * 通过对象序列化为JSON字符串 + * + * @param object 对象 + * @param block 未解析类型回调 + * + * @return JSON字符串 + */ ++ (NSString *)jsonStringFromObject:(id)object serializeUnsupportedClassesUsingBlock:(id(^)(id object))block; + +/** + * 通过对象序列化为JSON数据 + * + * @param object 对象 + * + * @return JSON数据 + */ ++ (NSData *)jsonDataFromObject:(id)object; + +/** + * 通过对象序列化为JSON数据 + * + * @param object 对象 + * @param block 未解析类型回调 + * + * @return JSON数据 + */ ++ (NSData *)jsonDataFromObject:(id)object serializeUnsupportedClassesUsingBlock:(id(^)(id object))block; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFLogService.h b/Libs/MOBFoundation.framework/Headers/MOBFLogService.h new file mode 100755 index 0000000..281fdd8 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFLogService.h @@ -0,0 +1,110 @@ +// +// MOBFLogService.h +// MOBFoundation +// +// Created by 冯鸿杰 on 17/2/16. +// Copyright © 2017年 MOB. All rights reserved. +// + +#import + +@class MOBFLogService; + + +/** + 日志服务协议 + */ +@protocol MOBFLogServiceDelegate + + +/** + 是否需要发送日志 + + @param logService 日志服务 + @param logs 已有日志信息集合 + @return YES 表示需要发送日志,NO 表示不需要发送日志 + */ +- (BOOL)logService:(MOBFLogService *)logService + needsSendLogs:(NSArray *)logs; + +/** + 发送日志 + + @param logService 日志服务 + @param logs 需要发送的日志信息集合 + @param result 发送完成回调,成功时传入YES,否则传入NO + */ +- (void)logService:(MOBFLogService *)logService + didSendLogs:(NSArray *)logs + result:(void (^)(BOOL succeed, NSArray *sentLogs))result; + +@end + +/** + 日志服务 + */ +@interface MOBFLogService : NSObject + +/** + 委托对象 + */ +@property (nonatomic, weak) id delegate; + +/** + 失败最大重试次数 + */ +@property (nonatomic) NSInteger failRetryMaxCount; + +/** + 初始化 + + @param name 日志服务名称 + @return 日志服务对象 + */ +- (instancetype)initWithName:(NSString *)name; + +/** + 初始化 + + @param name 日志服务名称 + @param secretKey 密钥(AES) + @return 日志服务对象 + */ +- (instancetype)initWithName:(NSString *)name + secretKey:(NSString *)secretKey; + +/** + 写入数据 + + @param data 日志数据 + */ +- (void)writeData:(id)data; + +/** + 写入数据数组 + + @param data 日志数据 + */ +- (void)writeDatas:(NSArray *)data; + +/** + 同步写入数据 + + @param data 日志数据 + */ + +- (void)syncWriteData:(id)data; + +/** + 需要发送日志,服务会对当前日志进行检测,如果发现存在日志会跟委托进行确认是否需要发送,然后再进行后续操作 + */ +- (void)needsSendLog; + +/** + 需要发送日志,服务会对当前日志进行检测,如果发现存在日志会跟委托进行确认是否需要发送,然后再进行后续操作 + + @param time 延时检测时间 + */ +- (void)needsSendLogAfterTime:(NSTimeInterval)time; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFNotificationCenter.h b/Libs/MOBFoundation.framework/Headers/MOBFNotificationCenter.h new file mode 100755 index 0000000..0f149bc --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFNotificationCenter.h @@ -0,0 +1,52 @@ +// +// MOBFCore.h +// MOBFoundation +// +// Created by fenghj on 15/8/31. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * 应用程序崩溃通知 + */ +extern NSString *const MOBFApplicationCrashNotif; + +/** + * 核心对象 + */ +@interface MOBFNotificationCenter : NSObject + +/** + * 添加观察者 + * + * @param observer 观察者对象 + * @param selector 处理器方法 + * @param name 通知名称 + * @param object 对象信息 + */ ++ (void)addObserver:(NSObject *)observer + selector:(SEL)selector + name:(NSString *)name + object:(id)object; + +/** + * 移除观察者 + * + * @param observer 观察者对象 + */ ++ (void)removeObserver:(NSObject *)observer; + +/** + * 移除观察者 + * + * @param observer 观察者对象 + * @param name 通知名称 + * @param object 对象信息 + */ ++ (void)removeObserver:(NSObject *)observer + name:(NSString *)name + object:(id)object; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFNumber.h b/Libs/MOBFoundation.framework/Headers/MOBFNumber.h new file mode 100755 index 0000000..23bb0ae --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFNumber.h @@ -0,0 +1,25 @@ +// +// MOBFNumberUtils.h +// MOBFoundation +// +// Created by vimfung on 15-1-20. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * 数值工具类 + */ +@interface MOBFNumber : NSObject + +/** + * 获取随机整型值 + * + * @param max 最大随机数 + * + * @return 随机整数 + */ ++ (NSInteger)randomInteger:(NSInteger)max; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFOAuthService.h b/Libs/MOBFoundation.framework/Headers/MOBFOAuthService.h new file mode 100755 index 0000000..986e28b --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFOAuthService.h @@ -0,0 +1,67 @@ +// +// MOBFOAuthService.h +// MOBFoundation +// +// Created by fenghj on 15/6/9. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * OAuth服务 + */ +@interface MOBFOAuthService : MOBFHttpService + +/** + * 设置密钥 + * + * @param consumerSecret 消费者密钥,不允许为nil + * @param oauthTokenSecret 令牌密钥,如果尚未取得令牌密钥,可以传入nil + */ +- (void)setSecretByConsumerSecret:(NSString *)consumerSecret + oauthTokenSecret:(NSString *)oauthTokenSecret; + +/** + * 添加OAuth参数 + * + * @param value 参数值 + * @param key 参数名字 + */ +- (void)addOAuthParameter:(id)value forKey:(NSString *)key; + +/** + * 添加OAuth参数 + * + * @param oauthParameters OAuth参数集合 + */ +- (void)addOAuthParameters:(NSDictionary *)oauthParameters; + +/** + * 发送HTTP请求 + * + * @param urlString 请求地址 + * @param method 请求方式 + * @param parameters 请求参数 + * @param headers 请求头集合 + * @param oauthParameters OAuth请求参数 + * @param consumerSecret 消费者密钥 + * @param oauthSecret OAuth令牌密钥 + * @param resultHandler 返回回调 + * @param faultHandler 错误回调 + * @param uploadProgressHandler 上传数据进度回调 + * + * @return HTTP服务对象 + */ ++ (MOBFOAuthService *)sendRequestByURLString:(NSString *)urlString + method:(NSString *)method + parameters:(NSDictionary *)parameters + headers:(NSDictionary *)headers + oauthParameters:(NSDictionary *)oauthParameters + consumerSecret:(NSString *)consumerSecret + oauthTokenSecret:(NSString *)oauthTokenSecret + onResult:(MOBFHttpResultEvent)resultHandler + onFault:(MOBFHttpFaultEvent)faultHandler + onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFPluginManager.h b/Libs/MOBFoundation.framework/Headers/MOBFPluginManager.h new file mode 100755 index 0000000..e3229d4 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFPluginManager.h @@ -0,0 +1,66 @@ +// +// MOBFPluginManager.h +// MOBFoundation +// +// Created by fenghj on 15/6/2. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import +#import "IMOBFPlugin.h" + +/** + * 插件创建事件处理 + * + * @return 插件对象 + */ +typedef id(^MOBFPluginConstructHandler) (); + +/** + * 插件管理器 + */ +@interface MOBFPluginManager : NSObject + +/** + * 获取默认的插件管理器 + * + * @return 插件管理器 + */ ++ (instancetype) defaultManager; + +/** + * 注册插件 + * + * @param pluginConstructHandler 插件构造事件处理器 + * @param key 插件标识 + * + * @return YES 表示注册成功,NO 表示注册失败,有可能已存在此插件 + */ +- (BOOL)registerPlugin:(MOBFPluginConstructHandler)pluginConstructHandler forKey:(NSString *)key; + +/** + * 判断是否已经注册插件 + * + * @param key 插件标识 + * + * @return YES 表示已经注册, NO 表示尚未注册 + */ +- (BOOL)isRegisterPluginForKey:(NSString *)key; + +/** + * 获取插件对象 + * + * @param key 插件标识 + * + * @return 插件对象,nil 表示该标志的插件不存在 + */ +- (id)pluginForKey:(NSString *)key; + +/** + * 卸载插件 + * + * @param key 插件标识 + */ +- (void)unloadPluginForKey:(NSString *)key; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFRSAHelper.h b/Libs/MOBFoundation.framework/Headers/MOBFRSAHelper.h new file mode 100755 index 0000000..37a37b9 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFRSAHelper.h @@ -0,0 +1,65 @@ +// +// MOBFRSAHelper.h +// MOBFoundation +// +// Created by fenghj on 15/7/29. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import +#import "MOBFRSAKey.h" + + +/** + * RSA加解密助手 + */ +@interface MOBFRSAHelper : NSObject + +/** + * 密钥信息 + */ +@property (nonatomic, readonly) MOBFRSAKey *key; + +/** + * 初始化RSA加密器 + * + * @param keySize 密钥长度 + * + * @return 加密器对象 + */ +- (instancetype)initWithKeySize:(int)keySize; + +/** + * 初始化RSA加密器 + * + * @param keySize 密钥长度 + * @param publicKey 公钥 + * @param privateKey 私钥 + * @param modulus 模数 + * + * @return 加密器对象 + */ +- (instancetype)initWithKeySize:(int)keySize + publicKey:(NSString *)publicKey + privateKey:(NSString *)privateKey + modulus:(NSString *)modulus; + +/** + * 加密数据 + * + * @param data 数据 + * + * @return 加密后数据 + */ +- (NSData *)encryptWithData:(NSData *)data; + +/** + * 解密数据 + * + * @param data 加密后数据 + * + * @return 解密后数据 + */ +- (NSData *)decryptWithData:(NSData *)data; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFRSAKey.h b/Libs/MOBFoundation.framework/Headers/MOBFRSAKey.h new file mode 100755 index 0000000..d9e2c9f --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFRSAKey.h @@ -0,0 +1,35 @@ +// +// MOBFRSAKey.h +// MOBFoundation +// +// Created by fenghj on 15/7/29. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +@class MOBFBigInteger; + +@interface MOBFRSAKey : NSObject + +/** + * bits in key + */ +@property (nonatomic) int bits; + +/** + * modulus + */ +@property (nonatomic, strong) MOBFBigInteger *n; + +/** + * public exponent + */ +@property (nonatomic, strong) MOBFBigInteger *e; + +/** + * private exponent + */ +@property (nonatomic, strong) MOBFBigInteger *d; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFRegex.h b/Libs/MOBFoundation.framework/Headers/MOBFRegex.h new file mode 100755 index 0000000..20f0ca5 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFRegex.h @@ -0,0 +1,91 @@ +// +// MOBFRegex.h +// MOBFoundation +// +// Created by vimfung on 15-1-20. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * 替换处理 + * + * @param captureCount 捕获数量 + * @param capturedStrings 捕获字符串集合 + * @param capturedRanges 捕获字符串范围集合 + * @param stop 是否停止捕获标识 + * + * @return 替换后的字符串 + */ +typedef NSString *(^MOBFReplacingOccurrencesHandler) (NSInteger captureCount, NSString *const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop); + +/** + 正则表达式选项 + + - MOBFRegexOptionsNoOptions: 无匹配 + - MOBFRegexOptionsCaseless: 不区分字母大小写的模式 + - MOBFRegexOptionsComments: 忽略掉正则表达式中的空格和#号之后的字符 + - MOBFRegexOptionsIgnoreMetacharacters: 将正则表达式整体作为字符串处理 + - MOBFRegexOptionsDotAll: 允许.匹配任何字符,包括换行符 + - MOBFRegexOptionsMultiline: 允许^和$符号匹配整段文本的开头和结尾 + - MOBFRegexOptionsUseUnixLineSeparators: 设置\n为唯一的行分隔符,否则所有的都有效。 + - MOBFRegexOptionsUnicodeWordBoundaries: 使用Unicode TR#29标准作为词的边界,否则所有传统正则表达式的词边界都有效 + */ +typedef NS_ENUM(NSUInteger, MOBFRegexOptions) +{ + MOBFRegexOptionsNoOptions = 0, + MOBFRegexOptionsCaseless = 1 << 0, + MOBFRegexOptionsComments = 1 << 1, + MOBFRegexOptionsIgnoreMetacharacters = 1 << 2, + MOBFRegexOptionsDotAll = 1 << 3, + MOBFRegexOptionsMultiline = 1 << 4, + MOBFRegexOptionsUseUnixLineSeparators = 1 << 5, + MOBFRegexOptionsUnicodeWordBoundaries = 1 << 6, +}; + +/** + * 正则表达式工具类 + */ +@interface MOBFRegex : NSObject + +/** + * 替换字符串 + * + * @param regex 正则表达式 + * @param string 原始字符串 + * @param block 块回调处理替换规则 + * + * @return 字符串 + */ ++ (NSString *)stringByReplacingOccurrencesOfRegex:(NSString *)regex + withString:(NSString *)string + usingBlock:(MOBFReplacingOccurrencesHandler)block; + +/** + * 匹配字符串 + * + * @param regex 正则表达式 + * @param options 表达式选项 + * @param range 匹配范围 + * @param string 原始字符串 + * + * @return YES 匹配,NO 不匹配 + */ ++ (BOOL)isMatchedByRegex:(NSString *)regex + options:(MOBFRegexOptions)options + inRange:(NSRange)range + withString:(NSString *)string; + +/** + * 匹配字符串 + * + * @param regex 正则表达式 + * @param string 原始字符串 + * + * @return 匹配的字符串集合 + */ ++ (NSArray *)captureComponentsMatchedByRegex:(NSString *)regex + withString:(NSString *)string; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFString.h b/Libs/MOBFoundation.framework/Headers/MOBFString.h new file mode 100755 index 0000000..3ad5970 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFString.h @@ -0,0 +1,134 @@ +// +// MOBFStringUtils.h +// MOBFoundation +// +// Created by vimfung on 15-1-16. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import + +/** + * 字符串工具 + */ +@interface MOBFString : NSObject + +/** + * URL编码 + * + * @param string 原始字符串 + * @param encoding 字符串编码 + * + * @return 编码后字符串 + */ ++ (NSString *)urlEncodeString:(NSString *)string forEncoding:(NSStringEncoding)encoding; + +/** + * URL解码 + * + * @param string 原始字符串 + * @param encoding 字符串编码 + * + * @return 解码后字符串 + */ ++ (NSString *)urlDecodeString:(NSString *)string forEncoding:(NSStringEncoding)encoding; + +/** + * 使用SHA1算法进行字符串签名 + * + * @param string 原始字符串 + * + * @return 签名后字符串 + */ ++ (NSString *)sha1String:(NSString *)string; + +/** + * 使用MD5算法进行字符串签名 + * + * @param string 原始字符串 + * + * @return 签名后字符串 + */ ++ (NSString *)md5String:(NSString *)string; + +/** + * 获取GUID字符串 + * + * @return GUID字符串 + */ ++ (NSString *)guidString; + +/** + * 使用HMAC-SHA1进行签名 + * + * @param string 原始字符串 + * @param key 密钥 + * + * @return 签名后的数据 + */ ++ (NSData *)dataByHMACSha1String:(NSString *)string forKey:(NSString *)key; + +/** + 使用HMAC-MD5进行签名 + + @param string 原始字符串 + @param key 密钥 + @return 签名后的数据 + */ ++ (NSData *)dataByHMACMd5String:(NSString *)string forKey:(NSString *)key; + +/** + * 使用BASE64进行解码 + * + * @param string 原始字符串 + * + * @return 解码后数据 + */ ++ (NSData *)dataByBase64DecodeString:(NSString *)string; + +/** + * 使用BASE64进行解码 + * + * @param string 原始字符串 + * + * @return 解码后数据string + */ ++ (NSString *)stringByBase64DecodeString:(NSString *)string; + +/** + * 判断字符串中是否包含链接 + * + * @param string 原始字符串 + * + * @return YES 表示包含URL,NO 表示不包含 + */ ++ (BOOL)containsURLByString:(NSString *)string; + +/** + * @brief 解析HTTP参数字符串,字符串格式为:参数名=参数值&参数名=参数值 + * + * @param string 参数字符串 + * + * @return 解析后字典对象 + */ ++ (NSDictionary *)parseURLParametersString:(NSString *)string; + +/** + * @brief 转换16进制字符串为NSData + * + * @param string 二进制流的16进制字符串 + * + * @return 二进制数据对象 + */ ++ (NSData *)dataByHexString:(NSString *)string; + + +/** + * @brief 转换版本号 + + * @param ver 版本号 + * @return 转换为5位整数表示。 + */ ++ (NSInteger)convertVersion:(NSString *)ver; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFTagService.h b/Libs/MOBFoundation.framework/Headers/MOBFTagService.h new file mode 100755 index 0000000..94b2d2c --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFTagService.h @@ -0,0 +1,67 @@ +// +// MOBFTagService.h +// MOBFoundation +// +// Created by liyc on 2017/10/27. +// Copyright © 2017年 MOB. All rights reserved. +// + +#import +#import + +/** + * 错误消息类型 + */ +typedef NS_ENUM(NSUInteger, MOBFErrorTagMsgType){ + /* + * 标签为空 + */ + MOBFErrorTagMsgTypeGetTagEmpty = 109996, + /* + * 获取标签失败 + */ + MOBFErrorTagMsgTypeGetTagFailed = 109997, + /** + * 上传标签超出字符限制 + */ + MOBFErrorTagMsgTypeCharacterLimitError = 109998, + /** + * 上传无效参数 + */ + MOBFErrorTagMsgTypeInvalidParamError = 109999, +}; + +@interface MOBFTagService : NSObject + +/** + 上传标记我的用户 + + @param tags 用户信息 + @param result 回调信息 + */ ++ (void)tagUserUpload:(NSDictionary *)tags + result:(void (^)(NSError *error))result; + +/** + 获取标签 + + @param handler 回调 + */ ++ (void)userTags:(void (^) (NSDictionary *userTags, NSError *error))handler; + +/** + 上传位置信息 + + @param accuracy 精度 + @param latitude 纬度 + @param longitude 经度 + @param tag 完整地理信息JSON数据 + @param handler 回调信息 + */ ++ (void)uploadLocation:(CGFloat)accuracy + latitude:(CGFloat)latitude + longitude:(CGFloat)longitude + tag:(NSDictionary *)tag + result:(void (^)(NSError *error))result; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFUser.h b/Libs/MOBFoundation.framework/Headers/MOBFUser.h new file mode 100755 index 0000000..1c65daa --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFUser.h @@ -0,0 +1,90 @@ +// +// MOBFUser.h +// MOBFoundation +// +// Created by 冯鸿杰 on 17/3/17. +// Copyright © 2017年 MOB. All rights reserved. +// + +#import +#import "IMOBBaseUser.h" +#import "MOBFDataModel.h" + +/** + 用户信息 + */ +@interface MOBFUser : MOBFDataModel + +/** + 用户标识 + */ +@property (nonatomic, copy, readonly, nullable) NSString * uid; + +/** + 应用的用户标识 + */ +@property (nonatomic, copy, readonly, nullable) NSString * appUid; + +/** + 用户头像 + */ +@property (nonatomic, copy, nullable) NSString * avatar; + +/** + 用户昵称 + */ +@property (nonatomic, copy, nullable) NSString * nickname; + +/** + 签名信息 + */ +@property (nonatomic, copy, nullable) NSString * sign; + +/** + 用户自定义数据 + */ +@property (nonatomic, strong, nullable) NSDictionary * userdata; + +/** + 创建第三方用户信息 + + @param uid 用户标识,能够表示你的用户唯一性的标识 + @param avatar 用户头像地址 + @param nickname 用户名称 + @return 用户信息 + */ ++ (MOBFUser* _Nullable)userWithUid:(NSString * _Nonnull)uid + avatar:(NSString * _Nullable)avatar + nickname:(NSString * _Nullable)nickname __deprecated_msg("use userWithAppUid:avatar:nickname:userData: method instead."); + +/** + 创建第三方用户信息 + + @param appUid 用户标识,能够表示你的用户唯一性的标识 + @param avatar 用户头像地址 + @param nickname 用户名称 + @param userdata 用户自定义数据 + @return 用户信息 + */ ++ (MOBFUser* _Nullable)userWithAppUid:(NSString * _Nonnull )appUid + avatar:(NSString * _Nullable)avatar + nickname:(NSString * _Nullable)nickname + userdata:(NSDictionary * _Nullable)userdata; + +/** + 创建第三方用户信息 + + @param appUid 用户标识,能够表示你的用户唯一性的标识 + @param avatar 用户头像地址 + @param nickname 用户名称 + @param userdata 用户自定义数据 + @return 用户信息 + */ ++ (MOBFUser* _Nullable)userWithAppUid:(NSString * _Nonnull )appUid + avatar:(NSString * _Nullable)avatar + nickname:(NSString * _Nullable)nickname + sign:(NSString * _Nullable)sign + userdata:(NSDictionary * _Nullable)userdata; + + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFViewController.h b/Libs/MOBFoundation.framework/Headers/MOBFViewController.h new file mode 100755 index 0000000..c03066a --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFViewController.h @@ -0,0 +1,33 @@ +// +// MOBFViewControllerUtils.h +// MOBFoundation +// +// Created by vimfung on 15-1-19. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#import +#import + +/** + * 视图控制器工具类 + */ +@interface MOBFViewController : NSObject + +/** + * 获取当前视图控制器 + * + * @return 视图控制器 + */ ++ (UIViewController *)currentViewController; + +/** + * 获取当前视图控制器 + * + * @param window 窗口 + * + * @return 视图控制器 + */ ++ (UIViewController *)currentViewControllerFromWindow:(UIWindow *)window; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFWKWebViewContext.h b/Libs/MOBFoundation.framework/Headers/MOBFWKWebViewContext.h new file mode 100755 index 0000000..7006068 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFWKWebViewContext.h @@ -0,0 +1,101 @@ +// +// MOBFWKWebViewContext.h +// MOBFoundation +// +// Created by 崔林豪 on 2018/11/6. +// Copyright © 2018年 MOB. All rights reserved. +// + +#import + +#import "MOBFJSTypeDefine.h" +#import +#include + + +NS_ASSUME_NONNULL_BEGIN + + +@interface MOBFWKWebViewContext : NSObject + +@property (nonatomic, strong) WKWebView *webView; + +/** + * 初始化 + * + * @return 单例对象 + */ ++ (instancetype)defaultContext; + +/** + 初始化 + + @param webview Web视图,如果传入视图带有委托处理,请在传入该参数前将委托设置,否则会奔溃。 + @return 类实例 + */ +- (instancetype)initWithWKWebView:(WKWebView *)webview; + + +/** + * 注册方法 + * + * @param name 方法名称 + * @param block 方法执行 + */ +- (void)registerJSMethod:(NSString *)name block:(MOBFJSMethodIMP)block; + + +/** + * 调用方法 + * + * @param name 方法名称 + * @param arguments 参数 + * + * @return 返回值 + */ +- (NSString *)callJSMethod:(NSString *)name arguments:(NSArray *)arguments; + +/** + * 创建新版本JS解析器 + */ +- (void)setupWKWebViewNewJSParser; + + +- (void)initWKWebViewDelegate:(WKWebView *)wkWebView; + +/** + * 加载插件 + * + * @param path 插件脚本文件路径 + * @param name 插件名称 + */ +- (void)loadPluginWithPath:(NSString *)path forName:(NSString *)name; + +/** + * 加载插件 + * + * @param content 插件脚本内容 + * @param name 插件名称 + */ +- (void)loadPlugin:(NSString *)content forName:(NSString *)name; + +/** + * 执行脚本 + * + * @param script 脚本 + */ +- (void)runScript:(NSString *)script; + + + +/** + * 回调JS + * + * @param callback 回调方法名称 + * @param resultData 回调数据 + */ +- (void)callback:(NSString *)callback resultData:(NSDictionary *)resultData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libs/MOBFoundation.framework/Headers/MOBFXml.h b/Libs/MOBFoundation.framework/Headers/MOBFXml.h new file mode 100755 index 0000000..9a25ed9 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFXml.h @@ -0,0 +1,48 @@ +// +// MOBFXml.h +// MOBFoundation +// +// Created by fenghj on 15/9/16. +// Copyright © 2015年 MOB. All rights reserved. +// + +#import + +@class MOBFXmlNode; + +/** + * XML工具类 + */ +@interface MOBFXml : NSObject + +/** + * 根节点 + */ +@property (nonatomic, strong, readonly) MOBFXmlNode *rootNode; + +/** + * 初始化XML实例对象 + * + * @param path XML文件路径 + * + * @return XML实例对象 + */ +- (instancetype)initWithPath:(NSString *)path; + +/** + * 初始化XML实例对象 + * + * @param string XML字符串描述 + * + * @return XML实例对象 + */ +- (instancetype)initWithString:(NSString *)string; + +/** + * 获取XML字典描述对象 + * + * @return 字典对象 + */ +- (NSDictionary *)dictionaryValue; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFXmlNode.h b/Libs/MOBFoundation.framework/Headers/MOBFXmlNode.h new file mode 100755 index 0000000..630ffb0 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFXmlNode.h @@ -0,0 +1,48 @@ +// +// MOBFXmlNode.h +// MOBFoundation +// +// Created by fenghj on 15/9/17. +// Copyright © 2015年 MOB. All rights reserved. +// + +#import + +/** + * XML节点 + */ +@interface MOBFXmlNode : NSObject + +/** + * 父级节点 + */ +@property (nonatomic, weak) MOBFXmlNode *parentNode; + +/** + * 节点名称 + */ +@property (nonatomic, copy) NSString *name; + +/** + * 属性集合 + */ +@property (nonatomic, strong, readonly) NSMutableDictionary *attributes; + +/** + * 子节点 + */ +@property (nonatomic, strong, readonly) NSMutableArray *children; + +/** + * 文本信息 + */ +@property (nonatomic, copy) NSString *text; + +/** + * 获取节点的字典结构描述 + * + * @return 字典结构 + */ +- (NSDictionary *)dictionaryValue; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/MOBFoundation.h b/Libs/MOBFoundation.framework/Headers/MOBFoundation.h new file mode 100755 index 0000000..61b7a93 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBFoundation.h @@ -0,0 +1,35 @@ +// +// MOBFoundation.h +// MOBFoundation +// +// Created by vimfung on 15-1-16. +// Copyright (c) 2015年 MOB. All rights reserved. +// + +#ifndef MOBFoundation_MOBFoundation_h +#define MOBFoundation_MOBFoundation_h + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import + +#import + +#import + +#endif diff --git a/Libs/MOBFoundation.framework/Headers/MOBSDKDef.h b/Libs/MOBFoundation.framework/Headers/MOBSDKDef.h new file mode 100755 index 0000000..5ecfb45 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MOBSDKDef.h @@ -0,0 +1,30 @@ +// +// MOBSDKDef.h +// MOBFoundation +// +// Created by liyc on 2018/8/22. +// Copyright © 2018年 MOB. All rights reserved. +// + +#ifndef MOBSDKDef_h +#define MOBSDKDef_h + +/** + * 国际域名类型 + */ +typedef NS_ENUM(NSUInteger, MOBFSDKDomainType){ + /** + * 默认(大陆域名) + */ + MOBFSDKDomainTypeDefault = 0, + /** + * 美国 + */ + MOBFSDKDomainTypeUS = 1, + /** + * 日本 + */ + MOBFSDKDomainTypeJapan = 2, +}; + +#endif /* MOBSDKDef_h */ diff --git a/Libs/MOBFoundation.framework/Headers/MobSDK+Privacy.h b/Libs/MOBFoundation.framework/Headers/MobSDK+Privacy.h new file mode 100755 index 0000000..2c4eccf --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MobSDK+Privacy.h @@ -0,0 +1,64 @@ +// +// MobSDK+Privacy.h +// MOBFoundation +// +// Created by liyc on 2020/1/21. +// Copyright © 2020 MOB. All rights reserved. +// + +#import +#import + +#ifndef MobSDK_Privacy_h +#define MobSDK_Privacy_h + +@interface MobSDK (Privacy) + + +/** + 获取MobTech用户隐私协议 + + @param type 协议类型 (1= url类型, 2= 富文本类型) + @param completion 返回回调(data:字典类型 title=标题,content=内容(type=1,返回url,type = 2时返回富文本) error:详细错误信息) + */ ++ (void)getPrivacyPolicy:(NSString * _Nullable)type + compeletion:(void (^ _Nullable)(NSDictionary * _Nullable data,NSError * _Nullable error))result DEPRECATED_MSG_ATTRIBUTE("use -[getPrivacyPolicy:language:compeletion:] method instead."); + +/** + 获取MobTech用户隐私协议 + + @param type 协议类型 (1= url类型, 2= 富文本类型) + @param language 隐私协议支持语言() + @param completion 返回回调(data:字典类型 title=标题,content=内容(type=1,返回url,type = 2时返回富文本) error:详细错误信息) + */ ++ (void)getPrivacyPolicy:(NSString * _Nullable)type + language:(NSString * _Nullable)language + compeletion:(void (^ _Nullable)(NSDictionary * _Nullable data,NSError * _Nullable error))result; + +/** + 上传隐私协议授权状态 + @param isAgree 是否同意(用户授权后的结果) + */ ++ (void)uploadPrivacyPermissionStatus:(BOOL)isAgree + onResult:(void (^_Nullable)(BOOL success))handler; + +/** + 设置是否允许弹窗 + @param show 是否允许展示隐私协议二次弹窗(最好设置为YES,否则可能会导致MobTech部分功能无法使用,默认为YES) + */ ++ (void)setAllowShowPrivacyWindow:(BOOL)show DEPRECATED_MSG_ATTRIBUTE("deprecated"); + +/** + 设置隐私协议弹窗色调 + @param backColorb 弹窗背景色调 + @param colors 弹窗按钮色调数组(首个元素为拒绝按钮色调,第二个元素为同意按钮色调) + */ ++ (void)setPrivacyBackgroundColor:(UIColor *_Nullable)backColor + operationButtonColor:(NSArray *_Nullable)colors DEPRECATED_MSG_ATTRIBUTE("deprecated"); + + + +@end + + +#endif /* MobSDK_Privacy_h */ diff --git a/Libs/MOBFoundation.framework/Headers/MobSDK.h b/Libs/MOBFoundation.framework/Headers/MobSDK.h new file mode 100755 index 0000000..3594ff0 --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/MobSDK.h @@ -0,0 +1,104 @@ +// +// MobSDK.h +// MOBFoundation +// +// Created by liyc on 17/2/23. +// Copyright © 2017年 MOB. All rights reserved. +// + +#import +#import "MOBSDKDef.h" + +/** + MobSDK + */ +@interface MobSDK : NSObject + +/** + 获取版本号 + + @return 版本号 + */ ++ (NSString * _Nonnull)version; + +/** + 获取应用标识 + + @return 应用标识 + */ ++ (NSString * _Nullable)appKey; + +/** + 获取应用密钥 + + @return 应用密钥 + */ ++ (NSString * _Nullable)appSecret; + +/** + 获取当前国际域名 + + @return 域名 + */ ++ (NSString *_Nullable)getInternationalDomain; + +/** + 设置国际域名 + + @param domainType 域名类型 + */ ++ (void)setInternationalDomain:(MOBFSDKDomainType)domainType; + +/** + 变更应用密钥,针对服务器刷新应用密钥后,可以通过该方法进行修改 + + @param appSecret 应用密钥 + */ ++ (void)changeAppSecret:(NSString * _Nonnull)appSecret; + +/** + 注册appKey、appSecret + + @param appKey appKey + @param appSecret appSecret + */ ++ (void)registerAppKey:(NSString * _Nonnull)appKey + appSecret:(NSString * _Nonnull)appSecret; + +#pragma mark - User + + +/** + 设置用户 + + @param uid 用户标识,对应应用自身用户系统的用户唯一标志,不一定是实际的用户ID,可以通过数据变换的方式(如:MD5(userID))来生成该ID,但一定要能够唯一标识用户。设置nil表示注销用户,解除绑定 + @param nickname 昵称 + @param avatar 头像 + @param userData 用户自定义数据 + */ ++ (void)setUserWithUid:(NSString * _Nullable)uid + nickName:(NSString * _Nullable)nickname + avatar:(NSString * _Nullable)avatar + userData:(NSDictionary * _Nullable)userData; + +/** + 设置用户 + + @param uid 用户标识,对应应用自身用户系统的用户唯一标志,不一定是实际的用户ID,可以通过数据变换的方式(如:MD5(userID))来生成该ID,但一定要能够唯一标识用户。设置nil表示注销用户,解除绑定 + @param nickname 昵称 + @param avatar 头像 + @param userData 用户自定义数据 + */ ++ (void)setUserWithUid:(NSString * _Nullable)uid + nickName:(NSString * _Nullable)nickname + avatar:(NSString * _Nullable)avatar + sign:(NSString * _Nullable)sign + userData:(NSDictionary * _Nullable)userData; + + +/** + 清空用户 + */ ++ (void)clearUser; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/UIImageView+MOBFWebCache.h b/Libs/MOBFoundation.framework/Headers/UIImageView+MOBFWebCache.h new file mode 100755 index 0000000..e1bd0ad --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/UIImageView+MOBFWebCache.h @@ -0,0 +1,18 @@ +// +// UIImageView+MOBFWebCache.h +// MOBFoundation +// +// Created by wukx on 2018/6/6. +// Copyright © 2018年 MOB. All rights reserved. +// + +#import + +@interface UIImageView (MOBFWebCache) + +- (void)mobf_setImageWithURL:(nullable NSURL *)url; + +- (void)mobf_setImageWithURL:(nullable NSURL *)url + placeholderImage:(nullable UIImage *)placeholder; + +@end diff --git a/Libs/MOBFoundation.framework/Headers/UIView+MOBFWebCache.h b/Libs/MOBFoundation.framework/Headers/UIView+MOBFWebCache.h new file mode 100755 index 0000000..3dcdfcd --- /dev/null +++ b/Libs/MOBFoundation.framework/Headers/UIView+MOBFWebCache.h @@ -0,0 +1,18 @@ +// +// UIView+MOBFWebCache.h +// MOBFoundation +// +// Created by wukx on 2018/6/6. +// Copyright © 2018年 MOB. All rights reserved. +// + +#import + +typedef void(^MOBFSetImageBlock)(UIImage * _Nullable image, NSError * _Nullable error); + +@interface UIView (MOBFWebCache) + +- (void)mobf_internalSetImageWithURL:(nullable NSURL *)url + setImageBlock:(nullable MOBFSetImageBlock)setImageBlock; + +@end diff --git a/Libs/MOBFoundation.framework/Info.plist b/Libs/MOBFoundation.framework/Info.plist new file mode 100644 index 0000000..841461b Binary files /dev/null and b/Libs/MOBFoundation.framework/Info.plist differ diff --git a/Libs/MOBFoundation.framework/MOBFoundation b/Libs/MOBFoundation.framework/MOBFoundation new file mode 100644 index 0000000..e79f816 Binary files /dev/null and b/Libs/MOBFoundation.framework/MOBFoundation differ diff --git a/Libs/MOBFoundation.framework/en.lproj/InfoPlist.strings b/Libs/MOBFoundation.framework/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..3967e06 Binary files /dev/null and b/Libs/MOBFoundation.framework/en.lproj/InfoPlist.strings differ diff --git a/Libs/MOBFoundation.framework/readme b/Libs/MOBFoundation.framework/readme new file mode 100755 index 0000000..6f5b088 --- /dev/null +++ b/Libs/MOBFoundation.framework/readme @@ -0,0 +1,10 @@ +========================================= +MOBFoundation.framework +========================================= + +1、引用此库需要添加下面依赖库: +libz.tdb +libstdc++.tdb + +2、版本 +3.2.27 diff --git a/Libs/YTXMonitor.framework/Headers/ACMConfig.h b/Libs/YTXMonitor.framework/Headers/ACMConfig.h new file mode 100644 index 0000000..7a0f94d --- /dev/null +++ b/Libs/YTXMonitor.framework/Headers/ACMConfig.h @@ -0,0 +1,43 @@ +// +// ACMConfig.h +// ATAuthSDK +// +// Created by 刘超的MacBook on 2020/5/19. +// Copyright © 2020. All rights reserved. +// + +#import +#import "ACMUploadInterface.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, ACMMonitorUploadType) { + ACMMonitorUploadTypeRealTime, //实时上传,暂时不支持,如果采用这个方式将以默认的轮询上传实现 + ACMMonitorUploadTypeCirculate, //轮询上传 + ACMMonitorUploadTypeManual //手动上传 +}; + +@interface ACMConfig : NSObject + ++ (instancetype)sharedInstance; + +/// 日志是否入库,默认NO +@property (atomic, assign) BOOL loggerIsSaveInDB; +/// 埋点是否入库,默认YES +@property (atomic, assign) BOOL monitorIsSaveInDB; +/// 日志是否上传,默认NO +@property (atomic, assign) BOOL loggerIsUpload; +/// 埋点是否上传,默认YES +@property (atomic, assign) BOOL monitorIsUpload; + +/// 日志埋点组件上传type,默认 ACMMonitorUploadTypeManual +@property (nonatomic, assign) ACMMonitorUploadType uploadType; +/// 日志埋点组件上传代理对象,注:这里是弱引用,组件外面需要保证该上传对象不要被释放,如果被释放掉将影响日志埋点的上传 +@property (nonatomic, weak) id uploadDelegate; + +/// 更新日志埋点组件限流信息 +- (void)setLimitConfig:(NSDictionary *)info; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libs/YTXMonitor.framework/Headers/ACMLogger.h b/Libs/YTXMonitor.framework/Headers/ACMLogger.h new file mode 100644 index 0000000..c762a5a --- /dev/null +++ b/Libs/YTXMonitor.framework/Headers/ACMLogger.h @@ -0,0 +1,34 @@ +// +// ACMLogger.h +// Monitor +// +// Created by Vienta on 2019/11/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ACMLogger : NSObject + ++ (BOOL)verboseRecord:(id)obj; + ++ (BOOL)debugRecord:(id)obj; + ++ (BOOL)infoRecord:(id)obj; + ++ (BOOL)warnRecord:(id)obj; + ++ (BOOL)errorRecord:(id)obj; + +/** + * 日志上传 + * @param startDate 日志开始时间,如果传nil则查询不加该条件 + * @param endDate 日志结束时间,如果传nil则查询不加该条件 + * @param levels 日志等级数组,里面包含对应的日志等级字符串,如果传nil则查询不加该条件 + */ ++ (void)uploadLoggerRecordsWithStartDate:(NSDate * _Nullable)startDate endDate:(NSDate * _Nullable)endDate levels:(NSArray * _Nullable)levels; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libs/YTXMonitor.framework/Headers/ACMMonitor.h b/Libs/YTXMonitor.framework/Headers/ACMMonitor.h new file mode 100644 index 0000000..38ad7be --- /dev/null +++ b/Libs/YTXMonitor.framework/Headers/ACMMonitor.h @@ -0,0 +1,35 @@ +// +// ACMMonitor.h +// Monitor +// +// Created by Vienta on 2019/11/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ACMMonitor : NSObject + +/** + * 上传非实时埋点 + * @param obj 埋点内容 + * @return 埋点存储结果 + */ ++ (BOOL)monitorRecord:(id)obj; + +/** + * 上传实时埋点 + * @param obj 埋点内容 + * @return 埋点上传准备结果 + */ ++ (BOOL)monitorRealtimeRecord:(id)obj; + +/** + * 开始手动上传,在设置uploadType为ACMMonitorUploadManual时生效 + */ ++ (void)uploadMonitorByManual; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libs/YTXMonitor.framework/Headers/ACMUploadInterface.h b/Libs/YTXMonitor.framework/Headers/ACMUploadInterface.h new file mode 100644 index 0000000..53f1749 --- /dev/null +++ b/Libs/YTXMonitor.framework/Headers/ACMUploadInterface.h @@ -0,0 +1,25 @@ +// +// ACMUploadInterface.h +// Monitor +// +// Created by 沈超 on 2019/12/17. +// + +@protocol ACMProtocol + +@required +/** + * 埋点聚合上传(包括轮询和手动) + * @param monitors 需要上传的埋点信息 + * @return 上传是否成功,建议上传采用同步策略 + */ +- (BOOL)uploadMonitors:(NSArray *)monitors; + +/** + * 日志上传 + * @param logContents 需要上传的日志 + * @return 上传是否成功,建议上传采用同步策略 + */ +- (BOOL)uploadLogs:(NSArray *)logContents; + +@end diff --git a/Libs/YTXMonitor.framework/Headers/ACMUploadManager.h b/Libs/YTXMonitor.framework/Headers/ACMUploadManager.h new file mode 100644 index 0000000..dd3c050 --- /dev/null +++ b/Libs/YTXMonitor.framework/Headers/ACMUploadManager.h @@ -0,0 +1,26 @@ +// +// ACMUploadManager.h +// Monitor +// +// Created by Vienta on 2019/11/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ACMUploadManager : NSObject + +/** + * 上传失败的数据,同时会上传埋点和日志的数据,如果有降级限流的情况,最好是在设置完成相应的降级接口(setACMLoggerEnable:和 setACMMonitorEnable)之后调用 + */ ++ (void)uploadFailedData; + +/** + * 业务层配置降级限流 + */ ++ (void)setLimitConfig:(NSDictionary *)info; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libs/YTXMonitor.framework/Headers/YTXMonitor.h b/Libs/YTXMonitor.framework/Headers/YTXMonitor.h new file mode 100644 index 0000000..d2e3d83 --- /dev/null +++ b/Libs/YTXMonitor.framework/Headers/YTXMonitor.h @@ -0,0 +1,22 @@ +// +// YTXMonitor.h +// YTXMonitor +// +// Created by li yang on 2020/11/23. +// + +#import + +//! Project version number for YTXMonitor. +FOUNDATION_EXPORT double YTXMonitorVersionNumber; + +//! Project version string for YTXMonitor. +FOUNDATION_EXPORT const unsigned char YTXMonitorVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import "ACMLogger.h" +#import "ACMMonitor.h" +#import "ACMConfig.h" +#import "ACMUploadInterface.h" +#import "ACMUploadManager.h" diff --git a/Libs/YTXMonitor.framework/Info.plist b/Libs/YTXMonitor.framework/Info.plist new file mode 100644 index 0000000..8d57355 Binary files /dev/null and b/Libs/YTXMonitor.framework/Info.plist differ diff --git a/Libs/YTXMonitor.framework/Modules/module.modulemap b/Libs/YTXMonitor.framework/Modules/module.modulemap new file mode 100644 index 0000000..7c61570 --- /dev/null +++ b/Libs/YTXMonitor.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module YTXMonitor { + umbrella header "YTXMonitor.h" + + export * + module * { export * } +} diff --git a/Libs/YTXMonitor.framework/YTXMonitor b/Libs/YTXMonitor.framework/YTXMonitor new file mode 100644 index 0000000..c97df9f Binary files /dev/null and b/Libs/YTXMonitor.framework/YTXMonitor differ diff --git a/Libs/YTXOperators.framework/Headers/YTXNetUtils.h b/Libs/YTXOperators.framework/Headers/YTXNetUtils.h new file mode 100644 index 0000000..a8c4bdd --- /dev/null +++ b/Libs/YTXOperators.framework/Headers/YTXNetUtils.h @@ -0,0 +1,94 @@ +// +// YTXNetUtils.h +// YTXOperators +// +// Created by yangli on 2020/11/9. +// Copyright © 2020 com.alicom. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YTXNetUtils : NSObject + +/** + 判断当前设备蜂窝数据网络是否开启,即3G/4G + @return 结果 + */ ++ (BOOL)checkDeviceCellularDataEnable; + +/** +判断当前上网卡运营商是否是中国联通 +@return 结果 +*/ ++ (BOOL)isChinaUnicom; + +/** +判断当前上网卡运营商是否是中国移动 +@return 结果 +*/ ++ (BOOL)isChinaMobile; + +/** +判断当前上网卡运营商是否是中国电信 +@return 结果 +*/ ++ (BOOL)isChinaTelecom; + +/** +获取当前上网卡运营商名称,比如中国移动、中国电信、中国联通 +@return 结果 +*/ ++ (NSString *)getCurrentCarrierName; + +/** +获取当前上网卡运营商编码,比如46000、46001、46003 +@return 结果 +*/ ++ (NSString *)getCurrentCarrierCode; + +/** +获取当前上网卡网络类型,比如WiFi,4G +@return 结果 +*/ ++ (NSString *)getNetworktype; + +/** +判断当前设备是否有SIM卡 +@return 结果 +*/ ++ (BOOL)simSupportedIsOK; + +/** + 判断wwan是否开着(通过p0网卡判断,无wifi或有wifi情况下都能检测到) + @return 结果 + */ ++ (BOOL)isWWANOpen; + +/** + 判断wwan是否开着(仅无wifi情况下) + @return 结果 + */ ++ (BOOL)reachableViaWWAN; + +/** + 获取设备当前网络私网IP地址 + @return 结果 + */ ++ (NSString *)getMobilePrivateIPAddress:(BOOL)preferIPv4; + +/** +获取双卡设备下,非上网卡信息 + @return 结果 +*/ ++ (NSString *)getOptionalCarrierInfo; + +/** + 获取当前蜂网络Ip地址 + */ ++ (NSString *)getCellularIp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libs/YTXOperators.framework/Headers/YTXOperators.h b/Libs/YTXOperators.framework/Headers/YTXOperators.h new file mode 100644 index 0000000..3f0048c --- /dev/null +++ b/Libs/YTXOperators.framework/Headers/YTXOperators.h @@ -0,0 +1,20 @@ +// +// YTXOperators.h +// YTXOperators +// +// Created by yangli on 2020/11/9. +// Copyright © 2020 com.alicom. All rights reserved. +// + +#import + +//! Project version number for YTXOperators. +FOUNDATION_EXPORT double YTXOperatorsVersionNumber; + +//! Project version string for YTXOperators. +FOUNDATION_EXPORT const unsigned char YTXOperatorsVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import "YTXVendorService.h" +#import "YTXNetUtils.h" diff --git a/Libs/YTXOperators.framework/Headers/YTXVendorService.h b/Libs/YTXOperators.framework/Headers/YTXVendorService.h new file mode 100644 index 0000000..8091daa --- /dev/null +++ b/Libs/YTXOperators.framework/Headers/YTXVendorService.h @@ -0,0 +1,67 @@ +// +// YTXVendorService.h +// ATAuthSDK +// +// Created by 刘超的MacBook on 2020/1/15. +// Copyright © 2020. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YTXVendorService : NSObject + +/** +* 获取SDK版本号 +*/ ++ (NSString *)getVersion; + +/** +* 获取供应商SDK版本号 +*/ ++ (NSDictionary *)getVendorsVersion; + +/** + * 初始化或更新各个供应商的接口调用对象,根据各个供应商的配置信息 + * @param vendorConfigs 各个供应商配置信息 + */ +- (void)updateVendorHandlers:(NSArray *)vendorConfigs; + +/** + * 获取本机号码校验Token + * @param request 请求参数结构体 + * @param vendorConfig 当前供应商配置信息 + * @param complete 结果回调 + */ +- (void)getVerifyTokenWithRequest:(NSDictionary *)request + vendorConfig:(NSDictionary *)vendorConfig + complete:(void(^)(NSDictionary *response))complete; + +/** + * 获取手机掩码 + * @param request 请求参数结构体 + * @param vendorConfig 当前供应商配置信息 + * @param complete 结果回调 + */ +- (void)getMaskNumberWithRequest:(NSDictionary *)request + vendorConfig:(NSDictionary *)vendorConfig + complete:(void(^)(NSDictionary *response))complete; + + +/** + * 电信/联通获取一键登录Token + * @param request 请求参数结构体 + * @param vendorConfig 当前供应商配置信息 + * @param complete 结果回调 + * @abstract 移动的获取登录Token不走这个回调,走弹起授权页的回调 + */ +- (void)getLoginTokenWithRequest:(NSDictionary *)request + vendorConfig:(NSDictionary *)vendorConfig + complete:(void(^)(NSDictionary *response))complete; + +- (void)deleteCacheWithVendorConfigs:(NSArray *)vendorConfigs; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Libs/YTXOperators.framework/Info.plist b/Libs/YTXOperators.framework/Info.plist new file mode 100644 index 0000000..231038f Binary files /dev/null and b/Libs/YTXOperators.framework/Info.plist differ diff --git a/Libs/YTXOperators.framework/Modules/module.modulemap b/Libs/YTXOperators.framework/Modules/module.modulemap new file mode 100644 index 0000000..0316400 --- /dev/null +++ b/Libs/YTXOperators.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module YTXOperators { + umbrella header "YTXOperators.h" + + export * + module * { export * } +} diff --git a/Libs/YTXOperators.framework/YTXOperators b/Libs/YTXOperators.framework/YTXOperators new file mode 100644 index 0000000..d380037 Binary files /dev/null and b/Libs/YTXOperators.framework/YTXOperators differ diff --git a/Libs/iflyMSC.framework/Headers/IFlyAudioSession.h b/Libs/iflyMSC.framework/Headers/IFlyAudioSession.h new file mode 100644 index 0000000..e3b975e --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyAudioSession.h @@ -0,0 +1,35 @@ +// +// IFlyAudioSession.h +// MSCDemo +// +// Created by AlexHHC on 1/9/14. +// +// + +#import + +/** + * 音频环境初始化,设置AVAudioSession的Category属性。 + */ +@interface IFlyAudioSession : NSObject + +/** + * 初始化播音环境,主要用于合成播放器。 + * + * 此接口主要根据原来的音频环境,重新优化设置AVAudioSession的Category属性值。
+ * 若原来的Category属性值为AVAudioSessionCategoryPlayAndRecord,则添加AVAudioSessionCategoryOptionDefaultToSpeaker|AVAudioSessionCategoryOptionAllowBluetooth选项;若为其他Category属性值且isMPCenter为NO,则设置Category属性值为AVAudioSessionCategoryPlayback,选项为AVAudioSessionCategoryOptionMixWithOthers;若为其他Category属性值且isMPCenter为YES,则保持原来的设置,不做任何更改。 + * + * @param isMPCenter 是否初始化MPPlayerCenter:0不初始化,1初始化。此参数只在AVAudioSession的Category属性值不为AVAudioSessionCategoryPlayAndRecord时设置有效。 + */ ++(void) initPlayingAudioSession:(BOOL)isMPCenter; + +/** + * 初始化录音环境,主要用于识别录音器。 + * + * 设置AVAudioSession的Category属性值为AVAudioSessionCategoryPlayAndRecord,选项为AVAudioSessionCategoryOptionDefaultToSpeaker|AVAudioSessionCategoryOptionAllowBluetooth。 + * + * @return 成功返回YES,失败返回NO + */ ++(BOOL) initRecordingAudioSession; + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlyContact.h b/Libs/iflyMSC.framework/Headers/IFlyContact.h new file mode 100644 index 0000000..a251f87 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyContact.h @@ -0,0 +1,24 @@ +// +// IFlyContact.h +// msc +// +// Created by ypzhao on 13-3-1. +// Copyright (c) 2013年 IFLYTEK. All rights reserved. +// + +#import + +/*! + * 此接口为获取通信录中的联系人。
+ * 获取联系人是为了在进行语音识别时(sms)能更好的识别出您说的人名,联系人上传是属于个性化的一部分。 + */ +@interface IFlyContact : NSObject + +/*! + * 获取联系人。
+ * 调用此方法需要添加 AddressBook.framework 和 Contacts.framework到工程中,调用此方法后可以直接将通信录中的联系人转化为语音云识别的数据结构。您可以将获取的数据通过IFlyDataUploader类,上传到语音云,我们只获取通信录中的人名。 + * + * @return 返回联系人信息 + */ +- (NSString *) contact; +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlyDataUploader.h b/Libs/iflyMSC.framework/Headers/IFlyDataUploader.h new file mode 100644 index 0000000..5eb0584 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyDataUploader.h @@ -0,0 +1,54 @@ +// +// IFlyDataUploader.h +// MSC +// +// Created by ypzhao on 13-4-8. +// Copyright (c) 2013年 iflytek. All rights reserved. +// + +#import + + +@class IFlySpeechError; + +/*! + * 数据上传类,主要用于上传语法文件或上传联系人、词表等个性化数据。 + */ +@interface IFlyDataUploader : NSObject + +/*! + * 数据名称 + */ +@property(nonatomic,copy) NSString *dataName; +/*! + * 数据 + */ +@property(nonatomic,copy) NSString *data; + +/*! + * 上传完成回调 + * + * @param result 结果 + * @param error 错误码 + */ +typedef void(^IFlyUploadDataCompletionHandler)(NSString* result,IFlySpeechError * error); + +/*! + * 上传数据 + * 此函数用于上传数据,下载的过程是**异步**的。 + * + * @param completionHandler -[in] 上传完成回调 + * @param name -[in] 上传的内容名称,名称最好和你要上传的数据内容相关,不可以为nil + * @param data -[in] 上传的数据,以utf8编码,不可以为nil + */ +- (void) uploadDataWithCompletionHandler:(IFlyUploadDataCompletionHandler)completionHandler name:(NSString *)name data:(NSString *)data; + +/*! + * 设置上传数据参数 + * + * @param parameter 参数值 + * @param key 参数名 + */ +-(void) setParameter:(NSString*) parameter forKey:(NSString*) key; + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlyDebugLog.h b/Libs/iflyMSC.framework/Headers/IFlyDebugLog.h new file mode 100644 index 0000000..9cf2987 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyDebugLog.h @@ -0,0 +1,37 @@ +// +// IFlyDebugLog.h +// MSC + +// description: 程序中的log处理类 + +// Created by ypzhao on 12-11-22. +// Copyright (c) 2012年 iflytek. All rights reserved. +// + +#import + +/*! + * 调试信息 + */ +@interface IFlyDebugLog : NSObject + +/*! + * 打印调试信息 + * + * @param format -[in] 要打印的内容格式 + * @param ... -[in] 要打印的内容 + */ ++ (void) showLog:(NSString *)format, ...; + +/*! + * 将log写入文件中 + */ ++ (void) writeLog; + +/*! + * 设置是否显示log + * + * @param showLog YES:显示;NO:不显示 + */ ++ (void) setShowLog:(BOOL) showLog; +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlyISVDelegate.h b/Libs/iflyMSC.framework/Headers/IFlyISVDelegate.h new file mode 100644 index 0000000..7cec537 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyISVDelegate.h @@ -0,0 +1,48 @@ +// +// IFlyISVDelegate.h +// msc_UI +// +// Created by admin on 14-9-15. +// Copyright (c) 2014年 iflytek. All rights reserved. +// + + +#import + +@class IFlySpeechError; + +/*! + * 声纹回调协议 + */ +@protocol IFlyISVDelegate + +/*! + * 声纹结果回调 + * + * @param dic 结果 + */ +-(void) onResult:(NSDictionary *)dic; + +/*! + * 错误码回调 + * + * @param errorCode 错误码 + */ +-(void) onError:(IFlySpeechError *) errorCode; + +@optional + +/*! + * 等待结果 + */ +-(void) onRecognition; + +/*! + * 音量改变回调 + * + * @param volume 音量值 + */ +-(void) onVolumeChanged: (int)volume; + +@end + diff --git a/Libs/iflyMSC.framework/Headers/IFlyISVRecognizer.h b/Libs/iflyMSC.framework/Headers/IFlyISVRecognizer.h new file mode 100644 index 0000000..a8e52b7 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyISVRecognizer.h @@ -0,0 +1,132 @@ +// +// IFlyISVRecognizer.h +// ISV +// +// Created by wangdan on 14-9-6. +// Copyright (c) 2014年 IFlyTEK. All rights reserved. +// + + +#import +#import "IFlyISVDelegate.h" + +/** + * 声纹接口类 + */ +@interface IFlyISVRecognizer : NSObject +{ + +} + +/*! + * The delegate of FlyISVRecognizer responsing to IFlyISVDelegate. + */ +@property (assign) id delegate; + + +/*! + * FlyISVRecognizer is a kind of Singleton calss.The function can be used as below:
+ * IFLyISVRecognizer *recognizer=[IFlyISVRecognizer creteRecognizer: self]; + */ ++(instancetype) sharedInstance; + + +/*! + * Genrerate a serial number password
+ * Princeple:
+ * 1.Number serial has no 1 in itself;
+ * 2.The nuber serial has no same number("98765432"is right while "99876543" is wrong) + * + * @param length the serial number's length,length of "98765432" is 8,generally length is 8 and other value is forbidden + */ +-(NSString*) generatePassword:(int)length; + + + +/*! + * Used to get password from server + * + * @param pwdt when pwdt is 1,the function will return chinese text;while pwdt is 2, the funciton will return number serial + */ +-(NSArray*) getPasswordList:(int)pwdt; + + +/*! + * Used to judge if the engine is running in listenning + * + * @return YES: the engine is listenning;
No : the engine is not listenning + */ +-(BOOL) isListening; + + + +/*! + * Used to query or delete the voiceprint model in server + * + * @param cmd "del": delete model;
"que": query model; + * @param authid: user id ,can be @"tianxia" or other; + * @param pwdt voiceprint type
+ * 1: fixed txt voiceprint code ,like @"我的地盘我做主";
+ * 2: free voiceprint code , user can speek anything,but 5 times trainning the speech shall be same;
+ * 3: number serial voiceprint code ,like @"98765432" and so on. + * @param ptxt voiceprint txt,only fixed voiceprint and number serial have this,in free voiceprint model this param shall be set nil. + * @param vid another voiceprint type model,user can use this to query or delete model in server can be @"jakillasdfasdjjjlajlsdfhdfdsadff",totally 32 bits;
+ * NOTES:
+ * when vid is not nil,then the server will judge the vid first; while the vid is nil, server can still query or delete the voiceprint model by other params. + */ +-(BOOL) sendRequest:(NSString*)cmd authid:(NSString *)auth_id pwdt:(int)pwdt ptxt:(NSString *)ptxt vid:(NSString *)vid err:(int *)err; + + +/*! + * Set the voiceprint params + * + * | key | value | + * |:---------------:|:-------------------------------------------------:| + * | sst | @"train" or @"verify" | + * | auth_id | @"tianxia" or other | + * | sub | @"ivp" | + * | ptxt | | + * | rgn | @"5" | + * | pwdt | @"1",or @"2", or @"3" | + * | auf | @"audio/L16;rate=16000" or @"audio/L16;rate=8000" | + * | vad_enable | @"1" or @"0" | + * | vad_timeout | @"3000" | + * | vad_speech_tail | @"100" | + * + * @param value 参数值 + * @param key 参数类型 + * + * @return 设置成功返回YES,失败返回NO + */ +-(BOOL) setParameter:(NSString *)value forKey:(NSString *)key; + + + +/*! + * Get the voiceprint params used the same as function of setParameter + */ +-(NSString*) getParameter:(NSString *)key; + + +/*! + * Start recording + */ +-(void) startListening; + + +/*! + * Stop recording + */ +-(void) stopListening; + + +/*! + * Cancel recording,like function stopListening + */ +-(void) cancel; /* cancel recognization */ + + + + +@end + diff --git a/Libs/iflyMSC.framework/Headers/IFlyMSC.h b/Libs/iflyMSC.framework/Headers/IFlyMSC.h new file mode 100644 index 0000000..44ff9cd --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyMSC.h @@ -0,0 +1,41 @@ +// +// IFlyMSC.h +// msc +// +// Created by 张剑 on 15/1/14. +// Copyright (c) 2015年 iflytek. All rights reserved. +// + +#ifndef MSC_IFlyMSC_h +#define MSC_IFlyMSC_h + +#import "IFlyAudioSession.h" +#import "IFlyContact.h" +#import "IFlyDataUploader.h" +#import "IFlyDebugLog.h" +#import "IFlyISVDelegate.h" +#import "IFlyISVRecognizer.h" +#import "IFlyRecognizerView.h" +#import "IFlyRecognizerViewDelegate.h" +#import "IFlyResourceUtil.h" +#import "IFlySetting.h" +#import "IFlySpeechConstant.h" +#import "IFlySpeechError.h" +#import "IFlySpeechEvaluator.h" +#import "IFlySpeechEvaluatorDelegate.h" +#import "IFlySpeechEvent.h" +#import "IFlySpeechRecognizer.h" +#import "IFlySpeechRecognizerDelegate.h" +#import "IFlySpeechSynthesizer.h" +#import "IFlySpeechSynthesizerDelegate.h" +#import "IFlySpeechUnderstander.h" +#import "IFlySpeechUtility.h" +#import "IFlyTextUnderstander.h" +#import "IFlyUserWords.h" +#import "IFlyPcmRecorder.h" +#import "IFlyVoiceWakeuper.h" +#import "IFlyVoiceWakeuperDelegate.h" + + + +#endif diff --git a/Libs/iflyMSC.framework/Headers/IFlyPcmRecorder.h b/Libs/iflyMSC.framework/Headers/IFlyPcmRecorder.h new file mode 100644 index 0000000..8ea52b2 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyPcmRecorder.h @@ -0,0 +1,109 @@ +// +// IFlyPcmRecorder.h +// MSC + +// description: + +// Created by ypzhao on 12-11-15. +// Copyright (c) 2012年 iflytek. All rights reserved. +// + +#import + +#import +#import +#import +#import +#import + + +@class IFlyPcmRecorder; + +/*! + * 录音协议 + */ +@protocol IFlyPcmRecorderDelegate + +/*! + * 回调音频数据 + * + * @param buffer 音频数据 + * @param size 表示音频的长度 + */ +- (void) onIFlyRecorderBuffer: (const void *)buffer bufferSize:(int)size; + +/*! + * 回调音频的错误码 + * + * @param recoder 录音器 + * @param error 错误码 + */ +- (void) onIFlyRecorderError:(IFlyPcmRecorder*)recoder theError:(int) error; + +@optional + +/*! + * 回调录音音量 + * + * @param power 音量值 + */ +- (void) onIFlyRecorderVolumeChanged:(int) power; + +@end + + +/*! + * 录音器控件 + */ +@interface IFlyPcmRecorder : NSObject + +/*! + * 录音委托对象 + */ +@property (nonatomic,assign) id delegate; + +/*! + * 用于设置是否在录音结束后发送Deactive通知,默认是YES:发送 + */ +@property (nonatomic,assign) BOOL isNeedDeActive; + +/*! + * 单例模式 + * + * @return 返回录音对象单例 + */ ++ (instancetype) sharedInstance; + +/*! + * 开始录音 + * + * @return 开启录音成功返回YES,否则返回NO + */ +- (BOOL) start; + +/*! + * 停止录音 + */ +- (void) stop; + +/*! + * 设置音频采样率 + * + * @param rate -[in] 采样率,8k/16k + */ +- (void) setSample:(NSString *) rate; + +/*! + * 设置录音音量回调时间间隔参数 + */ +- (void) setPowerCycle:(float) cycle; + +/*! + * 保存录音 + * + * @param savePath 音频保存路径 + */ +-(void) setSaveAudioPath:(NSString *)savePath; + +@end + diff --git a/Libs/iflyMSC.framework/Headers/IFlyRecognizerView.h b/Libs/iflyMSC.framework/Headers/IFlyRecognizerView.h new file mode 100644 index 0000000..483a217 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyRecognizerView.h @@ -0,0 +1,134 @@ +// +// IFlyRecognizerView.h +// MSC +// +// Created by admin on 13-4-16. +// Copyright (c) 2013年 iflytek. All rights reserved. +// + +#import + + +@protocol IFlyRecognizerViewDelegate ; + +/*! + * 语音识别控件
+ * 录音时触摸控件结束录音,开始识别(相当于旧版的停止);触摸其他位置,取消录音,结束会话(取消)
+ * 出错时触摸控件,重新开启会话(相当于旧版的再说一次);触摸其他位置,取消录音,结束会话(取消) + * + */ +@interface IFlyRecognizerView : UIView + +/*! + * 设置委托对象 + */ +@property(nonatomic,assign)id delegate; + +/*! + * 初始化控件 + * + * @param origin 控件左上角的坐标 + * + * @return IFlyRecognizerView 对象 + */ +- (id)initWithOrigin:(CGPoint)origin; + +/*! + * 初始化控件 + * + * @param center 控件中心的坐标 + * + * @return IFlyRecognizerView 对象 + */ +- (id) initWithCenter:(CGPoint)center; + +/*! + * 设置横竖屏自适应 + * + * @param autoRotate 默认值YES,横竖屏自适应 + */ +- (void) setAutoRotate:(BOOL)autoRotate; + +/* + * | ------------- |----------------------------------------------------------- + * | 参数 | 描述 + * | ------------- |----------------------------------------------------------- + * | domain |应用的领域: 取值为:iat、search、video、poi、music、asr; + * | | iat:普通文本听写; + * | | search:热词搜索; + * | | video:视频音乐搜索; + * | | asr:关键词识别; + * | ------------- |----------------------------------------------------------- + * | vad_bos |前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms; + * | | engine指定iat识别默认值为5000; + * | | 其他情况默认值为 4000,范围 0-10000。 + * | ------------- |----------------------------------------------------------- + * | vad_eos |后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, + * | | 自动停止录音;单位:ms; + * | | sms 识别默认值为 1800; + * | | 其他默认值为 700,范围 0-10000。 + * | ------------- |----------------------------------------------------------- + * | sample_rate |采样率:目前支持的采样率设置有 16000 和 8000。 + * | ------------- |----------------------------------------------------------- + * | asr_ptt |标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。 + * | ------------- |----------------------------------------------------------- + * | result_type |返回结果的数据格式: 可设置为json,xml,plain,默认为json。 + * | ------------- |----------------------------------------------------------- + * | grammarID |识别的语法id: 只针对 domain 设置为”asr”的应用。 + * | ------------- |----------------------------------------------------------- + * | asr_audio_path|音频文件名: 设置此参数后,将会自动保存识别的录音文件。 + * | | 路径为Documents/(指定值)。 + * | | 不设置或者设置为nil,则不保存音频。 + * | ------------- |----------------------------------------------------------- + * | params |扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。 + * | ------------- |----------------------------------------------------------- + * + */ + +/*! + * 设置识别引擎的参数 + * + * 识别的引擎参数(key)取值如下:
+ * + * | 参数 | 描述 | + * |-----------------|-------------------------------------------------------| + * | domain | 应用的领域: 取值为:iat、search、video、poi、music、asr;
iat:普通文本听写;
search:热词搜索;
video:视频音乐搜索;
asr:关键词识别;| + * | vad_bos | 前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;
engine指定iat识别默认值为5000;
其他情况默认值为 4000,范围 0-10000。| + * | vad_eos | 后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音;单位:ms;
sms 识别默认值为 1800;
其他默认值为 700,范围 0-10000。| + * | sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。| + * | asr_ptt | 标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。| + * | result_type | 返回结果的数据格式: 可设置为json,xml,plain,默认为json。| + * | grammarID | 识别的语法id: 只针对 domain 设置为”asr”的应用。| + * | asr_audio_path | 音频文件名: 设置此参数后,将会自动保存识别的录音文件。
路径为Documents/(指定值)。
不设置或者设置为nil,则不保存音频。| + * | params | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。| + * + * @param value 参数对应的取值 + * @param key 识别引擎参数 + * + * @return 成功返回YES;失败返回NO + */ +-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; + +/*! + * 获取识别引擎参数 + * + * @param key 参数key + * + * @return 参数值 + */ +-(NSString*) parameterForKey:(NSString *)key; + +/*! + * 开始识别 + * + * @return 成功返回YES;失败返回NO + */ +- (BOOL)start; + +/*! + * 取消本次识别 + */ +- (void)cancel; + + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlyRecognizerViewDelegate.h b/Libs/iflyMSC.framework/Headers/IFlyRecognizerViewDelegate.h new file mode 100644 index 0000000..07c2035 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyRecognizerViewDelegate.h @@ -0,0 +1,36 @@ +// +// IFlyRecognizerDelegate.h +// MSC +// +// Created by admin on 13-4-16. +// Copyright (c) 2013年 iflytek. All rights reserved. +// + +#import + +@class IFlyRecognizerView; +@class IFlySpeechError; + +/*! + * 识别回调委托 + */ +@protocol IFlyRecognizerViewDelegate + +/*! + * 回调返回识别结果 + * + * @param resultArray 识别结果,NSArray的第一个元素为NSDictionary,NSDictionary的key为识别结果,sc为识别结果的置信度 + * @param isLast -[out] 是否最后一个结果 + */ +- (void)onResult:(NSArray *)resultArray isLast:(BOOL) isLast; + +/*! + * 识别结束回调 + * + * @param error 识别结束错误码 + */ +- (void)onError: (IFlySpeechError *) error; + +@optional + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlyResourceUtil.h b/Libs/iflyMSC.framework/Headers/IFlyResourceUtil.h new file mode 100644 index 0000000..c824a63 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyResourceUtil.h @@ -0,0 +1,90 @@ +// +// IFlyResourceUtil.h +// MSCDemo +// +// Created by admin on 14-6-20. +// Copyright (c) 2014年 iflytek. All rights reserved. +// + +#import + +/*! + * 资源工具类 + */ +@interface IFlyResourceUtil : NSObject + +/*! + * 获取通过MSPSetParam,启动引擎的标识 + * + * @return 通过MSPSetParam,启动引擎的标识 + */ ++(NSString*) ENGINE_START; + +/*! + * 获取通过MSPSetParam,销毁引擎的标识 + * + * @return 通过MSPSetParam,销毁引擎的标识 + */ ++(NSString*) ENGINE_DESTROY; + +/*! + * 获取识别引擎的资源目录标识 + * + * @return 识别引擎的资源目录标识 + */ ++(NSString*) ASR_RES_PATH; + +/*! + * 得到语法构建目录 + * + * @return 语法构建目录 + */ ++(NSString*) GRM_BUILD_PATH; + +/*! + * 获取合成引擎的资源目录标识,同时需要先传入voice_name方可生效 + * + * @return 合成引擎的资源目录标识,同时需要先传入voice_name方可生效 + */ ++(NSString*) TTS_RES_PATH; + +/*! + * 获取唤醒资源的资源目录标识 + * + * @return 唤醒资源的资源目录标识 + */ ++(NSString*) IVW_RES_PATH; + +/*! + * 语法类型 + * + * @return 语法类型 + */ ++(NSString*) GRAMMARTYPE; + +/*! + * 语记SDK专用参数,用于设置本地默认资源路径 + * + * @return 本地默认资源路径key字符串 + */ ++(NSString*) PLUS_LOCAL_DEFAULT_RES_PATH; + +#pragma mark - +/*! + * 资源存放路径 + * + * @param path 设置的路径 + * + * @return 资源目录 + */ ++(NSString*) generateResourcePath:(NSString *)path; + +/** + * 获得离线发音人对应的id + * + * @param voiceName 发音人名称 + * + * @return 有,发音人对应的id;无,返回nil + */ ++(NSString*) identifierForVoiceName:(NSString*)voiceName; +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlySetting.h b/Libs/iflyMSC.framework/Headers/IFlySetting.h new file mode 100644 index 0000000..2054da6 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySetting.h @@ -0,0 +1,88 @@ +// +// IFlySetting.h +// MSC +// +// Created by iflytek on 13-4-12. +// Copyright (c) 2013年 iflytek. All rights reserved. +// + +#import + +/*! + * 日志打印等级 + */ +typedef NS_OPTIONS(NSInteger, LOG_LEVEL){ + /*! + * 全部打印 + */ + LVL_ALL = -1, + /*! + * 高,异常分析需要的级别 + */ + LVL_DETAIL = 31, + /*! + * 中,打印基本日志信息 + */ + LVL_NORMAL = 15, + /*! + * 低,只打印主要日志信息 + */ + LVL_LOW = 7, + /*! + * 不打印 + */ + LVL_NONE = 0 +}; + +/*! + * 此接口为iflyMSC sdk 配置接口。
+ * 可以获取版本号,设置日志打印等级等 + */ +@interface IFlySetting : NSObject + +/*! + * 获取版本号 + * + * @return 版本号 + */ ++ (NSString *) getVersion; + +/*! + * 获取日志等级 + * + * @return 返回日志等级 + */ ++ (LOG_LEVEL) logLvl; + +/*! + * 是否打印控制台log
+ * 在软件发布时,建议关闭此log。 + * + * @param showLog -[in] YES,打印log;NO,不打印 + */ ++ (void) showLogcat:(BOOL) showLog; + +/*! + * 设置日志msc.log生成路径以及日志等级 + * + * | 日志打印等级 | 描述 | + * |------------------------|-----------------------------------| + * | LVL_ALL | 全部打印 | + * | LVL_DETAIL | 高,异常分析需要的级别 | + * | LVL_NORMAL | 中,打印基本日志信息 | + * | LVL_LOW | 低,只打印主要日志信息 | + * | LVL_NONE | 不打印 | + * + * @param level -[in] 日志打印等级 + */ ++ (void) setLogFile:(LOG_LEVEL) level; + +/*! + * 设置日志文件的路径
+ * 日志文件默认存放在Documents目录。 + * + * @param path -[in] 日志文件的全路径 + */ ++ (void) setLogFilePath:(NSString*) path; + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechConstant.h b/Libs/iflyMSC.framework/Headers/IFlySpeechConstant.h new file mode 100644 index 0000000..bdbb7fe --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechConstant.h @@ -0,0 +1,896 @@ +// +// IFlySpeechConstant.h +// MSCDemo +// +// Created by iflytek on 5/9/14. +// Copyright (c) 2014 iflytek. All rights reserved. +// + +#import + +/*! + * 公共常量类
+ * 主要定义参数的key value值 + */ +@interface IFlySpeechConstant : NSObject + + +#pragma mark - 通用参数key + +/*! + * 语音应用ID
+ * 通过开发者网站申请 + * + * @return 语音应用IDkey + */ ++(NSString*)APPID; + + +/*! + * 语言区域。 + * + * @return 语言区域key。 + */ ++(NSString*)ACCENT; + +/*! + * 语言区域。 + * + * @return 普通话value。 + */ ++(NSString*)ACCENT_MANDARIN; + +/*! + * 语言区域。 + * + * @return 河南话value。 + */ ++(NSString*)ACCENT_HENANESE; + +/*! + * 语言区域。 + * + * @return 四川话value。 + */ ++(NSString*)ACCENT_SICHUANESE; + +/*! + * 语言区域。 + * + * @return 粤语value。 + */ ++(NSString*)ACCENT_CANTONESE; + +/*! + * 语言
+ * 支持:zh_cn,zh_tw,en_us
+ * + * @return 语言key + */ ++(NSString*)LANGUAGE; + +/*! + * 语言 + * + * @return 中文value + */ ++(NSString*)LANGUAGE_CHINESE; + + +/*! + * 语言 + * + * @return 中文台湾value + */ ++(NSString*)LANGUAGE_CHINESE_TW; + +/*! + * 语言 + * + * @return 英文value + */ ++(NSString*)LANGUAGE_ENGLISH; + +/*! + * 返回结果的数据格式,可设置为json,xml,plain,默认为json。 + * + * @return 返回结果的数据格式key + */ ++(NSString*)RESULT_TYPE; + +/*! + * 应用领域。 + * + * @return 应用领域key + */ ++(NSString*)IFLY_DOMAIN; + +/*! + * 个性化数据上传类型 + * + * @return 个性化数据上传类型key + */ ++(NSString*)DATA_TYPE; + +/*! + * 语音输入超时时间
+ * 单位:ms,默认30000 + * + * @return 语音输入超时时间key + */ ++(NSString*)SPEECH_TIMEOUT; + +/*! + * 网络连接超时时间
+ * 单位:ms,默认20000 + * + * @return 网络连接超时时间key + */ ++(NSString*)NET_TIMEOUT; + +/*! + * 业务类型。 + * + * @return 业务类型key。 + */ ++(NSString*)SUBJECT; + +/*! + * 扩展参数。 + * + * @return 扩展参数key。 + */ ++(NSString*)PARAMS; + +/*! + * 加密参数 + * + * 支持类型:ssl 加密 tcp 非加密 默认:tcp
+ * 建议对安全性要求较高时使用ssl。 + * + * @return 加密参数key + */ ++(NSString*)PROT_TYPE; + +/*! + * ssl证书内容 + * + * @return ssl证书内容key + */ ++(NSString*)SSL_CERT; + +/*! + * 录音音量返回时间间隔。 + * + * @return 间隔key。 + */ ++(NSString*)POWER_CYCLE; + +/*! + * 合成、识别、唤醒、评测、声纹等业务采样率。 + * + * @return 合成及识别采样率key。 + */ ++(NSString*)SAMPLE_RATE; + +/*! + * 合成、识别、唤醒、评测、声纹等业务采样率。 + * + * @return 合成及识别采样率8K Value。 + */ ++(NSString*)SAMPLE_RATE_8K; + +/*! + * 合成、识别、唤醒、评测、声纹等业务采样率。 + * + * @return 合成及识别采样率16K Value。 + */ ++(NSString*)SAMPLE_RATE_16K; + +/*! + * 引擎类型。
+ * 可选:local,cloud,auto
+ * 默认:auto + * + * @return 引擎类型key。 + */ ++(NSString*)ENGINE_TYPE; + +/*! + * 本地识别引擎。 + * + * @return 本地识别引擎value。 + */ ++(NSString*)TYPE_LOCAL; + +/*! + * 云端识别引擎。 + * + * @return 云端识别引擎value。 + */ ++(NSString*)TYPE_CLOUD; + +/*! + * 混合识别引擎。 + * + * @return 混合识别引擎value。 + */ ++(NSString*)TYPE_MIX; + +/*! + * 引擎根据当前配置进行选择。 + * + * @return 引擎根据当前配置进行选择value。 + */ ++(NSString*)TYPE_AUTO; + +/*! + * 输入文本编码格式。 + * + * @return 编码格式key。 + */ ++(NSString*)TEXT_ENCODING; + +/*! + * 结果编码格式。 + * + * @return 结果编码格式key。 + */ ++(NSString*)RESULT_ENCODING; + +/*! + * 是否初始化播放器
+ * SDK内部播放器采用音频队列实现,有部分外部需求需要自定义音频队列,可以通过此开关控制
+ * 0:不初始化,非0或者参数为空:初始化,默认初始化 + * + * @return 是否初始化播放器参数key + */ ++(NSString*)PLAYER_INIT; + +/*! + * 是否播放器结束后发送deactive系统通知
+ * SDK内部播放器结束后可通过此开关发送deactive系统通知,使其他被中断的音频应用解除中断
+ * 0:不发送,非0或者参数为空:发送,默认发送 + * + * @return 是否播放器结束后发送deactive系统通知参数key + */ ++(NSString*)PLAYER_DEACTIVE; + +/** + * 是否初始化录音器
+ * SDK内部录音器采用音频队列实现,有部分外部需求需要自定义音频队列,可以通过此开关控制
+ * 0:不初始化,非0或者参数为空:初始化,默认初始化 + * + * @return 是否初始化录音器参数key + */ ++(NSString*)RECORDER_INIT; + +/** + * 是否录音器结束后发送deactive系统通知
+ * SDK内部录音器结束后可通过此开关发送deactive系统通知,使其他被中断的音频应用解除中断
+ * 0:不发送,非0或者参数为空:发送,默认发送 + * + * @return 是否录音器结束后发送deactive系统通知参数key + */ ++(NSString*)RECORDER_DEACTIVE; + + +#pragma mark - 合成相关设置key +/*! + * 语速
+ * 范围 (0~100) 默认值:50 + * + * @return 语速key + */ ++(NSString*)SPEED; + +/*! + * 音调
+ * 范围(0~100)默认值:50 + * + * @return 音调key + */ ++(NSString*)PITCH; + +/*! + * 合成录音保存路径 + * + * 注意:只需要设置文件名则可,会自动拼接到[IFlySetting setLogFilePath]接口设置的目录后 + * + * @return 合成录音保存路径key + */ ++(NSString*)TTS_AUDIO_PATH; + +/** + * 启用VAD功能 + * + * @return 启用VAD功能key + */ ++(NSString*)VAD_ENABLE; + +/*! + * VAD前端点超时
+ * 范围:0-10000(单位ms) + * + * @return VAD前端点超时key + */ ++(NSString*)VAD_BOS; + +/*! + * VAD后端点超时。
+ * 可选范围:0-10000(单位ms) + * + * @return VAD后端点超时key + */ ++(NSString*)VAD_EOS; + + +/* + * 云端支持如下发音人: + * 对于网络TTS的发音人角色,不同引擎类型支持的发音人不同,使用中请注意选择。 + * + * |--------|----------------| + * | 发音人 | 参数 | + * |--------|----------------| + * | 小燕 | xiaoyan | + * |--------|----------------| + * | 小宇 | xiaoyu | + * |--------|----------------| + * | 凯瑟琳 | catherine | + * |--------|----------------| + * | 亨利 | henry | + * |--------|----------------| + * | 玛丽 | vimary | + * |--------|----------------| + * | 小研 | vixy | + * |--------|----------------| + * | 小琪 | vixq | + * |--------|----------------| + * | 小峰 | vixf | + * |--------|----------------| + * | 小梅 | vixl | + * |--------|----------------| + * | 小莉 | vixq | + * |--------|----------------| + * | 小蓉 | vixr | + * |--------|----------------| + * | 小芸 | vixyun | + * |--------|----------------| + * | 小坤 | vixk | + * |--------|----------------| + * | 小强 | vixqa | + * |--------|----------------| + * | 小莹 | vixyin | + * |--------|----------------| + * | 小新 | vixx | + * |--------|----------------| + * | 楠楠 | vinn | + * |--------|----------------| + * | 老孙 | vils | + * |--------|----------------| + */ + +/*! + * 发音人 + * + * 云端支持如下发音人:
+ * 对于网络TTS的发音人角色,不同引擎类型支持的发音人不同,使用中请注意选择。
+ * + * | 发音人 | 参数 | + * |:--------:|:----------------:| + * | 小燕 | xiaoyan | + * | 小宇 | xiaoyu | + * | 凯瑟琳 | catherine | + * | 亨利 | henry | + * | 玛丽 | vimary | + * | 小研 | vixy | + * | 小琪 | vixq | + * | 小峰 | vixf | + * | 小梅 | vixl | + * | 小莉 | vixq | + * | 小蓉 | vixr | + * | 小芸 | vixyun | + * | 小坤 | vixk | + * | 小强 | vixqa | + * | 小莹 | vixyin | + * | 小新 | vixx | + * | 楠楠 | vinn | + * | 老孙 | vils | + * + * @return 发音人key + */ ++(NSString*)VOICE_NAME; + +/*! + * 发音人ID key。 + * + * @return 发音人ID key + */ ++(NSString*)VOICE_ID; + +/*! + * 发音人语种 key。 + * + * 参数值:0:Auto 1:中文 2英文 ,默认 0. + * + * @return 发音人ID key + */ ++(NSString*)VOICE_LANG; + +/*! + * 音量
+ * 范围(0~100) 默认值:50 + * + * @return 音量key + */ ++(NSString*)VOLUME ; + +/*! + * 合成音频播放缓冲时间
+ * 即缓冲多少秒音频后开始播放,如tts_buffer_time=1000;
+ * 默认缓冲1000ms毫秒后播放。 + * + * @return 合成音频播放缓冲时间缓冲时间key + */ ++(NSString*)TTS_BUFFER_TIME ; + + +/*! + * 合成数据是否即时返回 + * + * 是否需要数据回调,为1时,当合成一段音频会通过onEvent回调返回,直接合成结束;
+ * 设置为1为即时返回;0为非即时返回;默认值为0; + * + * @return 合成数据即时返回key + */ ++(NSString*)TTS_DATA_NOTIFY; + +/*! + * 预合成文本 + * + * @return 预合成文本参数key + */ ++(NSString*)NEXT_TEXT; + +/*! + * 是否需要打开MPPlayingInfocenter
+ * 是否需要初始化MPPlayerCenter的属性;0:需要初始化,1:不初始化 + * + * @return 是否需要打开MPPlayingInfocenter 参数key + */ ++(NSString*)MPPLAYINGINFOCENTER; + +#pragma mark - 识别、听写、语义相关设置key + +/*! + * 录音源
+ * 录音时的录音方式,默认为麦克风,设置为1;
+ * 如果需要外部送入音频,设置为-1,通过WriteAudio接口送入音频。 + * + * @return 录音源key + */ ++(NSString*)AUDIO_SOURCE; + +/*! + * 识别录音保存路径 + * + * @return 识别录音保存路径key + */ ++(NSString*) ASR_AUDIO_PATH; + +/*! + * 设置是否开启语义 + * + * @return 设置是否开启语义key + */ ++(NSString*)ASR_SCH; + +/*! + * 设置是否有标点符号 + * + * @return 设置是否有标点符号key + */ ++(NSString*)ASR_PTT; + +/*! + * ASR_PTT 参数值:设置带标点符号 + * + * @return 设置是有标点符号Value + */ ++(NSString*)ASR_PTT_HAVEDOT; + +/*! + * ASR_PTT 参数值:设置不带标点符号 + * + * @return 设置是无标点符号Value + */ ++(NSString*)ASR_PTT_NODOT; + +/*! + * 本地语法名称。
+ * 本地语法名称,对应云端的有CLOUD_GRAMMAR + * + * @return 本地语法名称key。 + */ ++(NSString*)LOCAL_GRAMMAR; + +/*! + * 云端语法ID。
+ * 云端编译语法返回的表示,早期版本使用GRAMMAR_ID,仍然兼容,但建议使用新的。 + * + * @return 云端语法ID key。 + */ ++(NSString*)CLOUD_GRAMMAR; + +/*! + * 语法类型 + * + * @return 语法类型key + */ ++(NSString*)GRAMMAR_TYPE; + +/*! + * 语法内容。 + * + * @return 语法内容key。 + */ ++(NSString*)GRAMMAR_CONTENT; + +/*! + * 字典内容。 + * + * @return 字典内容key。 + */ ++(NSString*)LEXICON_CONTENT; + +/*! + * 字典名字。 + * + * @return 字典名字key。 + */ ++(NSString*)LEXICON_NAME; + +/*! + * 语法名称列表。 + * + * @return 语法名称列表key。 + */ ++(NSString*)GRAMMAR_LIST; + +/*! + * 开放语义协议版本号。
+ * 如需使用请在http://osp.voicecloud.cn/上进行业务配置 + * + * @return 开放语义协议版本号key。 + */ ++(NSString*)NLP_VERSION; + +#pragma mark - 唤醒相关设置key +/*! + * 唤醒门限值。 + * + * @return 唤醒门限值key。 + */ ++(NSString*)IVW_THRESHOLD; + +/*! + * 唤醒服务类型。 + * + * @return 唤醒服务类型key。 + */ ++(NSString*)IVW_SST; + +/*! + * 唤醒+识别。 + * + * @return 唤醒+识别key。 + */ ++(NSString*)IVW_ONESHOT; + +/*! + * 唤醒工作方式
+ * 1:表示唤醒成功后继续录音,0:表示唤醒成功后停止录音。 + * + * @return 唤醒工作方式key + */ ++(NSString*)KEEP_ALIVE; + +#pragma mark - 评测相关设置key +/*! + * 评测类型
+ * 可选值:read_syllable(英文评测不支持):单字;read_word:词语;read_sentence:句子;read_chapter(待开放):篇章。 + * + * @return 评测类型 key + */ ++(NSString*)ISE_CATEGORY; + +/*! + * 评测结果等级
+ * 可选值:complete:完整 ;plain:简单 + * + * @return 评测结果等级 key + */ ++(NSString*)ISE_RESULT_LEVEL; + +/*! + * 评测结果格式
+ * 可选值:xml;plain + * + * @return 评测结果格式 key + */ ++(NSString*)ISE_RESULT_TYPE; + +/*! + * 评测录音保存路径 + * + * @return 评测录音保存路径key + */ ++(NSString*) ISE_AUDIO_PATH; + + +/*! + * 朗读跟踪,只对句子和篇章有效
+ * 可选值:enable:开启;disable:关闭。 + * + * @return 朗读跟踪 key + */ ++(NSString*)ISE_AUTO_TRACKING; + +/*! + * 跟踪模式
+ * 可选值:easy:简单;hard:复杂。 + * + * @return 跟踪模式 key + */ ++(NSString*)ISE_TRACK_TYPE; + +#pragma mark - 语记SDK业务key +/*! + * 本地所有资源 + * + * @return 本地所有资源key + */ ++ (NSString *)PLUS_LOCAL_ALL; + +/*! + * 本地合成资源 + * + * @return 本地合成资源key + */ ++ (NSString *)PLUS_LOCAL_TTS; + +/*! + * 本地识别资源 + * + * @return 本地识别资源key + */ ++ (NSString *)PLUS_LOCAL_ASR; + +/*! + * 本地唤醒资源 + * + * @return 本地唤醒资源key + */ ++ (NSString *)PLUS_LOCAL_IVW; + +#pragma mark - 身份验证业务key + +/*! + * auth_id
+ * 用于用户注册和登录、查询、删除等业务时标识用户身份 + * + * @return 用户标识 + */ ++ (NSString*)MFV_AUTH_ID; + +/*! + * 请求业务类型,可选值:mfv(默认,融合验证),ivp(声纹),ifr(人脸) + * + * @return 请求业务类型key + */ ++ (NSString*)MFV_SUB; + +/*! + * 会话类型,不同sub有不同的sst取值。
+ * ifr:enroll,verify,identify,reenroll,query,delete
+ * ivp:enroll(train),verify,reenroll,query,delete,download + * + * @return 会话类型key + */ ++ (NSString*)MFV_SST; + +/*! + * 融合验证模式,仅在融合验证场景下使用。可选值:sin(单一生物特征数据验证),mix(混合生物特征数据验证),agi(灵活生物特征数据验证) + * + * @return 融合验证模式key + */ ++ (NSString*)MFV_VCM; + +/*! + * 特征场景,用来说明本次验证将涉及的业务。可选值:ivp,ifr,ivp|ifr + * + * @return 特征场景 key + */ ++ (NSString*)MFV_SCENES; + +/*! + * 确认周期(affirmance cycle,单位:s),用户设置的确认超时时间(生命周期),仅在灵活融合验证场景下使用 + * + * @return 确认周期key + */ ++ (NSString*)MFV_AFC; + +/*! + * 数据保存路径 + * + * @return 数据保存路径key + */ ++ (NSString*)MFV_DATA_PATH; + +/*! + * 训练次数:取值2~9.无默认值,必须明确指定。 + * + * @return 训练次数key + */ ++ (NSString*)MFV_RGN; + +/*! + * 声纹确认门限值,验证得分>=tsd验证通过,否则验证失败(该参数目前不支持,作为保留参数。)却只范围:0~100. + * + * @return 声纹确认门限值key + */ ++ (NSString*)MFV_TSD; + +/*! + * 密码文本。从服务端下载,比如数字密码所需要的数字串。 + * + * @return 密码文本key + */ ++ (NSString*)MFV_PTXT; + +/*! + * 密码类型。取值:1(文本密码),2(自由说),3(数字密码). + * + * @return 密码类型key + */ ++ (NSString*)MFV_PWDT; + +/*! + * 取消注册。取值:0(不取消,即不生效),1(取消本次注册). + * + * @return 取消注册key + */ ++ (NSString*)MFV_FIN; + +/*! + * 等待超时时间:描述客户端等待结果的超时时间 + * + * @return 等待超时时间:key + */ ++ (NSString*)MFV_WTT; + +/*! + * 数据格式
+ * 声纹为音频采样率支持:16000和8000;人脸为图片格式,支持jpg和gif + * + * @return 数据格式key + */ ++ (NSString*)MFV_DATA_FORMAT; + +/*! + * 数据压缩编码
+ * 声纹为;人脸支持raw,不对图片压缩 + * + * @return 数据压缩编码key + */ ++ (NSString*)MFV_DATA_ENCODING; + +#pragma mark - 人脸业务key + +//1. sub 取值: wfr 用途: 用于区分业务类型,web访问方式中,nginx配置不用使用,但是在结构化日志和染色日志记录中使用。 +//2. sst 取值: reg、verify、detect、align 用途: 指定本路会话是属于何种性质 +// + 人脸图像注册(reg):上传图像,验证图像的有效性,然后存储起来,作为数据源。 +// + 人脸图像验证(verify):通过与指定源图像比较,验证人脸相似性。 +// + 人脸图像检测(detect):能够检测出不同姿态方位的人脸在图中的位置。 +// + 人脸图像聚焦(align):在给定人脸框下自动标定出两眼、鼻尖、嘴角的坐标。 +//3. aue 取值: raw 用途: 图像压缩格式,现在引擎不支持图像压缩,aue只能取值raw +//4. pset 取值: 整数 用途: 人脸识别验证阈值,取值可以是负数也可以是整数。 +//5. skip 取值: true/false 用途: 后台图片处理是否进行过滤。true表示不过滤,false表示过滤 +//6. gid 取值: *********** 用途: 图像模型id,如:4a6c124ed6b78436ee5aac4563f13eb5 +//7. appid 取值:用户申请的appid 用途: 验证用户 + + +/*! + * sub 默认值:wfr
+ * 用于区分业务类型,web访问方式中,nginx配置不用使用,但是在结构化日志和染色日志记录中使用。 + */ ++ (NSString*) FACE_SUB; + +/*! + * WFR
+ * sub参数的默认值 + */ ++ (NSString*) FACE_WFR; + +/*! + * sst
+ * 指定本路会话是属于何种性质 + */ ++ (NSString*) FACE_SST; + +/*! + * REG
+ * 人脸图像注册(reg):上传图像,验证图像的有效性,然后存储起来,作为数据源。 + */ ++ (NSString*) FACE_REG; + +/*! + * VERIFY
+ * 人脸图像验证(verify):通过与指定源图像比较,验证人脸相似性。 + */ ++ (NSString*) FACE_VERIFY; + +/*! + * DETECT
+ * 人脸图像检测(detect):能够检测出不同姿态方位的人脸在图中的位置。 + */ ++ (NSString*) FACE_DETECT; + +/*! + * ALIGN
+ * 人脸图像聚焦(align):在给定人脸框下自动标定出两眼、鼻尖、嘴角的坐标。 + */ ++ (NSString*) FACE_ALIGN; + +/*! + * ATTR
+ * 面部属性识别(attr):对面部属性进行识别:例如秃顶、刘海、大嘴、模糊、眼镜等。 + */ ++ (NSString*) FACE_ATTR; + + +/*! + * AUE
+ * 图像压缩格式,现在引擎不支持图像压缩,aue只能取值raw + */ ++ (NSString*) FACE_AUE; + +/*! + * RAW
+ * AUE参数的值 + */ ++ (NSString*) FACE_RAW; + +/*! + * PSET
+ * 人脸识别验证阈值,取值可以是负数也可以是整数。 + */ ++ (NSString*) FACE_PSET; + +/*! + * SKIP
+ * 后台图片处理是否进行过滤。true表示不过滤,false表示过滤,传入字符串@“true”或@“false” + */ ++ (NSString*) FACE_SKIP; + +/*! + * GID
+ * 图像模型id,如:4a6c124ed6b78436ee5aac4563f13eb5 + */ ++ (NSString*) FACE_GID; + +/*! + * auth_id
+ * 用于用户注册和登录、查询、删除等业务时标识用户身份 + * + * @return 用户标识 + */ ++ (NSString*)FACE_AUTH_ID; + +/*! + * DVC
+ * 用户设备编号,用于验证用户 + */ ++ (NSString*) FACE_DVC; + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechError.h b/Libs/iflyMSC.framework/Headers/IFlySpeechError.h new file mode 100644 index 0000000..3db75e6 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechError.h @@ -0,0 +1,58 @@ +// +// IFlySpeechError.h +// MSC +// +// Created by iflytek on 13-3-19. +// Copyright (c) 2013年 iflytek. All rights reserved. +// + +#ifndef __IFlySpeechError__ +#define __IFlySpeechError__ + +#import + +/*! + * 错误描述类 + */ +@interface IFlySpeechError : NSObject + +/*! + * 错误码 + */ +@property(nonatomic,assign) int errorCode; + +/*! + * 错误码类型 + */ +@property(nonatomic,assign) int errorType; + +/*! + * 错误描述 + */ +@property(nonatomic,retain) NSString* errorDesc; + +/*! + * 初始化 + * + * @param errorCode -[in] 错误码 + * + * @return IFlySpeechError对象 + */ ++ (instancetype) initWithError:(int) errorCode; + +/*! + * 获取错误码 + * + * @return 错误码 + */ +-(int) errorCode; + +/*! + * 获取错误描述 + * + * @return 错误描述 + */ +- (NSString *) errorDesc; + +@end +#endif diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechEvaluator.h b/Libs/iflyMSC.framework/Headers/IFlySpeechEvaluator.h new file mode 100644 index 0000000..81e6026 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechEvaluator.h @@ -0,0 +1,101 @@ +// +// IFlySpeechEvaluator.h +// msc +// +// Created by jianzhang on 14-1-13 +// Copyright (c) 2013年 iflytek. All rights reserved. +// + + +#import +#import "IFlySpeechEvaluatorDelegate.h" + +#define IFLY_AUDIO_SOURCE_MIC @"1" +#define IFLY_AUDIO_SOURCE_STREAM @"-1" + +/*! + * 语音评测类 + */ +@interface IFlySpeechEvaluator : NSObject + +/*! + * 设置委托对象 + */ +@property (assign) id delegate; + +/*! + * 返回评测对象的单例 + * + * @return 别对象的单例 + */ ++ (instancetype)sharedInstance; + +/*! + * 销毁评测对象。 + * + * @return 成功返回YES,失败返回NO。 + */ +- (BOOL)destroy; + +/*! + * 设置评测引擎的参数 + * + * @param value 评测引擎参数值 + * @param key 评测引擎参数 + * + * @return 设置的参数和取值正确返回YES,失败返回NO + */ +- (BOOL)setParameter:(NSString *)value forKey:(NSString *)key; + + +/*! + * 获得评测引擎的参数 + * + * @param key 评测引擎参数 + * + * @return key对应的参数值 + */ +- (NSString*)parameterForKey:(NSString *)key; + +/*! + * 开始评测
+ * 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错 + * + * @param data 评测的试题 + * @param params 评测的参数 + * @return 成功返回YES,失败返回NO + */ +- (BOOL)startListening:(NSData *)data params:(NSString *)params; + +/*! + * 停止录音
+ * 调用此函数会停止录音,并开始进行语音识别 + */ +- (void)stopListening; + +/*! + * 取消本次会话 + */ +- (void)cancel; + +@end + +/*! + * 音频流评测
+ * 音频流评测可以将文件分段写入 + */ +@interface IFlySpeechEvaluator(IFlyStreamISERecognizer) + +/*! + * 写入音频流 + * + * @param audioData 音频数据 + * + * @return 写入成功返回YES,写入失败返回NO + */ +- (BOOL) writeAudio:(NSData *) audioData; + +@end + + + diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechEvaluatorDelegate.h b/Libs/iflyMSC.framework/Headers/IFlySpeechEvaluatorDelegate.h new file mode 100644 index 0000000..76867e8 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechEvaluatorDelegate.h @@ -0,0 +1,64 @@ +// +// IFlySpeechEvaluatorDelegate.h +// msc +// +// Created by admin on 13-6-19. +// Copyright (c) 2013年 iflytek. All rights reserved. +// + + +#import + +@class IFlySpeechError; + +/*! + * 评测协议 + */ +@protocol IFlySpeechEvaluatorDelegate + +/*! + * 音量和数据回调 + * + * @param volume 音量 + * @param buffer 音频数据 + */ +- (void)onVolumeChanged:(int)volume buffer:(NSData *)buffer; + +/*! + * 开始录音回调
+ * 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。如果发生错误则回调onError:函数 + */ +- (void)onBeginOfSpeech; + +/*! + * 停止录音回调
+ * 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。
+ * 如果发生错误则回调onError:函数 + */ +- (void)onEndOfSpeech; + +/*! + * 正在取消 + */ +- (void)onCancel; + +/*! + * 评测错误回调 + * + * 在进行语音评测过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理.当errorCode没有错误时,表示此次会话正常结束,否则,表示此次会话有错误发生。特别的当调用`cancel`函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函数之前如果重新调用了`startListenging`函数则会报错误。 + * + * @param errorCode 错误描述类 + */ +- (void)onError:(IFlySpeechError *)errorCode; + +/*! + * 评测结果回调
+ * 在评测过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。 + * + * @param results -[out] 评测结果。 + * @param isLast -[out] 是否最后一条结果 + */ +- (void)onResults:(NSData *)results isLast:(BOOL)isLast; + +@end + diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechEvent.h b/Libs/iflyMSC.framework/Headers/IFlySpeechEvent.h new file mode 100644 index 0000000..9b4a863 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechEvent.h @@ -0,0 +1,151 @@ +// +// IFlySpeechEvent.h +// MSCDemo +// +// Created by admin on 14-8-12. +// Copyright (c) 2014年 iflytek. All rights reserved. +// + +#import + +/*! + * 事件类型 + */ +typedef NS_ENUM(NSUInteger,IFlySpeechEventType){ + /*! + * 网络状态消息
+ * 在消息到达时,可通过onEvent的第2个参数arg1,获取当前网络连接状态值 + */ + IFlySpeechEventTypeNetPref = 10001, + /*! + * 转写音频文件消息
+ * 在录音模式下,成功创建音频文件时返回。可通过onEvent第4个参数data,指定Key为[IFlySpeechConstant IST_AUDIO_PATH],获取音频文件绝对路径.或通过[IFlySpeechTranscripter getParameter:[IFlySpeechConstant IST_AUDIO_PATH]],获取音频文件绝对路径. + */ + IFlySpeechEventTypeISTAudioFile = 10004, + /*! + * 转写已上传字节消息
+ * 在消息到达时,通过onEvent的第二个参数arg1,获取已确认上传到服务器的字节数.若当前音频源为非写音频模式,还可通过onEvent + * 的第三个参数arg2,获取当前所有音频的字节大小.录音模式时,由于所有音频字节大小会变。当停止音频输入后(等待录音时间超时[IFlySpeechConstant SPEECH_TIMEOUT],或调用[IFlySpeechTranscripter stopTranscripting]),且服务器收到所有音频时,第四个参数data,将包含完成标记的布尔值(true),可通过data调用指定KEY为KCIFlySpeechEventKeyISTUploadComplete获取。此消息可能多次返回. + */ + IFlySpeechEventTypeISTUploadBytes = 10006, + + /*! + * 转写缓存剩余
+ * 此消息仅在音频源为-1时需要关注,在调用[IFlySpeechTranscripter writeAudio]写音频时,应该关注此事件。
+ * 此事件在调用写音频接口、及音频最后被写入底库库时分别回调一次。当事件回调时,通过onEvent的第二个参数arg1,获取当前剩余的缓存大小,当缓存小于要写入的音频时,应该先暂停写音频数据,直到下次缓存大小大于要写入的音频时.最大缓存为128KByte。 + */ + IFlySpeechEventTypeISTCacheLeft = 10007, + + /*! + * 转写结果等待时间消息
+ * 在消息到达时,通过 onEvent的第二个参数arg1,获取当前结果需要的时间.
+ * 此消息可能多次返回,返回时间不定,且不一定会返回. + */ + IFlySpeechEventTypeISTResultTime= 10008, + + /*! + * 转写转写音频同步ID消息
+ * 在消息到达时,通过 onEvent的第二个参数arg1,获取当前写音频同步ID.
+ * 此消息可能多次返回. + */ + IFlySpeechEventTypeISTSyncID= 10009, + + /*! + * 会话开始消息
+ * 在会话开始成功后返回 + */ + IFlySpeechEventTypeSessionBegin = 10010, + + /*! + * 会话结束消息
+ * 在会话结束前返回 + */ + IFlySpeechEventTypeSessionEnd = 10011, + + /*! + * 音量消息,在得到音量时抛出,暂时只有身份验证的声纹业务用到 + */ + IFlySpeechEventTypeVolume = 10012, + + /*! + * VAD后端点消息,在检测到VAD后端点时抛出,暂时只有身份验证的声纹业务用到 + */ + IFlySpeechEventTypeVadEOS = 10013, + + /*! + * 服务端会话id
+ * 在消息到达时,可通过onEvent的第4个参数data(字典类型),指定key KCIFlySpeechEventKeySessionID,获取服务端会话id. + */ + IFlySpeechEventTypeSessionID = 20001, + + /*! + * TTS合成数据消息
+ * -(void)onEvent:(int)eventType arg0:(int)arg0 arg1:(int)arg1 data:(NSData *)eventData
+ * 其中eventData中包含数据 + * + */ + IFlySpeechEventTypeTTSBuffer = 21001, + + /*! + * 通知cancel方法被调用的回调 + * + */ + IFlySpeechEventTypeTTSCancel = 21002, + + /*! + * IVW onshot 听写 or 识别结果
+ * 在消息到达时,第2个参数arg1包含是否为最后一个结果:1为是,0为否;
+ * 第4个参数data中包含数据,通过指定KEY为KCIFlySpeechEventKeyIVWResult获取. + */ + IFlySpeechEventTypeIVWResult = 22001, + + /*! + * 开始处理录音数据 + * + */ + IFlySpeechEventTypeSpeechStart= 22002, + + /*! + * 录音停止 + * + */ + IFlySpeechEventTypeRecordStop= 22003, + + /*! + * 服务端音频url
+ * 在消息到达时,第4个参数data,包含数据,通过指定KEY为KCIFlySpeechEventKeyAudioUrl获取. + */ + IFlySpeechEventTypeAudioUrl = 23001, + + /*! + * 变声数据结果返回
+ * 设置voice_change参数获取结果. + */ + IFlySpeechEventTypeVoiceChangeResult = 24001 + +}; + +#pragma mark - keys for event data + +/** + * 转写是否已上传完标记key + */ +extern NSString* const KCIFlySpeechEventKeyISTUploadComplete; + +/** + * 服务端会话key + */ +extern NSString* const KCIFlySpeechEventKeySessionID; +/** + * TTS取音频数据key + */ +extern NSString* const KCIFlySpeechEventKeyTTSBuffer; +/** + * IVW oneshot 听写 or 识别结果 key + */ +extern NSString* const KCIFlySpeechEventKeyIVWResult; +/** + * 服务端音频url key + */ +extern NSString* const KCIFlySpeechEventKeyAudioUrl; + diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechRecognizer.h b/Libs/iflyMSC.framework/Headers/IFlySpeechRecognizer.h new file mode 100644 index 0000000..212da4f --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechRecognizer.h @@ -0,0 +1,175 @@ +// +// IFlySpeechRecognizer.h +// MSC +// +// Created by iflytek on 13-3-19. +// Copyright (c) 2013年 iflytek. All rights reserved. +// + +#import + +#import "IFlySpeechRecognizerDelegate.h" + +#define IFLY_AUDIO_SOURCE_MIC @"1" +#define IFLY_AUDIO_SOURCE_STREAM @"-1" + +/*! + * 语音识别类
+ * 此类现在设计为单例,你在使用中只需要创建此对象,不能调用release/dealloc函数去释放此对象。所有关于语音识别的操作都在此类中。 + */ +@interface IFlySpeechRecognizer : NSObject + +/*! + * 设置委托对象 + */ +@property(nonatomic,assign) id delegate ; + +/*! + * 返回识别对象的单例 + * + * @return 识别对象的单例 + */ ++ (instancetype) sharedInstance; + +/*! + * 销毁识别对象。 + * + * @return 成功返回YES,失败返回NO + */ +- (BOOL) destroy; + +/* + * | ------------- |----------------------------------------------------------- + * | 参数 | 描述 + * | ------------- |----------------------------------------------------------- + * | domain |应用的领域: 取值为:iat、search、video、poi、music、asr; + * | | iat:普通文本听写; + * | | search:热词搜索; + * | | video:视频音乐搜索; + * | | asr:关键词识别; + * | ------------- |----------------------------------------------------------- + * | vad_bos |前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms; + * | | engine指定iat识别默认值为5000; + * | | 其他情况默认值为 4000,范围 0-10000。 + * | ------------- |----------------------------------------------------------- + * | vad_eos |后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, + * | | 自动停止录音;单位:ms; + * | | sms 识别默认值为 1800; + * | | 其他默认值为 700,范围 0-10000。 + * | ------------- |----------------------------------------------------------- + * | sample_rate |采样率:目前支持的采样率设置有 16000 和 8000。 + * | ------------- |----------------------------------------------------------- + * | asr_ptt |标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。 + * | ------------- |----------------------------------------------------------- + * | result_type |返回结果的数据格式: 可设置为json,xml,plain,默认为json。 + * | ------------- |----------------------------------------------------------- + * | grammarID |识别的语法id: 只针对 domain 设置为”asr”的应用。 + * | ------------- |----------------------------------------------------------- + * | asr_audio_path|音频文件名: 设置此参数后,将会自动保存识别的录音文件。 + * | | 路径为Documents/(指定值)。 + * | | 不设置或者设置为nil,则不保存音频。 + * | ------------- |----------------------------------------------------------- + * | params |扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。 + * | ------------- |----------------------------------------------------------- + * + */ + +/*! + * 设置识别引擎的参数 + * + * 识别的引擎参数(key)取值如下: + * + * | 参数 | 描述 | + * |-----------------|-------------------------------------------------------| + * | domain | 应用的领域: 取值为:iat、search、video、poi、music、asr;
iat:普通文本听写;
search:热词搜索;
video:视频音乐搜索;
asr:关键词识别;| + * | vad_bos | 前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;
engine指定iat识别默认值为5000;
其他情况默认值为 4000,范围 0-10000。| + * | vad_eos | 后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音;单位:ms;
sms 识别默认值为 1800;
其他默认值为 700,范围 0-10000。| + * | sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。| + * | asr_ptt | 标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。| + * | result_type | 返回结果的数据格式: 可设置为json,xml,plain,默认为json。| + * | grammarID | 识别的语法id: 只针对 domain 设置为”asr”的应用。| + * | asr_audio_path | 音频文件名: 设置此参数后,将会自动保存识别的录音文件。
路径为Documents/(指定值)。
不设置或者设置为nil,则不保存音频。| + * | params | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。| + * + * @param value 参数对应的取值 + * @param key 识别引擎参数 + * + * @return 成功返回YES;失败返回NO + */ +-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; + +/*! + * 获取识别引擎参数 + * + * @param key 参数key + * + * @return 参数值 + */ +-(NSString*) parameterForKey:(NSString *)key; + +/*! + * 开始识别 + * + * 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话,请在onError回调返回后请求下一路回话。 + * + * @return 成功返回YES;失败返回NO + */ +- (BOOL) startListening; + +/*! + * 停止录音
+ * 调用此函数会停止录音,并开始进行语音识别 + */ +- (void) stopListening; + +/*! + * 取消本次会话 + */ +- (void) cancel; + +/*! + * 上传语法 + * + * @param completionHandler 上传语法完成回调 + * @param grammarType 语法类型 + * @param grammarContent 语法内容 + * + * @return 错误码 + */ +- (int) buildGrammarCompletionHandler:(IFlyOnBuildFinishCompletionHandler)completionHandler + grammarType:(NSString *)grammarType + grammarContent:(NSString *)grammarContent; + +/*! + * 是否正在识别 + */ +@property (nonatomic, readonly) BOOL isListening; + +@end + +/*! + * 音频流识别
+ * 音频流识别可以将文件分段写入 + */ +@interface IFlySpeechRecognizer(IFlyStreamRecognizer) + +/*! +* 写入音频流 +* +* 此方法的使用示例如下: +*
[_iFlySpeechRecognizer setParameter:@"-1" value:@"audio_source"];
+* [_iFlySpeechRecognizer startListening];
+* [_iFlySpeechRecognizer writeAudio:audioData1];
+* [_iFlySpeechRecognizer writeAudio:audioData2];
+* ...
+* [_iFlySpeechRecognizer stopListening];
+* 
+* +* @param audioData 音频数据 +* +* @return 写入成功返回YES,写入失败返回NO +*/ +- (BOOL) writeAudio:(NSData *) audioData; + +@end + diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechRecognizerDelegate.h b/Libs/iflyMSC.framework/Headers/IFlySpeechRecognizerDelegate.h new file mode 100644 index 0000000..0f5cf47 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechRecognizerDelegate.h @@ -0,0 +1,111 @@ +// +// IFlySpeechRecognizerDelegate.h +// MSC +// +// Created by ypzhao on 13-3-27. +// Copyright (c) 2013年 iflytek. All rights reserved. +// + +#import + +@class IFlySpeechError; + +/*! + * 构建语法结束回调 + * + * @param grammarId 语法id + * @param error 错误描述 + */ +typedef void(^IFlyOnBuildFinishCompletionHandler)(NSString* grammarId,IFlySpeechError * error); + + +/*! + * 语音识别协议
+ * 在使用语音识别时,需要实现这个协议中的方法. + */ +@protocol IFlySpeechRecognizerDelegate + +@required + +/*! + * 识别结果回调 + * + * 在进行语音识别过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理,当errorCode没有错误时,表示此次会话正常结束;否则,表示此次会话有错误发生。特别的当调用`cancel`函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函数之前如果重新调用了`startListenging`函数则会报错误。 + * + * @param errorCode 错误描述 + */ +- (void) onError:(IFlySpeechError *) errorCode; + +/*! + * 识别结果回调 + * + * 在识别过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。
+ * 使用results的示例如下: + *

+ *  - (void) onResults:(NSArray *) results{
+ *     NSMutableString *result = [[NSMutableString alloc] init];
+ *     NSDictionary *dic = [results objectAtIndex:0];
+ *     for (NSString *key in dic){
+ *        [result appendFormat:@"%@",key];//合并结果
+ *     }
+ *   }
+ *  
+ * + * @param results -[out] 识别结果,NSArray的第一个元素为NSDictionary,NSDictionary的key为识别结果,sc为识别结果的置信度。 + * @param isLast -[out] 是否最后一个结果 + */ +- (void) onResults:(NSArray *) results isLast:(BOOL)isLast; + +@optional + +/*! + * 音量变化回调
+ * 在录音过程中,回调音频的音量。 + * + * @param volume -[out] 音量,范围从0-30 + */ +- (void) onVolumeChanged: (int)volume; + +/*! + * 开始录音回调
+ * 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。
+ * 如果发生错误则回调onError:函数 + */ +- (void) onBeginOfSpeech; + +/*! + * 停止录音回调
+ * 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。
+ * 如果发生错误则回调onError:函数 + */ +- (void) onEndOfSpeech; + +/*! + * 取消识别回调
+ * 当调用了`cancel`函数之后,会回调此函数,在调用了cancel函数和回调onError之前会有一个
+ * 短暂时间,您可以在此函数中实现对这段时间的界面显示。 + */ +- (void) onCancel; + +#ifdef _EDUCATION_ +/*! + * 返回音频Key + * + * @param key 音频Key + */ +- (void) getAudioKey:(NSString *)key; + +#endif + +/*! + * 扩展事件回调
+ * 根据事件类型返回额外的数据 + * + * @param eventType 事件类型,具体参见IFlySpeechEventType的IFlySpeechEventTypeVoiceChangeResult枚举。 + * @param arg0 arg0 + * @param arg1 arg1 + * @param eventData 事件数据 + */ +- (void) onEvent:(int)eventType arg0:(int)arg0 arg1:(int)arg1 data:(NSData *)eventData; + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechSynthesizer.h b/Libs/iflyMSC.framework/Headers/IFlySpeechSynthesizer.h new file mode 100644 index 0000000..e7d220c --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechSynthesizer.h @@ -0,0 +1,123 @@ +// +// IFlySpeechSynthesizer.h +// MSC +// +// Created by 侯效林 on 16-4-22. +// Copyright (c) 2016年 iflytek. All rights reserved. +// + +#import +#import "IFlySpeechSynthesizerDelegate.h" + + +/*! + * 语音合成 + */ +@interface IFlySpeechSynthesizer : NSObject + +/*! + * 设置识别的委托对象 + */ +@property(nonatomic,assign) id delegate; + +/*! + * 返回合成对象的单例 + * + * @return 合成对象 + */ ++ (instancetype) sharedInstance; + +/*! + * 销毁合成对象。 + * + * @return 成功返回YES,失败返回NO. + */ ++ (BOOL) destroy; + +/* + * | ------------- |----------------------------------------------------------- + * | 参数 | 描述 + * | ------------- |----------------------------------------------------------- + * | speed |合成语速,取值范围 0~100 + * | ------------- |----------------------------------------------------------- + * | volume |合成的音量,取值范围 0~100 + * | ------------- |----------------------------------------------------------- + * | voice_name |默认为”xiaoyan”;可以设置的参数列表可参考个性化发音人列表 + * | ------------- |----------------------------------------------------------- + * | sample_rate |采样率:目前支持的采样率设置有 16000 和 8000。 + * | ------------- |----------------------------------------------------------- + * | tts_audio_path|音频文件名 设置此参数后,将会自动保存合成的音频文件。 + * | |路径为Documents/(指定值)。不设置或者设置为nil,则不保存音频。 + * | ------------- |----------------------------------------------------------- + * | params |扩展参数: 对于一些特殊的参数可在此设置。 + * | ------------- |----------------------------------------------------------- + * + */ + +/*! + * 设置合成参数 + * + * | 参数 | 描述 | + * |-----------------|----------------------------------------------------| + * | speed | 合成语速,取值范围 0~100 | + * | volume | 合成的音量,取值范围 0~100 | + * | voice_name | 默认为”xiaoyan”;可以设置的参数列表可参考个性化发音人列表 | + * | sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。 | + * | tts_audio_path | 音频文件名 设置此参数后,将会自动保存合成的音频文件。
路径为Documents/(指定值)。不设置或者设置为nil,则不保存音频。| + * | params | 扩展参数: 对于一些特殊的参数可在此设置。 | + * + * @param value 参数取值 + * @param key 合成参数 + * + * @return 设置成功返回YES,失败返回NO + */ +-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; + +/*! + * 获取合成参数 + * + * @param key 参数key + * + * @return 参数值 + */ +-(NSString*) parameterForKey:(NSString *)key; + +/*! + * 开始合成(播放)
+ * 调用此函数进行合成,如果发生错误会回调错误`onCompleted` + * + * @param text 合成的文本,最大的字节数为1k + */ +- (void) startSpeaking:(NSString *)text; + +/*! + * 开始合成(不播放)
+ * 调用此函数进行合成,如果发生错误会回调错误`onCompleted` + * + * @param text 合成的文本,最大的字节数为1k + * @param uri 合成后,保存再本地的音频路径 + */ +-(void)synthesize:(NSString *)text toUri:(NSString*)uri; + +/*! + * 暂停播放
+ * 暂停播放之后,合成不会暂停,仍会继续,如果发生错误则会回调错误`onCompleted` + */ +- (void) pauseSpeaking; + +/*! + * 恢复播放 + */ +- (void) resumeSpeaking; + +/*! + * 停止播放并停止合成 + */ +- (void) stopSpeaking; + +/*! + * 是否正在播放 + */ +@property (nonatomic, readonly) BOOL isSpeaking; + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechSynthesizerDelegate.h b/Libs/iflyMSC.framework/Headers/IFlySpeechSynthesizerDelegate.h new file mode 100644 index 0000000..a2bca63 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechSynthesizerDelegate.h @@ -0,0 +1,81 @@ +// +// IFlySpeechSynthesizerDelegate.h +// MSC +// +// Created by ypzhao on 13-3-20. +// Copyright (c) 2013年 iflytek. All rights reserved. +// + +#import +#import "IFlySpeechEvent.h" + +@class IFlySpeechError; + +/*! + * 语音合成回调 + */ +@protocol IFlySpeechSynthesizerDelegate + +@required + +/*! + * 结束回调
+ * 当整个合成结束之后会回调此函数 + * + * @param error 错误码 + */ +- (void) onCompleted:(IFlySpeechError*) error; + +@optional + +/*! + * 开始合成回调 + */ +- (void) onSpeakBegin; + +/*! + * 缓冲进度回调 + * + * @param progress 缓冲进度,0-100 + * @param msg 附件信息,此版本为nil + */ +- (void) onBufferProgress:(int) progress message:(NSString *)msg; + +/*! + * 播放进度回调 + * + * @param progress 当前播放进度,0-100 + * @param beginPos 当前播放文本的起始位置,0-100 + * @param endPos 当前播放文本的结束位置,0-100 + */ +- (void) onSpeakProgress:(int) progress beginPos:(int)beginPos endPos:(int)endPos; + +/*! + * 暂停播放回调 + */ +- (void) onSpeakPaused; + +/*! + * 恢复播放回调
+ * 注意:此回调方法SDK内部不执行,播放恢复全部在onSpeakBegin中执行 + */ +- (void) onSpeakResumed; + +/*! + * 正在取消回调
+ * 注意:此回调方法SDK内部不执行 + */ +- (void) onSpeakCancel; + +/*! + * 扩展事件回调
+ * 根据事件类型返回额外的数据 + * + * @param eventType 事件类型,具体参见IFlySpeechEventType枚举。目前只支持EVENT_TTS_BUFFER也就是实时返回合成音频。 + * @param arg0 arg0 + * @param arg1 arg1 + * @param eventData 事件数据 + */ +- (void) onEvent:(int)eventType arg0:(int)arg0 arg1:(int)arg1 data:(NSData *)eventData; + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechUnderstander.h b/Libs/iflyMSC.framework/Headers/IFlySpeechUnderstander.h new file mode 100644 index 0000000..3e60ee3 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechUnderstander.h @@ -0,0 +1,132 @@ +// +// IFlySpeechUnderstander.h +// MSC +// +// Created by iflytek on 2014-03-12. +// Copyright (c) 2014年 iflytek. All rights reserved. +// + +#import + +@class IFlySpeechError; +@protocol IFlySpeechRecognizerDelegate; + +/*! + * 语义理解接口 + */ +@interface IFlySpeechUnderstander : NSObject + +/*! + * 是否正在语义理解 + */ +@property (readonly) BOOL isUnderstanding; + +/*! + * 设置委托对象 + */ +@property(nonatomic,retain) id delegate ; + +/*! + * 创建语义理解对象的单例 + * + * @return 语义理解对象 + */ ++(instancetype) sharedInstance; + +/*! + * 开始义理解 + * + * 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话,请在onError回调返回后请求下一路回话。 + * + * @return 成功返回YES,失败返回NO + */ +- (BOOL) startListening; + +/*! + * 停止录音
+ * 调用此函数会停止录音,并开始进行语义理解 + */ +- (void) stopListening; + +/*! + * 取消本次会话 + */ +- (void) cancel; + +/* + * | ------------- |----------------------------------------------------------- + * | 参数 | 描述 + * | ------------- |----------------------------------------------------------- + * | domain |应用的领域: 取值为:iat、search、video、poi、music、asr; + * | | iat:普通文本听写; + * | | search:热词搜索; + * | | video:视频音乐搜索; + * | | asr:关键词识别; + * | ------------- |----------------------------------------------------------- + * | vad_bos |前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms; + * | | engine指定iat识别默认值为5000; + * | | 其他情况默认值为 4000,范围 0-10000。 + * | ------------- |----------------------------------------------------------- + * | vad_eos |后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, + * | | 自动停止录音;单位:ms; + * | | sms 识别默认值为 1800; + * | | 其他默认值为 700,范围 0-10000。 + * | ------------- |----------------------------------------------------------- + * | sample_rate |采样率:目前支持的采样率设置有 16000 和 8000。 + * | ------------- |----------------------------------------------------------- + * | asr_ptt |标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。 + * | ------------- |----------------------------------------------------------- + * | result_type |返回结果的数据格式: 可设置为json,xml,plain,默认为json。 + * | ------------- |----------------------------------------------------------- + * | grammarID |识别的语法id: 只针对 domain 设置为”asr”的应用。 + * | ------------- |----------------------------------------------------------- + * | asr_audio_path|音频文件名: 设置此参数后,将会自动保存识别的录音文件。 + * | | 路径为Documents/(指定值)。 + * | | 不设置或者设置为nil,则不保存音频。 + * | ------------- |----------------------------------------------------------- + * | params |扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。 + * | ------------- |----------------------------------------------------------- + * + */ + +/*! + * 设置语义理解引擎的参数 + * + * 语义理解的引擎参数(key)取值如下: + * + * | 参数 | 描述 | + * |-----------------|-------------------------------------------------------| + * | domain | 应用的领域: 取值为:iat、search、video、poi、music、asr;
iat:普通文本听写;
search:热词搜索;
video:视频音乐搜索;
asr:关键词识别;| + * | vad_bos | 前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;
engine指定iat识别默认值为5000;
其他情况默认值为 4000,范围 0-10000。| + * | vad_eos | 后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音;单位:ms;
sms 识别默认值为 1800;
其他默认值为 700,范围 0-10000。| + * | sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。| + * | asr_ptt | 标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。| + * | result_type | 返回结果的数据格式: 可设置为json,xml,plain,默认为json。| + * | grammarID | 识别的语法id: 只针对 domain 设置为”asr”的应用。| + * | asr_audio_path | 音频文件名: 设置此参数后,将会自动保存识别的录音文件。
路径为Documents/(指定值)。
不设置或者设置为nil,则不保存音频。| + * | params | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。| + * + * @param value 参数对应的取值 + * @param key 语义理解引擎参数 + * + * @return 成功返回YES;失败返回NO + */ +-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; + +/*! + * 写入音频流 + * + * @param audioData 音频数据 + * + * @return 写入成功返回YES,写入失败返回NO + */ +- (BOOL) writeAudio:(NSData *) audioData; + +/*! + * 销毁语义理解对象。 + * + * @return 成功返回YES;失败返回NO + */ +- (BOOL) destroy; + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlySpeechUtility.h b/Libs/iflyMSC.framework/Headers/IFlySpeechUtility.h new file mode 100644 index 0000000..d089cc8 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlySpeechUtility.h @@ -0,0 +1,184 @@ +// +// IFlySpeechUtility.h +// MSCDemo +// +// Created by admin on 14-5-7. +// Copyright (c) 2014年 iflytek. All rights reserved. +// + +#import + +#define iOS_EXCLUSIVE //iOS平台独占API + +@class IFlySpeechError; + +/*! + * 引擎模式 + */ +typedef NS_ENUM(NSUInteger,IFlyEngineMode){ + /*! + * 云端使用MSC,本地优先使用语记 + */ + IFlyEngineModeAuto = 0, + /*! + * 只使用MSC + */ + IFlyEngineModeMsc, + /*! + * 本地只使用语记(受平台限制,云端无法使用语记) + */ + IFlyEngineModePlus, +}; + + +/*! + * 服务类型 + */ +typedef NS_ENUM(NSUInteger,IFlySpeechPlusServiceType){ + /*! + * 打开语记主界面 + */ + IFlySpeechPlusServiceTypeNone=0, + /*! + * 获取合成资源 + */ + IFlySpeechPlusServiceTypeTTS, + /*! + * 获取识别资源(未开放) + */ + IFlySpeechPlusServiceTypeISR, + /*! + * 获取唤醒资源(未开放) + */ + IFlySpeechPlusServiceTypeIVW, +} ; + +/*! 语记返回回调 + */ +@protocol IFlySpeechplusDelegate + +/*! + * 发生错误 + * + * @param errorCode 错误码 + */ +- (void)onError:(int)errorCode; + +/*! + * 服务正常结束 + */ +- (void)onCompleted; + +@end + +/*! + * 用户配置 + */ +@interface IFlySpeechUtility : NSObject + +/*! + * 创建用户语音配置
+ * 注册应用请前往语音云开发者网站。
+ * 网站:http://www.xfyun.cn + * + * @param params 启动参数,必须保证appid参数传入,示例:appid=123456 + * + * @return 语音配置对象 + */ ++ (IFlySpeechUtility*) createUtility:(NSString *) params; + +/*! + * 销毁用户配置对象 + * + * @return 成功返回YES,失败返回NO + */ ++(BOOL) destroy; + +/*! + * 获取用户配置对象 + * + * @return 用户配置对象 + */ ++(IFlySpeechUtility *) getUtility; + +/*! + * 设置MSC引擎的状态参数 + * + * @param value 参数值 + * @param key 参数名称 + * + * @return 成功返回YES,失败返回NO + */ +-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; + +/*! + * 获取MSC引擎状态参数 + * + * @param key 参数名 + * + * @return 参数值 + */ +- (NSString *)parameterForKey:(NSString *)key; + +/*! + * 引擎类型 + */ +@property (nonatomic, readonly) IFlyEngineMode engineMode; + +/*! + * 语记协议委托 + */ +@property (nonatomic, assign) id delegate; + +@end + +/*! + * 讯飞语记类别 + */ +@interface IFlySpeechUtility (SpeechPlus) + +/*! + * 检查讯飞语记是否安装 + * + * @return 已安装返回YES,否则返回NO + */ ++ (BOOL)checkServiceInstalled; + +/*! + * 获取讯飞语记下载地址进行下载,安装完成后即可使用服务。
+ * 下载地址需要通过[[UIApplication sharedApplication] openUrl:]打开 + * + * @return 讯飞语记在App Store下载地址 + */ ++ (NSString *)componentUrl; + + +/*! + * 注意:此接口废弃,不再需要使用
+ * 处理语记使用URL启动第三方应用程序时传递的数据
+ * 需要在 application:openURL:sourceApplication:annotation:或者application:handleOpenURL中调用。 + * + * @param url 语记启动第三方应用程序时传递过来的URL + * + * @return 成功返回YES,失败返回NO。 + */ +- (BOOL)handleOpenURL:(NSURL *)url iOS_EXCLUSIVE; + +/*! + * 打开讯飞语记获取相应类型服务,0表示打开主界面 + * + * @param serviceType 服务类型 + * + * @return 成功打开返回YES,否则返回NO + */ +- (BOOL)openSpeechPlus:(IFlySpeechPlusServiceType)serviceType iOS_EXCLUSIVE; + +@end + + + + + + + + diff --git a/Libs/iflyMSC.framework/Headers/IFlyTextUnderstander.h b/Libs/iflyMSC.framework/Headers/IFlyTextUnderstander.h new file mode 100644 index 0000000..b411a23 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyTextUnderstander.h @@ -0,0 +1,57 @@ +// +// TextUnderstand.h +// MSCDemo +// +// Created by iflytek on 4/24/14. +// Copyright (c) 2014 iflytek. All rights reserved. +// + +#import + +@class IFlySpeechError; + +/*! + * 文本转语义完成回调函数 + * + * @param result 成功,返回文本语义理解结果 + * @param error 错误描述 + */ +typedef void(^IFlyUnderstandTextCompletionHandler)(NSString* result, IFlySpeechError * error); + +/*! + * 文本转语义类 + */ +@interface IFlyTextUnderstander : NSObject + +/*! + * 是否正在文本转语义 + */ +@property (readonly, atomic) __block BOOL isUnderstanding; + +/*! + * 文本转语义接口
+ * 输入文本内容,获取语义理解结果 + * + * @param text 输入的文本内容 + * @param completionHandler 文本转语义完成回调函数 + * + * @return 错误码 + */ +-(int) understandText:(NSString*)text withCompletionHandler:(IFlyUnderstandTextCompletionHandler) completionHandler; + +/*! + * 设置文本转语义参数 + * + * @param value 参数对应的取值 + * @param key 文本转语义参数参数 + * + * @return 成功返回YES,失败返回NO + */ +-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; + +/*! + * 取消本次会话 + */ +-(void)cancel; + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlyUserWords.h b/Libs/iflyMSC.framework/Headers/IFlyUserWords.h new file mode 100644 index 0000000..f7fc91b --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyUserWords.h @@ -0,0 +1,74 @@ +// +// IFlyUserWords.h +// MSC +// +// Created by ypzhao on 13-2-26. +// Copyright (c) 2013年 iflytek. All rights reserved. +// + +#import + +/*! + * 用户词表类 + * 获取用户词表是为了更好的语音识别(iat),用户词表也属于个性化的一部分. + */ +@interface IFlyUserWords : NSObject + +/*! + * 初始化对象 + * + * 在进行初始化时,需要传入的格式如下: + *
{\"userword\":[{\"name\":\"iflytek\",\"words\":[\"科大讯飞\",
+ *  \"云平台\",\"用户词条\",\"开始上传词条\"]}]}
+ * + * @param json 初始化时传入的数据 + * + * @return IFlyUserWords对象 + */ +- (id) initWithJson:(NSString *)json; + +/*! + * 将数据转化为上传的数据格式 + * + * @return 没有数据或者格式不对时返回nil + */ +- (NSString *) toString; + +/*! + * 返回key对应的数据 + * + * @param key 在putword:value中设置的key + * + * @return key对应的数组 + */ +- (NSArray *) getWords: (NSString *) key; + +/*! + * 添加一条用户词数据 + * + * @param key 用户词对应的key + * @param value 上传的用户词数据 + * + * @return 成功返回YES,失败返回NO + */ +- (BOOL) putWord: (NSString *) key value:(NSString *)value; + +/*! + * 添加一组数据 + * + * @param key 用户词对应的key + * @param words 上传的用户词数据 + * + * @return 成功返回YES,失败返回NO + */ +- (BOOL) putwords: (NSString *) key words:(NSArray *)words; + +/*! + * 是否包含key对应的用户词数据 + * + * @param key 用户词对应的key + * + * @return 成功返回YES,失败返回NO + */ +- (BOOL) containsKey: (NSString *) key; +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlyVoiceWakeuper.h b/Libs/iflyMSC.framework/Headers/IFlyVoiceWakeuper.h new file mode 100644 index 0000000..6e5d1db --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyVoiceWakeuper.h @@ -0,0 +1,179 @@ +// +// IFlyVoiceWakeuper.h +// wakeup +// +// Created by admin on 14-3-18. +// Copyright (c) 2014年 iflytek. All rights reserved. +// + + +#import +#import "IFlyVoiceWakeuperDelegate.h" + +/*! + + 版本描述:唤醒1.0.0.1 + + 语音唤醒资源占用(iPhone5s实测)
+ 内存占用:3M
+ CPU占用:< 12% + + + 唤醒服务接口时序描述 + + sharedInstance 创建唤醒实例
+ setParameter 设置服务参数 + + 例:[_voiceWakeuper setParameter:@"wake" forKey:@"sst"]; + sst 表示服务类型,wake是唤醒,enroll是注册 + + 例:[_voiceWakeuper setParameter:@"m_wakeupResPath" forKey:@"ivw_wake_list"]; + ivw_wake_list 表示唤醒资源的路径 + + 例:[_voiceWakeuper setParameter:@"holdValue" forKey:@"ivw_threshold"]; + ivw_threshold 表示唤醒资源的阀值,holdValue形式: + ID:20;15;30 + 每个数字代表对应资源的阀值,15表示资源1阀值,20表示资源2阀值,30表示资源3阀值 + 本demo只有一个资源设置为ID:20 则可 + + startListening启动服务
+ stopListening 取消服务,但是不释放内部资源
+ cancel 终止服务,并释放内部资源 + + + *参数定义 + + * 服务设置参数
+ sst=wake表示唤醒
+ sst=enroll表示注册
+ SESSION_TYPE @"sst" //服务类型
+ WAKEUP @"wake" //唤醒
+ ENROLL @"enroll" //注册 + + * 唤醒时,表示资源对应的阀值,为输入值,参数类型为:ID:20;20;3
+ 以ID为起始,中间用“;”隔开,表示公三个资源,各自阀值对应为20,20和3
+ IVW_THRESHOLD @"ivw_threshold" //唤醒词对应的门限 + + + * 传入参数
+ 主要是没有定义的参数,依赖params传入
+ PARAM @"params" + + + * 训练,合并生成的资源路径 + + 例:ivw_word_path=/abc/123/newpath.irf
+ IVW_WORD_PATH @"ivw_word_path" + + + + * 业务成功后的会话持续状态
+ keep_alive 0:唤醒一次就结束,1:唤醒后继续
+ KEEP_ALIVE @"keep_alive" + + + * focus_type注册和唤醒的返回参数
+ wake 唤醒
+ enroll 注册
+ FOCUS_TYPE @"focus_type" //服务类型 + + + * 服务状态
+ status=success 服务正常
+ status=failed 服务失败
+ status=done 注册完成
+ STATUS @"status" //服务状态
+ SUCESS @"success" //服务成功
+ FAILED @"failed" //服务失败
+ DONE @"done" //训练完成
+ + + * 唤醒结果的位置
+ ID @"id" //唤醒结果的id + + + * 唤醒资源的阀值
+ 注册时返回,表示注册资源对应的阀值,为输出值
+ THRESHOLD @"threshold" //训练资源的阀值 + + + * 服务结果的可信度
+ SCORE @"score" //服务结果可信度 + + + * 为注册时返回,表示已经注册成功的次数
+ NUM @"num" //已训练成功次数 + + + * 表示服务传入音频对应的起始点和结束点
+ BOS @"bos" //前端点
+ EOS @"eos" //后端点 + + + * 录音方式,如果是外部数据,设置为-1,通过WriteAudio送入音频
+ 注意:目前紧紧支持唤醒服务,注册业务尚不支持
+ AUDIO_SOURCE @"audio_source" + + + * 表示资源合并操作
+ MERGE_RES_ACTION @"merge" + +*/ +@interface IFlyVoiceWakeuper : NSObject +{ + +} + +/*! + * 代理 + */ +@property(assign) id delegate; + +/*! + * 创建唤醒实例,采用单例模式 + */ ++ (instancetype) sharedInstance; + + +/*! + * 启动唤醒 + * 返回值:YES 成功,NO:失败 + */ +-(BOOL) startListening; + +/*! + * 取消唤醒会话
+ * 注意与cancel的区别,紧紧停止服务,并不释放资源 + */ +-(BOOL) stopListening; + +/*! + * 获取工作参数 + */ +-(NSString*) getParameter:(NSString *)key; + +/*! + * 设置工作参数
+ * 注意服务正在运行中,不能设置参数 + */ +-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key; + +/*! + * 取消唤醒会话,并释放内部资源 + */ +-(BOOL) cancel; + +/*! + * 唤醒业务更新,目前支持合并资源操作 + */ +//+(int) updateWords:(NSString *)action params:(NSString*) params; + +/*! + * 写入录音数据
+ * 暂时紧紧支持唤醒的写入,注册服务尚不支持 + */ +//-(int) writeAudio:(const void*)buffer offset:(int)offset length:(int)length; + +@property (readonly) BOOL isListening; + +@end diff --git a/Libs/iflyMSC.framework/Headers/IFlyVoiceWakeuperDelegate.h b/Libs/iflyMSC.framework/Headers/IFlyVoiceWakeuperDelegate.h new file mode 100644 index 0000000..082cb96 --- /dev/null +++ b/Libs/iflyMSC.framework/Headers/IFlyVoiceWakeuperDelegate.h @@ -0,0 +1,86 @@ + +// +// IFlyVoiceWakeuperDel.h +// wakeup +// +// Created by admin on 14-3-18. +// Copyright (c) 2014年 iflytek. All rights reserved. +// + + + +#import + +@class IFlySpeechError; + +/*! + * 代理返回时序描述 + + onError 为唤醒会话错误反馈
+ onBeginOfSpeech 表示录音开始
+ onVolumeChanged 录音音量大小
+ onEndOfSpeech 录音结束,当服务终止时返回onEndOfSpeech
+ onResult 服务结果反馈,内容定义如下 + + * 唤醒服务 + + 例:
+ focus_type = wake 唤醒会话
+ wakeup_result_id = 0 唤醒词位置
+ wakeup_result_Score = 60 唤醒词可信度
+ + * 注册服务 + + 例:
+ focus_type = enroll 注册会话
+ enroll_success_num = 1 当前注册成功次数
+ current_enroll_status = success/failed 当前会话是否成功
+ wakeup_result_Score = 60 注册结果可信度
+ threshold = 10 当注册达到3次后,反馈对应资源的阀值 + */ +@protocol IFlyVoiceWakeuperDelegate + +@optional + +/*! + * 录音开始 + */ +-(void) onBeginOfSpeech; + +/*! + * 录音结束 + */ +-(void) onEndOfSpeech; + +/*! + * 会话错误 + * + * @param errorCode 错误描述类, + */ +- (void) onError:(IFlySpeechError *) error; + +/*! + * 唤醒结果 + * + * @param resultDic 唤醒结果字典 + */ +-(void) onResult:(NSMutableDictionary *)resultDic; + +/*! + * 音量反馈,返回频率与录音数据返回回调频率一致 + * + * @param volume 音量值 + */ +- (void) onVolumeChanged: (int)volume; + + +/*! + * 扩展事件回调
+ * 根据事件类型返回额外的数据 + * + @param eventType 事件类型,具体参见IFlySpeechEvent枚举。 + */ +- (void) onEvent:(int)eventType isLast:(BOOL)isLast arg1:(int)arg1 data:(NSMutableDictionary *)eventData; + +@end + diff --git a/Libs/iflyMSC.framework/iflyMSC b/Libs/iflyMSC.framework/iflyMSC new file mode 100644 index 0000000..0d2d40d Binary files /dev/null and b/Libs/iflyMSC.framework/iflyMSC differ diff --git a/Libs/libAPOpenSdk.a b/Libs/libAPOpenSdk.a new file mode 100755 index 0000000..e3f7d56 Binary files /dev/null and b/Libs/libAPOpenSdk.a differ diff --git a/Libs/libSTSilentLivenessDetector.a b/Libs/libSTSilentLivenessDetector.a new file mode 100644 index 0000000..d65ef4c Binary files /dev/null and b/Libs/libSTSilentLivenessDetector.a differ