diff --git a/gym-manage-uniapp/AndroidManifest.xml b/gym-manage-uniapp/AndroidManifest.xml
new file mode 100644
index 0000000..00a1e14
--- /dev/null
+++ b/gym-manage-uniapp/AndroidManifest.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/gym-manage-uniapp/manifest.json b/gym-manage-uniapp/manifest.json
index 84e3304..82743b3 100644
--- a/gym-manage-uniapp/manifest.json
+++ b/gym-manage-uniapp/manifest.json
@@ -17,9 +17,7 @@
"delay" : 0
},
/* 模块配置 */
- "modules" : {
- "OAuth" : {}
- },
+ "modules" : {},
/* 应用发布信息 */
"distribute" : {
/* android打包配置 */
@@ -49,10 +47,7 @@
/* SDK配置 */
"sdkConfigs" : {
"oauth" : {
- "weixin" : {
- "appid" : "wx8f0d644d1d8985f6",
- "UniversalLinks" : ""
- }
+ "univerify" : {}
}
},
"icons" : {
@@ -87,6 +82,22 @@
}
}
}
+ },
+ "nativePlugins" : {
+ "AliCloud-NirvanaPns" : {
+ "__plugin_info__" : {
+ "name" : "阿里云号码认证SDK",
+ "description" : "阿里云号码认证SDK,包含一键登录和本机号码校验两个功能。",
+ "platforms" : "Android,iOS",
+ "url" : "https://ext.dcloud.net.cn/plugin?id=4297",
+ "android_package_name" : "gym.manage.uniapp",
+ "ios_bundle_id" : "",
+ "isCloud" : true,
+ "bought" : 1,
+ "pid" : "4297",
+ "parameters" : {}
+ }
+ }
}
},
/* 快应用特有相关 */
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/android/ALSDK-PhoneNumberAuthSDK_2.1.9.aar b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/android/ALSDK-PhoneNumberAuthSDK_2.1.9.aar
new file mode 100644
index 0000000..112384c
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/android/ALSDK-PhoneNumberAuthSDK_2.1.9.aar differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_check@2x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_check@2x.png
new file mode 100644
index 0000000..db2ab5b
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_check@2x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_check@3x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_check@3x.png
new file mode 100644
index 0000000..61e1dd6
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_check@3x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_close_gray@2x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_close_gray@2x.png
new file mode 100644
index 0000000..96f784b
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_close_gray@2x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_close_gray@3x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_close_gray@3x.png
new file mode 100644
index 0000000..d4f2dad
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_close_gray@3x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_gray@2x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_gray@2x.png
new file mode 100644
index 0000000..c97068b
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_gray@2x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_gray@3x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_gray@3x.png
new file mode 100644
index 0000000..4ee63e0
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_gray@3x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_light@2x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_light@2x.png
new file mode 100644
index 0000000..4faed82
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_light@2x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_light@3x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_light@3x.png
new file mode 100644
index 0000000..e4e17e4
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_nav_back_light@3x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_uncheck@2x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_uncheck@2x.png
new file mode 100644
index 0000000..e200be8
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_uncheck@2x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_uncheck@3x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_uncheck@3x.png
new file mode 100644
index 0000000..bdc8daa
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.bundle/icon_uncheck@3x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK
new file mode 100644
index 0000000..4e47ad0
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@2x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@2x.png
new file mode 100644
index 0000000..db2ab5b
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@2x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@3x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@3x.png
new file mode 100644
index 0000000..61e1dd6
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_check@3x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@2x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@2x.png
new file mode 100644
index 0000000..96f784b
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@2x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@3x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@3x.png
new file mode 100644
index 0000000..d4f2dad
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_close_gray@3x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@2x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@2x.png
new file mode 100644
index 0000000..c97068b
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@2x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@3x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@3x.png
new file mode 100644
index 0000000..4ee63e0
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_gray@3x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@2x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@2x.png
new file mode 100644
index 0000000..4faed82
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@2x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@3x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@3x.png
new file mode 100644
index 0000000..e4e17e4
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_nav_back_light@3x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@2x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@2x.png
new file mode 100644
index 0000000..e200be8
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@2x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@3x.png b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@3x.png
new file mode 100644
index 0000000..bdc8daa
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/ATAuthSDK.bundle/icon_uncheck@3x.png differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/ATAuthSDK.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/ATAuthSDK.h
new file mode 100644
index 0000000..dddf462
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/ATAuthSDK.h
@@ -0,0 +1,24 @@
+//
+// 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"
+#import "PNSFeatureManager.h"
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/PNSFeatureManager.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/PNSFeatureManager.h
new file mode 100644
index 0000000..a10f038
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/PNSFeatureManager.h
@@ -0,0 +1,27 @@
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface PNSFeatureManager : NSObject
+
+/// 是否开启供应商级别缓存(默认为私网IP级缓存,开启之后缓存为供应商级别)
+@property (class, nonatomic, assign) BOOL enableCacheVendorLevel;
+
+/// 是否开启运营商类型缓存(默认不开启,开启后会缓存上一次sim卡运营商归属信息)
+@property (class, nonatomic, assign) BOOL enableCacheLastVendorInfo;
+
+/// 是否开启降低网络请求频次模式(默认NO),开启后将跳过配置、埋点等dypns域名访问,不影响登录核心功能
+@property (class, nonatomic, assign) BOOL enableReduceNetworkAccess;
+
++ (void)enableCacheVendorLevel:(BOOL)enable;
+
+
++ (void)enableCacheLastVendorInfo:(BOOL)enable;
+
+
++ (void)enableReduceNetworkAccess:(BOOL)enable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/PNSReporter.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/PNSReporter.h
new file mode 100644
index 0000000..31e4cbc
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/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 DEPRECATED_MSG_ATTRIBUTE("日志不再上传");;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/PNSReturnCode.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/PNSReturnCode.h
new file mode 100644
index 0000000..0b5ecce
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/PNSReturnCode.h
@@ -0,0 +1,88 @@
+//
+// 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 PNSCodePhoneBlack = @"600018";
+/// 运营商已切换
+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";
+/// 中断页面消失的时候,也就是suspendDisMissVC设置为YES的时候,点击左上角返回按钮时透出的状态码
+static NSString * const PNSCodeLoginControllerSuspendDisMissVC = @"700010";
+/// 授权页已销毁
+static NSString * const PNSCodeLoginControllerDeallocVC = @"700020";
+
+
+/*************** 号码认证授权页相关返回码 FINISH ***************/
+
+
+/*************** 二次授权页返回code码 START ***************/
+
+/// 点击一键登录拉起授权页二次弹窗
+static NSString * const PNSCodeLoginClickPrivacyAlertView = @"700006";
+/// 隐私协议二次弹窗关闭
+static NSString * const PNSCodeLoginPrivacyAlertViewClose = @"700007";
+/// 隐私协议二次弹窗点击确认并继续
+static NSString * const PNSCodeLoginPrivacyAlertViewClickContinue = @"700008";
+/// 点击隐私协议二次弹窗上的协议富文本文字
+static NSString * const PNSCodeLoginPrivacyAlertViewPrivacyContentClick = @"700009";
+
+/*************** 二次授权页返回code码 FINISH ***************/
+
+#endif /* PNSReturnCode_h */
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/TXCommonHandler.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/TXCommonHandler.h
new file mode 100644
index 0000000..a46f533
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/TXCommonHandler.h
@@ -0,0 +1,138 @@
+//
+// TXCommonHandler.h
+// ATAuthSDK
+//
+// Created by yangli on 15/03/2018.
+
+#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
+ * @note 重复调用时以最新info信息为准
+ */
+- (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;
+
+/**
+ * 授权页弹起后,修改checkbox按钮选中状态,当checkout按钮隐藏时,设置不生效
+ */
+- (void)setCheckboxIsChecked:(BOOL)isChecked;
+
+/**
+ * 查询授权页checkbox是否勾选,YES:勾选,NO:未勾选
+ */
+- (BOOL)queryCheckBoxIsChecked;
+
+/**
+ * 授权页协议内容动画执行,注意:必须设置privacyAnimation属性,才会执行动画
+ */
+- (void)privacyAnimationStart;
+
+/**
+ * 授权页checkbox动画执行,注意:必须设置checkboxAnimation属性,才会执行动画
+ */
+- (void)checkboxAnimationStart;
+
+/**
+ * 手动隐藏一键登录获取登录Token之后的等待动画,默认为自动隐藏,当设置 TXCustomModel 实例 autoHideLoginLoading = NO 时, 可调用该方法手动隐藏
+ */
+- (void)hideLoginLoading;
+
+/**
+ * 注销授权页,建议用此方法,对于移动卡授权页的消失会清空一些数据
+ * @param flag 是否添加动画
+ * @param complete 成功返回
+ */
+- (void)cancelLoginVCAnimated:(BOOL)flag complete:(void (^_Nullable)(void))complete;
+
+/**
+ * 获取日志埋点相关控制对象
+ */
+- (PNSReporter * _Nonnull)getReporter;
+
+/**
+ * 关闭二次授权弹窗页
+ */
+- (void)closePrivactAlertView;
+
+/**
+ * 检查及准备调用环境,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/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/TXCommonUtils.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/TXCommonUtils.h
new file mode 100644
index 0000000..a56b6db
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/TXCommonUtils.h
@@ -0,0 +1,81 @@
+//
+// TXCommonUtils.h
+// authsdk
+//
+// Created by yangli on 12/03/2018.
+
+#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/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/TXCustomModel.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/TXCustomModel.h
new file mode 100644
index 0000000..fa34651
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Headers/TXCustomModel.h
@@ -0,0 +1,453 @@
+//
+// 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;
+
+/** 弹窗位置是否根据键盘弹起关闭动态调整,仅在键盘弹起后遮挡弹窗的情况生效,调整后弹窗将居于键盘上方,默认NO*/
+@property (nonatomic, assign) BOOL alertFrameChangeWithKeyboard;
+
+#pragma mark- 导航栏(只对全屏模式有效)
+/**授权页显示中,导航栏是否隐藏,默认NO*/
+@property (nonatomic, assign) BOOL navIsHidden;
+/**授权页push到其他页面后,导航栏是否隐藏,默认NO*/
+@property (nonatomic, assign) BOOL navIsHiddenAfterLoginVCDisappear;
+/**是否需要中断返回,如果设置为YES,则点击左上角返回按钮的时候默认页面不消失,同时透出状态码700010,需要自己调用TXCommonHandler cancelLoginVCAnimated方法隐藏页面,默认为NO*/
+@property (nonatomic, assign) BOOL suspendDisMissVC;
+/** 导航栏主题色 */
+@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- 背景
+/** 授权页背景色 */
+@property (nonatomic, strong) UIColor *backgroundColor;
+/** 授权页背景图片 */
+@property (nonatomic, strong) UIImage *backgroundImage;
+/** 授权页背景图片view的 content mode,默认为 UIViewContentModeScaleAspectFill */
+@property (nonatomic, assign) UIViewContentMode backgroundImageContentMode;
+/** 点击授权页背景是否关闭授权页,只有在弹窗模式下生效,默认NO*/
+@property (nonatomic, assign) BOOL tapAuthPageMaskClosePage;
+
+#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;
+/**
+ * 是否显示获取登录Token等待过程的loading组件,默认为YES;
+ * 设置为NO时,SDK内部不会自动展示loading,适用于完全不需要loading的场景
+ */
+@property (nonatomic, assign) BOOL showLoginLoading;
+/**
+ * 是否自动隐藏点击登录按钮之后授权页上转圈的 loading, 默认为YES,在获取登录Token成功后自动隐藏
+ * 如果设置为 NO,需要自己手动调用 [[TXCommonHandler sharedInstance] hideLoginLoading] 隐藏
+ */
+@property (nonatomic, assign) BOOL autoHideLoginLoading;
+/**
+ * loading组件背景图片,默认为nil不设置;
+ * 如果设置,显示loading时会在转圈指示器下方显示该背景图
+ */
+@property (nonatomic, strong, nullable) UIImage *loadingBackgroundImage;
+/**
+ * 构建登录按钮的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;
+/** checkBox是否和协议内容垂直居中,默认NO,即顶部对齐 */
+@property (nonatomic, assign) BOOL checkBoxVerticalCenter;
+
+/** 协议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;
+/** 运营商协议内容颜色 ,优先级最高,如果privacyOperatorColors不设置,则取privacyColors中的点击文案颜色,privacyColors不设置,则是默认色*/
+@property (nonatomic, strong) UIColor *privacyOperatorColor;
+/** 协议1内容颜色,优先级最高,如果privacyOneColors不设置,则取privacyColors中的点击文案颜色,privacyColors不设置,则是默认色*/
+@property (nonatomic, strong) UIColor *privacyOneColor;
+/** 协议2内容颜色,优先级最高,如果privacyTwoColors不设置,则取privacyColors中的点击文案颜色,privacyColors不设置,则是默认色*/
+@property (nonatomic, strong) UIColor *privacyTwoColor;
+/** 协议3内容颜色,优先级最高,如果privacyThreeColors不设置,则取privacyColors中的点击文案颜色,privacyColors不设置,则是默认色*/
+@property (nonatomic, strong) UIColor *privacyThreeColor;
+/** 协议文案支持居中、居左、居右设置,默认居左 */
+@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;
+/** 协议整体文案字体,小于10.0不生效 */
+@property (nonatomic, strong) UIFont *privacyFont;
+/** 协议整体文案行间距,默认0 */
+@property (nonatomic, assign) CGFloat privacyLineSpaceDp;
+/** 运营商协议文案字体,仅对运营商协议本体文案和前后缀生效,小于10.0不生效 */
+@property (nonatomic, strong) UIFont *privacyOperatorFont;
+/** 运营商协议文案下划线,仅对运营商协议本体文案和前后缀生效,YES:展示下划线;NO:不展示下划线,默认不展示 */
+@property (nonatomic, assign) BOOL privacyOperatorUnderline;
+/** checkBox是否扩大按钮可交互范围至"协议前缀部分文案(默认:我已阅读并同意)"区域,默认NO */
+@property (nonatomic, assign) BOOL expandAuthPageCheckedScope;
+
+/**
+ * 构建协议整体(包括checkBox)的frame,view布局或布局发生变化时调用,不实现则按默认处理
+ * 如果设置的width小于checkBox的宽则不生效,最小x、y为0,最大width、height为父试图宽高
+ * 最终会根据设置进来的width对协议文本进行自适应,得到的size是协议控件的最终大小
+ */
+@property (nonatomic, copy) PNSBuildFrameBlock privacyFrameBlock;
+/**
+ * 未同意协议时点击登录按钮,协议整体文案的动画效果,不设置或设置为nil默认没有动画,SDK内部会主动更改动画的一些属性(包括:removedOnCompletion = NO、fillMode = kCAFillModeRemoved 及 delegate)
+ */
+@property (nonatomic, strong, nullable) CAAnimation *privacyAnimation;
+/**
+ * 未同意协议时点击登录按钮,checkbox的动画效果,不设置或设置为nil默认没有动画,SDK内部会主动更改动画的一些属性(包括:removedOnCompletion = NO、fillMode = kCAFillModeRemoved 及 delegate)
+ */
+@property (nonatomic, strong, nullable) CAAnimation *checkboxAnimation;
+/** 协议整体相对屏幕底部的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);
+
+#pragma mark - 二次隐私协议弹窗设置
+/** 二次隐私协议弹窗是否需要显示, 默认NO */
+@property (nonatomic, assign) BOOL privacyAlertIsNeedShow;
+/** 二次隐私协议弹窗点击按钮是否需要执行登陆,默认YES */
+@property (nonatomic, assign) BOOL privacyAlertIsNeedAutoLogin;
+/** 二次隐私协议弹窗显示/隐藏动画时长,单位秒,默认0.3s,<=0时使用默认值 */
+@property (nonatomic, assign) CGFloat privacyAlertAnimationDuration;
+/** 二次隐私协议弹窗显示自定义动画,默认从下往上位移动画 */
+@property (nonatomic, strong, nullable) CAAnimation *privacyAlertEntryAnimation;
+/** 二次隐私协议弹窗隐藏自定义动画,默认从上往下位移动画 */
+@property (nonatomic, strong, nullable) CAAnimation *privacyAlertExitAnimation;
+/** 二次隐私协议弹窗的四个圆角值,顺序为左上,左下,右下,右上,需要填充4个值,不足4个值则无效,如果值<=0则为直角 ,默认0*/
+@property (nonatomic, copy) NSArray *privacyAlertCornerRadiusArray;
+/** 二次隐私协议弹窗背景颜色,默认为白色 */
+@property (nonatomic, strong) UIColor *privacyAlertBackgroundColor;
+/** 二次隐私协议弹窗透明度,默认不透明1.0 ,设置范围0.3~1.0之间 */
+@property (nonatomic, assign) CGFloat privacyAlertAlpha;
+/** 二次隐私协议弹窗标题文字内容,默认"请阅读并同意以下条款" */
+@property (nonatomic, copy) NSString *privacyAlertTitleContent;
+/** 二次隐私协议弹窗标题文字字体,最小10,默认10 */
+@property (nonatomic, strong) UIFont *privacyAlertTitleFont;
+/** 二次隐私协议弹窗标题文字颜色,默认黑色 */
+@property (nonatomic, strong) UIColor *privacyAlertTitleColor;
+/** 二次隐私协议弹窗标题背景颜色,默认白色*/
+@property (nonatomic, strong) UIColor *privacyAlertTitleBackgroundColor;
+/** 二次隐私协议弹窗标题位置,默认居中*/
+@property (nonatomic, assign) NSTextAlignment privacyAlertTitleAlignment;
+/** 二次隐私协议弹窗协议内容文字字体,最小10,默认10 */
+@property (nonatomic, strong) UIFont *privacyAlertContentFont;
+/** 二次隐私协议弹窗协议内容行间距,默认0 */
+@property (nonatomic, assign) CGFloat privacyAlertLineSpaceDp;
+/** 二次隐私协议弹窗协议内容背景颜色,默认白色 */
+@property (nonatomic, strong) UIColor *privacyAlertContentBackgroundColor;
+/** 二次隐私协议弹窗协议内容颜色数组,[非点击文案颜色,点击文案颜色],默认[0x999999,0x1890FF] */
+@property (nonatomic, copy) NSArray *privacyAlertContentColors;
+/** 二次隐私协议弹窗运营商协议内容文字字体,仅对运营商协议部分的文本生效,最小10,默认10 */
+@property (nonatomic, strong) UIFont *privacyAlertContentOperatorFont;
+/** 二次隐私协议弹窗运营商协议内容文字下划线,仅对运营商协议部分的文本生效,YES:展示下划线,NO:不展示下划线,默认不展示 */
+@property (nonatomic, assign) BOOL privacyAlertContentUnderline;
+/** 二次隐私协议弹窗协议运营商协议内容颜色,优先级最高,如果privacyAlertOperatorColors不设置,则取privacyAlertContentColors中的点击文案颜色,privacyAlertContentColors不设置,则是默认色*/
+@property (nonatomic, strong) UIColor *privacyAlertOperatorColor;
+/** 二次隐私协议弹窗协议协议1内容颜色 ,优先级最高,如果privacyAlertOneColors不设置,则取privacyAlertContentColors中的点击文案颜色,privacyAlertContentColors不设置,则是默认色*/
+@property (nonatomic, strong) UIColor *privacyAlertOneColor;
+/** 二次隐私协议弹窗协议协议2内容颜色 ,优先级最高,如果privacyAlertTwoColors不设置,则取privacyAlertContentColors中的点击文案颜色,privacyAlertContentColors不设置,则是默认色*/
+@property (nonatomic, strong) UIColor *privacyAlertTwoColor;
+/** 二次隐私协议弹窗协议协议3内容颜色 ,优先级最高,如果privacyAlertThreeColors不设置,则取privacyAlertContentColors中的点击文案颜色,privacyAlertContentColors不设置,则是默认色*/
+@property (nonatomic, strong) UIColor *privacyAlertThreeColor;
+/** 二次隐私协议弹窗协议文案支持居中、居左、居右设置,默认居左 */
+@property (nonatomic, assign) NSTextAlignment privacyAlertContentAlignment;
+
+/** 二次隐私协议弹窗协议整体文案,前缀部分文案 ,如果不赋值,默认使用privacyPreText*/
+@property (nonatomic, copy) NSString *privacyAlertPreText;
+/** 二次隐私协议弹窗协议整体文案,后缀部分文案 如果不赋值,默认使用privacySufText*/
+@property (nonatomic, copy) NSString *privacyAlertSufText;
+
+/** 二次隐私协议弹窗按钮文字内容 默认“同意”*/
+@property (nonatomic, copy) NSString *privacyAlertBtnContent;
+/** 二次隐私协议弹窗登录按钮的圆角值,如果值<=0则为直角 ,默认0*/
+@property (nonatomic, assign) CGFloat privacyAlertBtnCornerRadius;
+/** 二次隐私协议弹窗按钮按钮背景图片 ,默认高度50.0pt,@[激活状态的图片,高亮状态的图片] */
+@property (nonatomic, copy) NSArray *privacyAlertBtnBackgroundImages;
+/** 二次隐私协议弹窗按钮文字颜色,默认黑色, @[激活状态的颜色,高亮状态的颜色] */
+@property (nonatomic, copy) NSArray *privacyAlertButtonTextColors;
+/** 二次隐私协议弹窗按钮文字字体,最小10,默认18*/
+@property (nonatomic, strong) UIFont *privacyAlertButtonFont;
+/** 二次隐私协议弹窗关闭按钮是否显示,默认显示 */
+@property (nonatomic, assign) BOOL privacyAlertCloseButtonIsNeedShow;
+/** 二次隐私协议弹窗右侧关闭按钮图片设置,默认内置的X图片*/
+@property (nonatomic, strong) UIImage *privacyAlertCloseButtonImage;
+/** 二次隐私协议弹窗背景蒙层是否显示 ,默认YES*/
+@property (nonatomic, assign) BOOL privacyAlertMaskIsNeedShow;
+/** 二次隐私协议弹窗点击背景蒙层是否关闭弹窗 ,默认YES*/
+@property (nonatomic, assign) BOOL tapPrivacyAlertMaskCloseAlert;
+/** 二次隐私协议弹窗蒙版背景颜色,默认黑色 */
+@property (nonatomic, strong) UIColor *privacyAlertMaskColor;
+/** 二次隐私协议弹窗蒙版透明度 设置范围0.3~1.0之间 ,默认0.5*/
+@property (nonatomic, assign) CGFloat privacyAlertMaskAlpha;
+/** 二次隐私协议弹窗蒙版显示动画,默认渐显动画 */
+@property (nonatomic, strong) CAAnimation *privacyAlertMaskEntryAnimation;
+/** 二次隐私协议弹窗蒙版消失动画,默认渐隐动画 */
+@property (nonatomic, strong) CAAnimation *privacyAlertMaskExitAnimation;
+/** 二次隐私协议弹窗尺寸设置,不能超出父视图 content view,height不能小于50,width不能小于0,默认屏幕居中,宽为屏幕的宽度减掉80,高为200 */
+@property (nonatomic, copy) PNSBuildFrameBlock privacyAlertFrameBlock;
+/** 二次隐私协议弹窗标题尺寸,默认x=0,y=0,width=弹窗宽度,最小宽度为100,height=根据文本计算的高度,最小高度为15,不能超出父视图 */
+@property (nonatomic, copy) PNSBuildFrameBlock privacyAlertTitleFrameBlock;
+/** 二次隐私协议弹窗内容尺寸,默认为从标题顶部位置开始,最终会根据设置进来的width对协议文本进行自适应,得到的size是协议控件的最终大小。不能超出父视图 */
+@property (nonatomic, copy) PNSBuildFrameBlock privacyAlertPrivacyContentFrameBlock;
+/** 二次隐私协议弹窗确认按钮尺寸,默认为父视图的宽度一半,居中显示。高度默认50, */
+@property (nonatomic, copy) PNSBuildFrameBlock privacyAlertButtonFrameBlock;
+/** 二次隐私协议弹窗右侧关闭按钮尺寸,默认宽高44,居弹窗右侧15,居弹窗顶部0*/
+@property (nonatomic, copy) PNSBuildFrameBlock privacyAlertCloseFrameBlock;
+
+/**
+ * 二次授权页弹窗自定义控件添加,注意:自定义视图的创建初始化和添加到父视图,都需要在主线程!!
+ * @param superPrivacyAlertCustomView 父视图
+ */
+@property (nonatomic, copy) void(^privacyAlertCustomViewBlock)(UIView *superPrivacyAlertCustomView);
+
+/**
+ * 二次授权页弹窗布局完成时会调用该block,可以在该block实现里面可设置自定义添加控件的frame
+ * @param privacyAlertFrame 二次授权页弹窗frame
+ * @param privacyAlertTitleFrame 二次授权页弹窗标题frame
+ * @param privacyAlertPrivacyContentFrame 二次授权页弹窗协议内容frame
+ * @param privacyAlertButtonFrame 二次授权页弹窗确认按钮frame
+ * @param privacyAlertCloseFrame 二次授权页弹窗右上角关闭按钮frame
+ */
+@property (nonatomic, copy) void(^privacyAlertCustomViewLayoutBlock)(CGRect privacyAlertFrame, CGRect privacyAlertTitleFrame, CGRect privacyAlertPrivacyContentFrame, CGRect privacyAlertButtonFrame, CGRect privacyAlertCloseFrame);
+
+@end
+
+NS_ASSUME_NONNULL_END
+
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Info.plist b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Info.plist
new file mode 100644
index 0000000..e8fa85f
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Info.plist differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Modules/module.modulemap b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Modules/module.modulemap
new file mode 100644
index 0000000..be47bf2
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module ATAuthSDK {
+ umbrella header "ATAuthSDK.h"
+
+ export *
+ module * { export * }
+}
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/PrivacyInfo.xcprivacy b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000..b426e43
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDK.framework/PrivacyInfo.xcprivacy
@@ -0,0 +1,42 @@
+
+
+
+
+ NSPrivacyCollectedDataTypes
+
+
+ NSPrivacyCollectedDataType
+ NSPrivacyCollectedDataTypeOtherDataTypes
+ NSPrivacyCollectedDataTypeLinked
+
+ NSPrivacyCollectedDataTypeTracking
+
+ NSPrivacyCollectedDataTypePurposes
+
+ NSPrivacyCollectedDataTypePurposeAnalytics
+
+
+
+ NSPrivacyTracking
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategorySystemBootTime
+ NSPrivacyAccessedAPITypeReasons
+
+ 35F9.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+
+
+
+
+
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDKUniPlugin.framework/ATAuthSDKUniPlugin b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDKUniPlugin.framework/ATAuthSDKUniPlugin
new file mode 100644
index 0000000..1269dda
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDKUniPlugin.framework/ATAuthSDKUniPlugin differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDKUniPlugin.framework/Info.plist b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDKUniPlugin.framework/Info.plist
new file mode 100644
index 0000000..e9c4e96
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/ATAuthSDKUniPlugin.framework/Info.plist differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMLogger.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMLogger.h
new file mode 100644
index 0000000..9abd531
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMLogger.h
@@ -0,0 +1,48 @@
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// 日志级别
+extern NSString * const ACM_LOGGER_LEVEL_VERBOSE;
+extern NSString * const ACM_LOGGER_LEVEL_DEBUG;
+extern NSString * const ACM_LOGGER_LEVEL_INFO;
+extern NSString * const ACM_LOGGER_LEVEL_WARN;
+extern NSString * const ACM_LOGGER_LEVEL_ERROR;
+extern NSString * const ACM_LOGGER_LEVEL_REALTIME;
+
+@interface ACMLogger : NSObject
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/// 日志是否入库,默认不入库
+@property (nonatomic, assign) BOOL enterDatabase;;
+
+/// 日志是否允许上传,默认不上传
+@property (nonatomic, assign) BOOL isAllowUpload;
+
+/**
+ * 日志入库
+ * @param obj 日志的具体内容
+ * @param level 日志等级
+ */
+- (BOOL)logger:(id)obj level:(NSString *)level ;
+
+/**
+ * 上传日志
+ * @param startDate 日志开始时间,如果传nil则查询不加该条件
+ * @param endDate 日志结束时间,如果传nil则查询不加该条件
+ * @param levels 日志等级数组,里面包含对应的日志等级字符串,如果传nil则查询不加该条件
+ */
+- (void)uploadLoggersWithLevels:(NSArray * _Nullable)levels
+ startDate:(NSDate * _Nullable)startDate
+ endDate:(NSDate * _Nullable)endDate;
+
+/**
+ * 上传失败的日志,一般放在重启应用后
+ */
+- (void)uploadFailedRecords;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMManager.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMManager.h
new file mode 100644
index 0000000..9c4858a
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMManager.h
@@ -0,0 +1,73 @@
+
+#import
+#import
+#import
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ACMManager : NSObject
+
+/// 日志操作对象
+@property (nonatomic, strong, readonly) ACMLogger *logger;
+
+/// 埋点操作对象
+@property (nonatomic, strong, readonly) ACMMonitor *monitor;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ * 初始化
+ * @param databaseName 数据库名,不指定则默认为 “ACMDatabase”
+ * @param monitorTableName 埋点表名,必须要指定,用来区分不同产品数据
+ * @param loggerTablename 日志表名,必须要指定,用来区分不同产品数据
+ * @param limitKeyPrefix 限流信息存储到本地key的前缀,用来区分不同产品的限流缓存
+ */
+- (instancetype)initWithDatabaseName:(NSString * _Nullable)databaseName
+ monitorTableName:(NSString *)monitorTableName
+ loggerTableName:(NSString *)loggerTablename
+ limitKeyPrefix:(NSString *)limitKeyPrefix;
+
+/**
+ * 初始化
+ * @param databaseName 数据库名,不指定则默认为 “ACMDatabase”
+ * @param monitorTableName 埋点表名,必须要指定,用来区分不同产品数据
+ * @param loggerTablename 日志表名,必须要指定,用来区分不同产品数据
+ * @param limitKeyPrefix 限流信息存储到本地key的前缀,用来区分不同产品的限流缓存
+ * @param uploadCount 每次上传条数
+ * @param retryRightNow 上传失败是否立马重试,默认立马重试
+ * @param uploadOnce 是否只执行一轮上传,默认NO
+ */
+- (instancetype)initWithDatabaseName:(NSString * _Nullable)databaseName
+ monitorTableName:(NSString *)monitorTableName
+ loggerTableName:(NSString *)loggerTablename
+ limitKeyPrefix:(NSString *)limitKeyPrefix
+ uploadCount:(NSInteger)uploadCount
+ retryRightNow:(BOOL)retryRightNow
+ uploadOnce:(BOOL)uploadOnce;
+
+/**
+ * 获取组件当前版本号
+ */
+- (NSString *)getVersion;
+
+/**
+ * 设置日志埋点上传代理对象
+ * 注:这里是强引用
+ * @param uploadDelegate 代理对象,需要实现 ACMProtocol 协议
+ */
+- (void)setUploadDelegate:(id _Nullable)uploadDelegate;
+
+/**
+ * 更新限流相关
+ * @param isLimit 是否限流
+ * @param limitTimeHour 限流区间大小
+ * @param limitCount 区间内限流次数
+ */
+- (void)updateLimitConfig:(BOOL)isLimit
+ limitTimeHour:(NSInteger)limitTimeHour
+ limitCount:(NSInteger)limitCount;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMMonitor.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMMonitor.h
new file mode 100644
index 0000000..f74e3fe
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMMonitor.h
@@ -0,0 +1,55 @@
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, ACM_DELETE_TYPE) {
+ ACM_DELETE_TYPE_ALL,
+ ACM_DELETE_TYPE_FAILED,
+ ACM_DELETE_TYPE_UNUPLOAD
+};
+
+
+
+@interface ACMMonitor : NSObject
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/// 埋点是否入库,默认入库
+@property (nonatomic, assign) BOOL enterDatabase;;
+
+/// 埋点是否允许上传,默认上传
+@property (nonatomic, assign) BOOL isAllowUpload;
+
+/**
+ * 非实时埋点入库
+ * @param obj 埋点具体内容
+ */
+- (BOOL)monitor:(id)obj;
+
+/**
+ * 实时埋点入库
+ * @param obj 埋点的具体内容
+ */
+- (BOOL)monitorRealtime:(id)obj;
+
+/**
+ * 手动触发埋点上传,只上传未上传过的埋点
+ */
+- (void)uploadMonitorByManual;
+
+/**
+ * 上传失败的埋点,一般放在重启应用后
+ */
+- (void)uploadFailedRecords;
+
+/**
+ * 删除埋点
+ * @param type 删除类型
+ * @param block 结果的异步回调
+ */
+- (void)deleteRecordsByType:(ACM_DELETE_TYPE)type block:(void (^)(BOOL))block;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMProtocol.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMProtocol.h
new file mode 100644
index 0000000..df94a52
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/ACMProtocol.h
@@ -0,0 +1,17 @@
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol ACMProtocol
+
+@required
+
+/// 埋点抛出,可在抛出里面进行上传
+- (BOOL)uploadMonitors:(NSArray *)monitors;
+/// 日志抛出,可在抛出里面进行上传
+- (BOOL)uploadLoggers:(NSArray *)loggers;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/YTXMonitor.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/YTXMonitor.h
new file mode 100644
index 0000000..393206d
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Headers/YTXMonitor.h
@@ -0,0 +1,4 @@
+
+#import
+#import
+
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Info.plist b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Info.plist
new file mode 100644
index 0000000..4b6fa3c
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Info.plist differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Modules/module.modulemap b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Modules/module.modulemap
new file mode 100644
index 0000000..739e9b1
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module YTXMonitor {
+ umbrella header "YTXMonitor.h"
+ export *
+
+ module * { export * }
+}
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/PrivacyInfo.xcprivacy b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000..433213e
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/PrivacyInfo.xcprivacy
@@ -0,0 +1,34 @@
+
+
+
+
+ NSPrivacyCollectedDataTypes
+
+
+ NSPrivacyCollectedDataType
+ NSPrivacyCollectedDataTypeOtherDataTypes
+ NSPrivacyCollectedDataTypeLinked
+
+ NSPrivacyCollectedDataTypeTracking
+
+ NSPrivacyCollectedDataTypePurposes
+
+ NSPrivacyCollectedDataTypePurposeAnalytics
+
+
+
+ NSPrivacyTracking
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+
+
+
+
+
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/YTXMonitor b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/YTXMonitor
new file mode 100644
index 0000000..a1519d8
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXMonitor.framework/YTXMonitor differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Headers/YTXNetUtils.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Headers/YTXNetUtils.h
new file mode 100644
index 0000000..54e4c9d
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Headers/YTXNetUtils.h
@@ -0,0 +1,100 @@
+//
+// 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 API_DEPRECATED("废弃,完成不可用,返回空字符串", ios(4.0, 16.0));
+
+/**
+获取当前上网卡网络类型,比如WiFi,4G
+@return 结果
+*/
+- (NSString *)getNetworktype;
+
+/**
+判断当前设备是否有SIM卡
+@return 结果
+*/
+- (BOOL)simSupportedIsOK;
+
+/**
+ 判断wwan是否开着(通过p0网卡判断,无wifi或有wifi情况下都能检测到)
+ @return 结果
+ */
+- (BOOL)isWWANOpen;
+
+/**
+ 判断WiFi是否开着
+ @return 结果
+ */
+- (BOOL)isWiFiOpen;
+
+/**
+ 判断wwan是否开着(仅无wifi情况下)
+ @return 结果
+ */
+- (BOOL)reachableViaWWAN;
+
+/**
+ 获取设备当前网络私网IP地址
+ @return 结果
+ */
+- (NSString *)getMobilePrivateIPAddress:(BOOL)preferIPv4;
+
+/**
+获取双卡设备下,非上网卡信息
+ @return 结果
+*/
+- (NSString *)getOptionalCarrierInfo API_DEPRECATED("废弃,完成不可用,返回空字符串", ios(4.0, 16.0));;
+
+/**
+ 获取当前蜂网络Ip地址
+ */
+- (NSString *)getCellularIp;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Headers/YTXOperators.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Headers/YTXOperators.h
new file mode 100644
index 0000000..337b073
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/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
+#import
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Headers/YTXVendorService.h b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Headers/YTXVendorService.h
new file mode 100644
index 0000000..d64852f
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Headers/YTXVendorService.h
@@ -0,0 +1,85 @@
+//
+// YTXVendorService.h
+// ATAuthSDK
+//
+// Created by 刘超的MacBook on 2020/1/15.
+// Copyright © 2020. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface YTXRequest : NSObject
+/// 接口调用超时时间,注:目前内部限制最小超时时间为5s,小于5s则按5s设置
+@property (nonatomic, assign) NSTimeInterval timeout;
+/// 是否是蜂窝网络
+@property (nonatomic, assign) BOOL isReachableViaWWAN;
+@end
+
+@interface YTXVendorConfig : NSObject
+/// 当前供应商标识:中移互联(cm_zyhl),联通小沃(cu_xw),联通在线(cu_zx),电信世纪龙(ct_sjl)
+@property (nonatomic, copy) NSString *vendorKey;
+/// 供应商二级标识
+@property (nonatomic, copy) NSString *vendorSubKey;
+/// 供应商 access id
+@property (nonatomic, copy) NSString *vendorAccessId;
+/// 供应商 access secret
+@property (nonatomic, copy) NSString *vendorAccessSecret;
+@end
+
+@interface YTXVendorService : NSObject
+
+/**
+* 获取SDK版本号
+*/
++ (NSString *)getVersion;
+
+/**
+* 获取供应商SDK版本号
+*/
++ (NSDictionary *)getVendorsVersion;
+
+/**
+ * 初始化或更新各个供应商的接口调用对象,根据各个供应商的配置信息
+ * @param vendorConfigs 各个供应商配置信息
+ */
+- (void)updateVendorHandlers:(NSArray *)vendorConfigs;
+
+/**
+ * 获取本机号码校验Token
+ * @param request 请求参数结构体
+ * @param vendorConfig 当前供应商配置信息
+ * @param complete 结果回调
+ */
+- (void)getVerifyTokenWithRequest:(YTXRequest *)request
+ vendorConfig:(YTXVendorConfig *)vendorConfig
+ complete:(void(^)(NSDictionary *response))complete;
+
+/**
+ * 获取手机掩码
+ * @param request 请求参数结构体
+ * @param vendorConfig 当前供应商配置信息
+ * @param complete 结果回调
+ */
+- (void)getMaskNumberWithRequest:(YTXRequest *)request
+ vendorConfig:(YTXVendorConfig *)vendorConfig
+ complete:(void(^)(NSDictionary *response))complete;
+
+
+/**
+ * 电信/联通获取一键登录Token
+ * @param request 请求参数结构体
+ * @param vendorConfig 当前供应商配置信息
+ * @param complete 结果回调
+ * @abstract 移动的获取登录Token不走这个回调,走弹起授权页的回调
+ */
+- (void)getLoginTokenWithRequest:(YTXRequest *)request
+ vendorConfig:(YTXVendorConfig *)vendorConfig
+ complete:(void(^)(NSDictionary *response))complete;
+
+- (void)deleteCacheWithVendorConfigs:(NSArray *)vendorConfigs;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Info.plist b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Info.plist
new file mode 100644
index 0000000..f8ae68d
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Info.plist differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Modules/module.modulemap b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Modules/module.modulemap
new file mode 100644
index 0000000..2618651
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module YTXOperators {
+ umbrella header "YTXOperators.h"
+ export *
+
+ module * { export * }
+}
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/PrivacyInfo.xcprivacy b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000..0be0921
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/PrivacyInfo.xcprivacy
@@ -0,0 +1,42 @@
+
+
+
+
+ NSPrivacyTracking
+
+ NSPrivacyCollectedDataTypes
+
+
+ NSPrivacyCollectedDataType
+ NSPrivacyCollectedDataTypeOtherDataTypes
+ NSPrivacyCollectedDataTypeLinked
+
+ NSPrivacyCollectedDataTypeTracking
+
+ NSPrivacyCollectedDataTypePurposes
+
+ NSPrivacyCollectedDataTypePurposeAnalytics
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategorySystemBootTime
+ NSPrivacyAccessedAPITypeReasons
+
+ 35F9.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+
+
+
+
+
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/YTXOperators b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/YTXOperators
new file mode 100644
index 0000000..a742688
Binary files /dev/null and b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/ios/YTXOperators.framework/YTXOperators differ
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/license.md b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/license.md
new file mode 100644
index 0000000..57d0ce3
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/license.md
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [ Alibaba ] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/package.json b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/package.json
new file mode 100644
index 0000000..0c0fc7e
--- /dev/null
+++ b/gym-manage-uniapp/nativeplugins/AliCloud-NirvanaPns/package.json
@@ -0,0 +1,80 @@
+{
+ "name": "阿里云号码认证SDK",
+ "id": "AliCloud-NirvanaPns",
+ "version": "2.1.9",
+ "description": "阿里云号码认证SDK",
+ "_dp_type":"nativeplugin",
+ "_dp_nativeplugin":{
+ "android": {
+ "plugins": [
+ {
+ "type": "module",
+ "name": "AliCloud-NirvanaPns",
+ "class": "com.nirvana.prd.auth.ALiLoginManager"
+ }
+ ],
+ "hooksClass": "",
+ "integrateType": "aar",
+ "dependencies": [],
+ "compileOptions": {
+ "sourceCompatibility": "1.8",
+ "targetCompatibility": "1.8"
+ },
+ "abis": [
+ "armeabi-v7a","arm64-v8a","x86"
+ ],
+ "minSdkVersion": "21",
+ "useAndroidX": true,
+ "permissions": [
+ "android.permission.INTERNET",
+ "android.permission.ACCESS_WIFI_STATE",
+ "android.permission.CHANGE_NETWORK_STATE",
+ "android.permission.READ_PHONE_STATE",
+ "android.permission.WRITE_EXTERNAL_STORAGE",
+ "android.permission.READ_EXTERNAL_STORAGE",
+ "android.permission.ACCESS_NETWORK_STATE"
+ ],
+ "parameters": {
+ }
+ },
+ "ios": {
+ "plugins": [
+ {
+ "type": "module",
+ "name": "AliCloud-NirvanaPns",
+ "class": "ATAuthSDKModule"
+ }
+ ],
+ "integrateType": "framework",
+ "hooksClass": "",
+ "frameworks": [
+ "ATAuthSDK.framework", "YTXMonitor.framework", "YTXOperators.framework","Network.framework"
+ ],
+ "embedFrameworks": [
+ ],
+ "capabilities": {
+ "entitlements": {
+ },
+ "plists": {
+ }
+ },
+ "plists": {
+ },
+ "assets": [
+ ],
+ "privacies": [
+ ""
+ ],
+ "embedSwift": false,
+ "deploymentTarget": "9.0",
+ "validArchitectures": [
+ "armv7","arm64","x86_64"
+ ],
+ "parameters": {
+ },
+ "resources": [
+ "ATAuthSDK.bundle"
+ ]
+ }
+ }
+}
diff --git a/gym-manage-uniapp/pages.json b/gym-manage-uniapp/pages.json
index 73055a7..ce8bd04 100644
--- a/gym-manage-uniapp/pages.json
+++ b/gym-manage-uniapp/pages.json
@@ -1,14 +1,28 @@
{
"pages": [
+ {
+ "path": "pages/memberInfo/login",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "登录"
+ }
+ },
+
+ {
+ "path": "pages/test/test",
+ "style": {
+ "navigationBarTitleText": "测试页面"
+ }
+ },
{
"path": "pages/index/index",
"style": {
"navigationStyle":"custom",
"navigationBarTitleText": "健身房",
- "app-plus": {
- "animationType": "fade-in",
- "animationDuration": 200
- }
+ "app-plus": {
+ "animationType": "fade-in",
+ "animationDuration": 200
+ }
}
},
{
@@ -34,13 +48,6 @@
}
}
},
- {
- "path": "pages/memberInfo/login",
- "style": {
- "navigationStyle": "custom",
- "navigationBarTitleText": "登录"
- }
- },
{
"path": "pages/memberInfo/memberCard",
"style": {
diff --git a/gym-manage-uniapp/pages/webview/webview.vue b/gym-manage-uniapp/pages/webview/webview.vue
deleted file mode 100644
index f631cd4..0000000
--- a/gym-manage-uniapp/pages/webview/webview.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/gym-manage-uniapp/utils/request.js b/gym-manage-uniapp/utils/request.js
index e574231..fe3bf5f 100644
--- a/gym-manage-uniapp/utils/request.js
+++ b/gym-manage-uniapp/utils/request.js
@@ -1,7 +1,7 @@
const BASE_URL = '/api'
// const BASE_URL = 'http://localhost:8084'
-// 缓存相关常量
+// 缓存相关常`量
const CACHE_PREFIX = 'API_CACHE_'
const CACHE_EXPIRE_TIME = 5 * 60 * 1000 // 默认缓存时间5分钟
@@ -107,6 +107,42 @@ export const clearToken = () => {
}
}
+/**
+ * 获取refreshToken
+ * @returns {string|null} refreshToken
+ */
+export const getRefreshToken = () => {
+ try {
+ return uni.getStorageSync('refreshToken') || null
+ } catch (e) {
+ console.error('获取refreshToken失败:', e)
+ return null
+ }
+}
+
+/**
+ * 设置refreshToken
+ * @param {string} refreshToken - refreshToken值
+ */
+export const setRefreshToken = (refreshToken) => {
+ try {
+ uni.setStorageSync('refreshToken', refreshToken)
+ } catch (e) {
+ console.error('设置refreshToken失败:', e)
+ }
+}
+
+/**
+ * 清除refreshToken
+ */
+export const clearRefreshToken = () => {
+ try {
+ uni.removeStorageSync('refreshToken')
+ } catch (e) {
+ console.error('清除refreshToken失败:', e)
+ }
+}
+
/**
* 生成请求缓存键名
* @param {string} url - 请求URL