Commit 0b3e83f1 by pierce

1、添加注册登录模块

2、添加测试模块、完善Host和DataCenter相关逻辑
parent 4a081a81
Showing with 437 additions and 244 deletions
// //
// GDBaseBussinessService.swift // GDBaseBussinessRouter.swift
// Router // Router
// //
// Created by pierce on 2023/2/18. // Created by pierce on 2023/2/18.
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
import UIKit import UIKit
// 不用这个 // 不用这个
@objc public protocol GDBaseBussinessService { @objc public protocol GDBaseBussinessRouter {
} }
public protocol GDBaseBussinessSwiftService: GDBaseBussinessService { public protocol GDBaseBussinessSwiftRouter: GDBaseBussinessRouter {
} }
...@@ -15,10 +15,10 @@ public struct GDChatRoomArchieveKey { ...@@ -15,10 +15,10 @@ public struct GDChatRoomArchieveKey {
} }
// 不用这个 // 不用这个
@objc public protocol GDChatRoomSevice { @objc public protocol GDChatRoomRouter {
} }
public protocol GDChatRoomSwiftService: GDChatRoomSevice { public protocol GDChatRoomSwiftRouter: GDChatRoomRouter {
func changeSDKKey(appKey: String)
} }
// //
// GDDataManagerService.swift // GDDataManagerRouter.swift
// Router // Router
// //
// Created by Jim Chan on 2022/12/13. // Created by Jim Chan on 2022/12/13.
...@@ -13,10 +13,10 @@ import SwiftyJSON ...@@ -13,10 +13,10 @@ import SwiftyJSON
import GDToolBox import GDToolBox
// 不用这个 // 不用这个
@objc public protocol GDDataManagerService { @objc public protocol GDDataManagerRouter {
} }
public protocol GDDataManagerSwiftService: GDDataManagerService { public protocol GDDataManagerSwiftRouter: GDDataManagerRouter {
} }
// //
// HostManagerService.swift // HostManagerRouter.swift
// Router // Router
// //
// Created by Jim Chan on 2022/12/13. // Created by Jim Chan on 2022/12/13.
...@@ -7,6 +7,45 @@ ...@@ -7,6 +7,45 @@
import Foundation import Foundation
public struct GDHostManagerStore {
public static let apiArray = "moya_apiArray"
// 开发环境key
public static let envKey = "EnvKey"
/// 当前使用的环信Key
public static let hyphenateKey = "hyphenateKey"
public struct Custom {
public static let apiAddress = "moya_custom_apiAddress"
public static let imageDownUrl = "moya_custom_imageDownUrl"
public static let accountsUrl = "moya_custom_accountsUrl"
public static let webUrl = "moya_custom_webUrl"
public static let redPacketUrl = "moya_custom_redPacketUrl"
public static let payUrl = "moya_custom_payUrl"
public static let h5Url = "moya_custom_h5Url"
public static let openapiUrl = "moya_custom_openapi"
}
public struct Production {
public static let apiAddress = "moya_production_apiAddress"
public static let imageDownUrl = "moya_production_imageDownUrl"
public static let accountsUrl = "moya_production_accountsUrl"
public static let webUrl = "moya_production_webUrl"
public static let redPacketUrl = "moya_production_redPacketUrl"
public static let payUrl = "moya_production_payUrl"
public static let h5Url = "moya_production_h5Url"
public static let openapiUrl = "moya_production_openapi"
}
public struct Socket {
// 自定义Socket IP
public static let customIP = "customSocketAPI"
// 自定义Socket 端口
public static let customPort = "customSocketPort"
}
}
/// 开发环境 /// 开发环境
public enum GDEnviroment: Int { public enum GDEnviroment: Int {
// 生产环境 // 生产环境
...@@ -36,9 +75,9 @@ struct GDEnviromentModel { ...@@ -36,9 +75,9 @@ struct GDEnviromentModel {
} }
// 不用这个 // 不用这个
@objc public protocol GDHostManagerService { } @objc public protocol GDHostManagerRouter { }
public protocol GDHostManagerSwiftService: GDHostManagerService { public protocol GDHostManagerSwiftRouter: GDHostManagerRouter {
var apiAddress: String { get } var apiAddress: String { get }
var imageDownUrl: String { get } var imageDownUrl: String { get }
...@@ -54,4 +93,6 @@ public protocol GDHostManagerSwiftService: GDHostManagerService { ...@@ -54,4 +93,6 @@ public protocol GDHostManagerSwiftService: GDHostManagerService {
func genarateParames(_ params:[String: Any]) -> [String: Any] func genarateParames(_ params:[String: Any]) -> [String: Any]
func checkCurrentDNSAdress()
} }
//
// GDLoginAndRegistRouter.swift
// GDRouter
//
// Created by pierce on 2024/1/6.
//
import Foundation
public struct GDLoginAndRegistPublicUDKey {
/// 隐私协议同意状态
public static let agreementState = "agreementState"
}
// 不用这个
@objc public protocol GDLoginAndRegistRouter {
}
public protocol GDLoginAndRegistSwiftRouter: GDLoginAndRegistRouter {
}
//
// GDTestRouter.swift
// GDRouter
//
// Created by pierce on 2024/1/6.
//
import Foundation
/// 开发环境
public enum GDEnv: Int {
// 生产环境
case product = 0
// 测试环境
case test
// 预生产环境
case preproduct
// 自定义
case custom
}
// 不用这个
@objc public protocol GDTestRouter {
}
public protocol GDTestSwiftRouter: GDTestRouter {
var env: GDEnv { get }
}
// //
// GDUserManagerService.swift // GDUserManagerRouter.swift
// Router // Router
// //
// Created by pierce on 2023/2/18. // Created by pierce on 2023/2/18.
...@@ -9,11 +9,11 @@ import UIKit ...@@ -9,11 +9,11 @@ import UIKit
import GDToolBox import GDToolBox
// 不用这个 // 不用这个
@objc public protocol GDUserManagerService { @objc public protocol GDUserManagerRouter {
} }
public protocol GDUserManagerSwiftService: GDUserManagerService { public protocol GDUserManagerSwiftRouter: GDUserManagerRouter {
/// UID /// UID
var uid: String? { get } var uid: String? { get }
......
...@@ -28,28 +28,39 @@ public class GDRouter: NSObject { ...@@ -28,28 +28,39 @@ public class GDRouter: NSObject {
} }
/// 基础业务 /// 基础业务
public static var BaseBusinessRouter: GDBaseBussinessSwiftService? { public static var BaseBusinessRouter: GDBaseBussinessSwiftRouter? {
Bifrost.module(byService: GDBaseBussinessService.self) as? GDBaseBussinessSwiftService Bifrost.module(byService: GDBaseBussinessRouter.self) as? GDBaseBussinessSwiftRouter
} }
/// 数据中心 /// 数据中心
public static var DataRouter: GDDataManagerSwiftService? { public static var DataRouter: GDDataManagerSwiftRouter? {
Bifrost.module(byService: GDDataManagerService.self) as? GDDataManagerSwiftService Bifrost.module(byService: GDDataManagerRouter.self) as? GDDataManagerSwiftRouter
} }
/// API中心 /// API中心
public static var HostRouter: GDHostManagerSwiftService? { public static var HostRouter: GDHostManagerSwiftRouter? {
Bifrost.module(byService: GDHostManagerService.self) as? GDHostManagerSwiftService Bifrost.module(byService: GDHostManagerRouter.self) as? GDHostManagerSwiftRouter
} }
/// 用户中心 /// 用户中心
public static var UserRouter: GDUserManagerSwiftService? { public static var UserRouter: GDUserManagerSwiftRouter? {
Bifrost.module(byService: GDUserManagerService.self) as? GDUserManagerSwiftService Bifrost.module(byService: GDUserManagerRouter.self) as? GDUserManagerSwiftRouter
} }
/// 聊天室 /// 聊天室
public static var ChatRoom: GDChatRoomSwiftService? { public static var ChatRoom: GDChatRoomSwiftRouter? {
Bifrost.module(byService: GDChatRoomSevice.self) as? GDChatRoomSwiftService Bifrost.module(byService: GDChatRoomRouter.self) as? GDChatRoomSwiftRouter
} }
/// 登录模块
public static var LoginRouter: GDLoginAndRegistSwiftRouter? {
Bifrost.module(byService: GDLoginAndRegistRouter.self) as? GDLoginAndRegistSwiftRouter
}
/// 登录模块
public static var Test: GDTestSwiftRouter? {
Bifrost.module(byService: GDTestRouter.self) as? GDTestSwiftRouter
}
} }
...@@ -29,7 +29,7 @@ public enum NavigationBarItemType { ...@@ -29,7 +29,7 @@ public enum NavigationBarItemType {
case left case left
} }
public class BaseViewController: UIViewController { open class BaseViewController: UIViewController {
// MARK: Public // MARK: Public
// 返回按钮返回类型,默认pop // 返回按钮返回类型,默认pop
...@@ -71,7 +71,7 @@ public class BaseViewController: UIViewController { ...@@ -71,7 +71,7 @@ public class BaseViewController: UIViewController {
} }
// MARK: LifeCycle // MARK: LifeCycle
public override func viewDidLoad() { open override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
// GDlog.verbose("Release Debug: \(self.className()) 初始化") // GDlog.verbose("Release Debug: \(self.className()) 初始化")
...@@ -93,7 +93,7 @@ public class BaseViewController: UIViewController { ...@@ -93,7 +93,7 @@ public class BaseViewController: UIViewController {
setupStatistic() setupStatistic()
} }
public override func viewWillAppear(_ animated: Bool) { open override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
GDStatistics.pageBegin(pageName: self.className()) GDStatistics.pageBegin(pageName: self.className())
...@@ -114,19 +114,19 @@ public class BaseViewController: UIViewController { ...@@ -114,19 +114,19 @@ public class BaseViewController: UIViewController {
// GDInternalPushCenter.shared.currentVC = self // GDInternalPushCenter.shared.currentVC = self
} }
public override func viewDidLayoutSubviews() { open override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews() super.viewDidLayoutSubviews()
} }
public override func viewDidAppear(_ animated: Bool) { open override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated) super.viewDidAppear(animated)
// TalkingData 统计 // TalkingData 统计
TalkingData.trackPageEnd(type(of: self).description().components(separatedBy: ".").last!) TalkingData.trackPageEnd(type(of: self).description().components(separatedBy: ".").last!)
} }
public override func viewWillDisappear(_ animated: Bool) { open override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated) super.viewWillDisappear(animated)
GDStatistics.pageEnd(pageName: self.className()) GDStatistics.pageEnd(pageName: self.className())
...@@ -135,7 +135,7 @@ public class BaseViewController: UIViewController { ...@@ -135,7 +135,7 @@ public class BaseViewController: UIViewController {
appearing = false appearing = false
} }
public override func viewDidDisappear(_ animated: Bool) { open override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated) super.viewDidDisappear(animated)
// TalkingData 统计 // TalkingData 统计
TalkingData.trackPageEnd(type(of: self).description().components(separatedBy: ".").last ?? "unknown controller") TalkingData.trackPageEnd(type(of: self).description().components(separatedBy: ".").last ?? "unknown controller")
...@@ -143,22 +143,22 @@ public class BaseViewController: UIViewController { ...@@ -143,22 +143,22 @@ public class BaseViewController: UIViewController {
// MARK: Override // MARK: Override
/// 构建UI /// 构建UI
public func makeUI() { open func makeUI() {
setupNavigationBar() setupNavigationBar()
} }
/// 绑定 ViewModel /// 绑定 ViewModel
public func bindViewModel() { open func bindViewModel() {
} }
/// 设置统计相关 /// 设置统计相关
public func setupStatistic() { open func setupStatistic() {
} }
/// 初始化设置 NavigationBar /// 初始化设置 NavigationBar
private func setupNavigationBar() { open func setupNavigationBar() {
self.navigationController?.navigationBar.isHidden = false self.navigationController?.navigationBar.isHidden = false
self.navigationController?.navigationBar.backgroundColor = .white self.navigationController?.navigationBar.backgroundColor = .white
self.navigationController?.navigationBar.isTranslucent = false self.navigationController?.navigationBar.isTranslucent = false
...@@ -168,7 +168,7 @@ public class BaseViewController: UIViewController { ...@@ -168,7 +168,7 @@ public class BaseViewController: UIViewController {
self.showBackBtn = true self.showBackBtn = true
} }
public override var prefersStatusBarHidden: Bool { open override var prefersStatusBarHidden: Bool {
return statusBarHidden return statusBarHidden
} }
......
...@@ -36,12 +36,12 @@ public enum GDImagePickerType { ...@@ -36,12 +36,12 @@ public enum GDImagePickerType {
public class GDImagePicker: NSObject { public class GDImagePicker: NSObject {
var imagePickerVC: UIViewController? public var imagePickerVC: UIViewController?
var videoCaptureOverlayView : GDVideoRecordOverlayView? public var videoCaptureOverlayView : GDVideoRecordOverlayView?
var config = GDImagePickerConfig() public var config = GDImagePickerConfig()
func showMultiOption(on vc: UIViewController, public func showMultiOption(on vc: UIViewController,
config: GDImagePickerConfig, config: GDImagePickerConfig,
showTypes: [GDImagePickerType] = [.camera, .album]) { showTypes: [GDImagePickerType] = [.camera, .album]) {
...@@ -151,7 +151,7 @@ public class GDImagePicker: NSObject { ...@@ -151,7 +151,7 @@ public class GDImagePicker: NSObject {
} }
func dismiss() { public func dismiss() {
imagePickerVC?.dismiss(animated: true, completion: nil) imagePickerVC?.dismiss(animated: true, completion: nil)
} }
......
...@@ -12,33 +12,33 @@ import Photos ...@@ -12,33 +12,33 @@ import Photos
public class GDImagePickerConfig: BaseModel { public class GDImagePickerConfig: BaseModel {
/// 是否允许编辑 /// 是否允许编辑
var editEnabel = false public var editEnabel = false
/// 是否显示相册 /// 是否显示相册
var showAlbum = true public var showAlbum = true
/// 选图数量 /// 选图数量
var limit = 1 public var limit = 1
/// 视频数量 /// 视频数量
var videoNumLimit = 1 public var videoNumLimit = 1
/// 视频时长限制,0为不限制 /// 视频时长限制,0为不限制
var videoTimeLimit: TimeInterval = 0 public var videoTimeLimit: TimeInterval = 0
/// 达到数量之后禁选 /// 达到数量之后禁选
var disableWhenReachLimit: Bool = false public var disableWhenReachLimit: Bool = false
/// 允许预览 /// 允许预览
var enablePreview = true public var enablePreview = true
/// 允许原图 /// 允许原图
var enableOrigin = false public var enableOrigin = false
/// 支持展示的媒体类型 /// 支持展示的媒体类型
var mediaTypes: [PHAssetMediaType] = [.image] public var mediaTypes: [PHAssetMediaType] = [.image]
/// 发送按钮的内容 /// 发送按钮的内容
var sendButtonTitle = "确定" public var sendButtonTitle = "确定"
/// 取消回调 /// 取消回调
var cancleHandler: EmptyClosure? public var cancleHandler: EmptyClosure?
/// Asset 完成选择回调,视频只会走这个回调,返回true撤回控制器,返回false不撤回 /// Asset 完成选择回调,视频只会走这个回调,返回true撤回控制器,返回false不撤回
var assetConfirmHandler: ((_ asset: [GDImagePickerAsset], _ isOrigin: Bool) -> Bool)? public var assetConfirmHandler: ((_ asset: [GDImagePickerAsset], _ isOrigin: Bool) -> Bool)?
/// Image 完成选择回调,返回true撤回控制器,返回false不撤回 /// Image 完成选择回调,返回true撤回控制器,返回false不撤回
var imageConfirmHandler: ((_ asset: [UIImage], _ isOrigin: Bool) -> Bool)? public var imageConfirmHandler: ((_ asset: [UIImage], _ isOrigin: Bool) -> Bool)?
/// 可编辑的图片、摄像头只会走这个回调 /// 可编辑的图片、摄像头只会走这个回调
var editableImageConfirmHandler: ((UIImage?) -> Bool)? public var editableImageConfirmHandler: ((UIImage?) -> Bool)?
deinit { deinit {
......
...@@ -186,7 +186,7 @@ public class GDFloatingWebView: BaseView { ...@@ -186,7 +186,7 @@ public class GDFloatingWebView: BaseView {
} }
extension GDFloatingWebView: GDWebViewControllerType { extension GDFloatingWebView: GDWebViewControllerType {
func dismissSelf() { public func dismissSelf() {
self.dismiss() self.dismiss()
} }
} }
...@@ -13,7 +13,7 @@ import RxSwift ...@@ -13,7 +13,7 @@ import RxSwift
import RxCocoa import RxCocoa
import SwiftyTimer import SwiftyTimer
protocol GDWebViewControllerType: NSObject { public protocol GDWebViewControllerType: NSObject {
func dismissSelf() func dismissSelf()
...@@ -21,55 +21,55 @@ protocol GDWebViewControllerType: NSObject { ...@@ -21,55 +21,55 @@ protocol GDWebViewControllerType: NSObject {
public class GDWebView: WKWebView, WKNavigationDelegate, WKScriptMessageHandler { public class GDWebView: WKWebView, WKNavigationDelegate, WKScriptMessageHandler {
let disposeBag = DisposeBag() public let disposeBag = DisposeBag()
/// 发布网页交互动作 /// 发布网页交互动作
let actionPublisher = PublishRelay<(cid: Int, data: JSON)>() public let actionPublisher = PublishRelay<(cid: Int, data: JSON)>()
/// 自动拼接用户信息 /// 自动拼接用户信息
var includeUserInfo = true public var includeUserInfo = true
// 点击事件是否自动跳转到下一个网页(系统是默认在接收到js点击事件的时候,自动请求点击事件的链接) // 点击事件是否自动跳转到下一个网页(系统是默认在接收到js点击事件的时候,自动请求点击事件的链接)
var isSkipToNextPage = true public var isSkipToNextPage = true
// 标题通知者 // 标题通知者
let titlePublished = PublishSubject<String>() public let titlePublished = PublishSubject<String>()
// 内容开始返回时 // 内容开始返回时
let didCommitNavigationPublished = PublishSubject<WKNavigation>() public let didCommitNavigationPublished = PublishSubject<WKNavigation>()
// 加载结束 // 加载结束
let didFinishNavigationPublished = PublishSubject<WKNavigation>() public let didFinishNavigationPublished = PublishSubject<WKNavigation>()
// 加载失败 // 加载失败
let didFailProvisionalNavigationPublished = PublishSubject<Error>() public let didFailProvisionalNavigationPublished = PublishSubject<Error>()
// javascript点击事件 // javascript点击事件
let decidePolicyForNavigationActionPublished = PublishSubject<String>() public let decidePolicyForNavigationActionPublished = PublishSubject<String>()
/// 加载失败按钮 /// 加载失败按钮
let failBtn = GDGradientButton(type: .custom) public let failBtn = GDGradientButton(type: .custom)
/// 失败 View /// 失败 View
let failView = GDEmptyView(frame: .zero) public let failView = GDEmptyView(frame: .zero)
/// 是否展示失败 View /// 是否展示失败 View
var enableFailView = true public var enableFailView = true
/// 是否允许调起直播间功能模块,半屏任务中心打开 /// 是否允许调起直播间功能模块,半屏任务中心打开
var showLiveFunctionEnable = false public var showLiveFunctionEnable = false
// 持有当前request // 持有当前request
var currentRequest: URLRequest? public var currentRequest: URLRequest?
// 显示直播间充值 // 显示直播间充值
var showLiveRecharge = false public var showLiveRecharge = false
var willShowLiveRechargeHandler: EmptyClosure? public var willShowLiveRechargeHandler: EmptyClosure?
var didDismissLiveRechargeHandler: EmptyClosure? public var didDismissLiveRechargeHandler: EmptyClosure?
var decidePolicyHandler: ((String) -> Void)? public var decidePolicyHandler: ((String) -> Void)?
/// 注入网页的json /// 注入网页的json
var injectString: String? public var injectString: String?
var getPresentViewController: (() -> UIViewController?)? public var getPresentViewController: (() -> UIViewController?)?
// MARK: Init // MARK: Init
convenience init(_ delegateVC: GDWebViewControllerType, cacheEnable: Bool) { public convenience init(_ delegateVC: GDWebViewControllerType, cacheEnable: Bool) {
let _userContentController = WKUserContentController() let _userContentController = WKUserContentController()
let webConfiguration = WKWebViewConfiguration() let webConfiguration = WKWebViewConfiguration()
webConfiguration.userContentController = _userContentController webConfiguration.userContentController = _userContentController
...@@ -82,7 +82,7 @@ public class GDWebView: WKWebView, WKNavigationDelegate, WKScriptMessageHandler ...@@ -82,7 +82,7 @@ public class GDWebView: WKWebView, WKNavigationDelegate, WKScriptMessageHandler
// MARK: Private // MARK: Private
// 依托的ViewController // 依托的ViewController
weak var delegateVC : GDWebViewControllerType? { public weak var delegateVC : GDWebViewControllerType? {
didSet { didSet {
let _userContentController = WKUserContentController() let _userContentController = WKUserContentController()
let webConfiguration = WKWebViewConfiguration() let webConfiguration = WKWebViewConfiguration()
......
...@@ -270,7 +270,7 @@ public class GDHalfScreenWebView: BaseView { ...@@ -270,7 +270,7 @@ public class GDHalfScreenWebView: BaseView {
extension GDHalfScreenWebView: GDWebViewControllerType { extension GDHalfScreenWebView: GDWebViewControllerType {
func dismissSelf() { public func dismissSelf() {
dismiss() dismiss()
} }
......
...@@ -60,7 +60,7 @@ public class GDWebViewController: BaseViewController, GDWebViewControllerType { ...@@ -60,7 +60,7 @@ public class GDWebViewController: BaseViewController, GDWebViewControllerType {
// 进度监听 // 进度监听
private var progressKVOhandle: NSKeyValueObservation? private var progressKVOhandle: NSKeyValueObservation?
convenience init(url: String) { public convenience init(url: String) {
self.init(nibName: nil, bundle: nil) self.init(nibName: nil, bundle: nil)
currentWebUrl = url currentWebUrl = url
} }
...@@ -300,7 +300,7 @@ public class GDWebViewController: BaseViewController, GDWebViewControllerType { ...@@ -300,7 +300,7 @@ public class GDWebViewController: BaseViewController, GDWebViewControllerType {
} }
} }
func dismissSelf() { public func dismissSelf() {
if isBeingDismissed { if isBeingDismissed {
self.dismiss(animated: true, completion: nil) self.dismiss(animated: true, completion: nil)
} else { } else {
......
...@@ -89,25 +89,19 @@ public class GDSocketCenter: BaseViewModel { ...@@ -89,25 +89,19 @@ public class GDSocketCenter: BaseViewModel {
// 存储当前 Socket 数据 // 存储当前 Socket 数据
self.ip = response.json["ip"].stringValue self.ip = response.json["ip"].stringValue
self.port = response.json["port"].stringValue self.port = response.json["port"].stringValue
// TODO: 缺失
// 可编辑环境下 // 可编辑环境下
// if GDToolBoxSetup.shared.enableEditableAPI { if DevConfig.enableEditableAPI {
// // 自定义环境 if GDToolBoxPlugins.shared.apiPlugin.customIpHostEnable {
// if let envValue = UserDefaults.standard.value(forKey: GDHostUserDefault.envKey) as? Int { let customIp = GDToolBoxPlugins.shared.apiPlugin.customSocketIp
// let env = GDEnv(rawValue: envValue) ?? .product let customPort = GDToolBoxPlugins.shared.apiPlugin.customSocketPort
// if env == .custom { if isValidString(customIp) {
// let customIp = (UserDefaults.standard.value(forKey: GDUserDefault.Socket.customIP) as? String) ?? "" self.ip = customIp
// let customPort = (UserDefaults.standard.value(forKey: GDUserDefault.Socket.customPort) as? String) ?? "" }
// if isValidString(customIp) { if isValidString(customPort) {
// self.ip = customIp self.port = customPort
// } }
// if isValidString(customPort) { }
// self.port = customPort }
// }
// }
// }
// }
if let ip = self.ip, let port = self.port { if let ip = self.ip, let port = self.port {
self.socketConnect(with: ip, port: port) { (success) in self.socketConnect(with: ip, port: port) { (success) in
......
...@@ -23,4 +23,8 @@ open class GDToolBoxAPIPlugin: NSObject { ...@@ -23,4 +23,8 @@ open class GDToolBoxAPIPlugin: NSObject {
/// - Parameter params: 请求参数 /// - Parameter params: 请求参数
/// - Returns: 添加完固定参数的完整请求参数 /// - Returns: 添加完固定参数的完整请求参数
open func Params(_ params : [String : Any]) -> [String : Any] { return params } open func Params(_ params : [String : Any]) -> [String : Any] { return params }
open var customIpHostEnable: Bool { false }
open var customSocketIp: String { "" }
open var customSocketPort: String { "" }
} }
...@@ -67,13 +67,13 @@ public enum GDGender { ...@@ -67,13 +67,13 @@ public enum GDGender {
} }
} }
public class GDToolBoxUserCenterPlugin: NSObject { open class GDToolBoxUserCenterPlugin: NSObject {
public var isVisitor:Bool { false } open var isVisitor:Bool { false }
public var isUserLogin:Bool { false } open var isUserLogin:Bool { false }
public var uid:String? { "" } open var uid:String? { "" }
public var nickname:String? { "" } open var nickname:String? { "" }
public var token:String? { "" } open var token:String? { "" }
func gd_userHadBeenKickOffline() {} open func gd_userHadBeenKickOffline() {}
} }
...@@ -10,7 +10,7 @@ import UIKit ...@@ -10,7 +10,7 @@ import UIKit
import RxSwift import RxSwift
import RxCocoa import RxCocoa
@objc protocol GDTextFieldDelegate { @objc public protocol GDTextFieldDelegate {
@objc optional func tl_textFieldShouldBeginEditing(_ textField: GDTextField) -> Bool // return NO to disallow editing. @objc optional func tl_textFieldShouldBeginEditing(_ textField: GDTextField) -> Bool // return NO to disallow editing.
...@@ -35,33 +35,33 @@ import RxCocoa ...@@ -35,33 +35,33 @@ import RxCocoa
public class GDTextField: UITextField { public class GDTextField: UITextField {
// MARK: Init // MARK: Init
override init(frame: CGRect) { public override init(frame: CGRect) {
super.init(frame: frame) super.init(frame: frame)
self.delegate = self self.delegate = self
} }
required init?(coder: NSCoder) { public required init?(coder: NSCoder) {
super.init(coder: coder) super.init(coder: coder)
self.delegate = self self.delegate = self
} }
// MARK: Public // MARK: Public
weak var tl_delegate: GDTextFieldDelegate? public weak var tl_delegate: GDTextFieldDelegate?
/// 是否只是用于显示(禁用粘贴、选择和全选功能) /// 是否只是用于显示(禁用粘贴、选择和全选功能)
var displayOnly = false public var displayOnly = false
/// 禁用粘贴 /// 禁用粘贴
var disablePaste = false public var disablePaste = false
/// 禁用选择 /// 禁用选择
var disableSelect = false public var disableSelect = false
/// 禁用全选 /// 禁用全选
var disableSelectAll = false public var disableSelectAll = false
/// 是否正在编辑中 /// 是否正在编辑中
let tl_isEditing = BehaviorRelay<Bool>(value: false) public let tl_isEditing = BehaviorRelay<Bool>(value: false)
/// 输入回调 /// 输入回调
var inputHandler: ((String) -> Void)? public var inputHandler: ((String) -> Void)?
/// 最长输入限制,0为不限制 /// 最长输入限制,0为不限制
var textMaxLength: Int = 0 { public var textMaxLength: Int = 0 {
didSet { didSet {
if textMaxLength == 0 { if textMaxLength == 0 {
lengthDectectDisposable?.dispose() lengthDectectDisposable?.dispose()
...@@ -98,7 +98,7 @@ public class GDTextField: UITextField { ...@@ -98,7 +98,7 @@ public class GDTextField: UITextField {
} }
} }
} }
var commonTextMaxLength: Int = 0 { public var commonTextMaxLength: Int = 0 {
didSet { didSet {
if commonTextMaxLength == 0 { if commonTextMaxLength == 0 {
lengthDectectDisposable?.dispose() lengthDectectDisposable?.dispose()
...@@ -133,7 +133,7 @@ public class GDTextField: UITextField { ...@@ -133,7 +133,7 @@ public class GDTextField: UITextField {
} }
} }
/// 文本长度 /// 文本长度
var textLength: Int { public var textLength: Int {
let encodeValue = CFStringConvertEncodingToNSStringEncoding(UInt32(CFStringEncodings.GB_18030_2000.rawValue)) let encodeValue = CFStringConvertEncodingToNSStringEncoding(UInt32(CFStringEncodings.GB_18030_2000.rawValue))
let encode = String.Encoding.init(rawValue: encodeValue) let encode = String.Encoding.init(rawValue: encodeValue)
return self.text?.lengthOfBytes(using: encode) ?? 0 return self.text?.lengthOfBytes(using: encode) ?? 0
...@@ -156,7 +156,7 @@ public class GDTextField: UITextField { ...@@ -156,7 +156,7 @@ public class GDTextField: UITextField {
return super.canPerformAction(action, withSender: sender) return super.canPerformAction(action, withSender: sender)
} }
func filterCharacter(with regaxStr: String) -> String { public func filterCharacter(with regaxStr: String) -> String {
let searchText = self.text ?? "" let searchText = self.text ?? ""
if let regax = try? NSRegularExpression(pattern: regaxStr, options: .caseInsensitive) { if let regax = try? NSRegularExpression(pattern: regaxStr, options: .caseInsensitive) {
let result = regax.stringByReplacingMatches(in: searchText, options: .reportCompletion, range: .init(location: 0, length: searchText.utf16.count), withTemplate: "") let result = regax.stringByReplacingMatches(in: searchText, options: .reportCompletion, range: .init(location: 0, length: searchText.utf16.count), withTemplate: "")
......
...@@ -14,23 +14,27 @@ class GDDataManagerPlugin: GDToolBoxDataCenterPlugin { ...@@ -14,23 +14,27 @@ class GDDataManagerPlugin: GDToolBoxDataCenterPlugin {
/// - Parameters: /// - Parameters:
/// - priority: 优先级 /// - priority: 优先级
/// - url: URL /// - url: URL
override func updatePriority(priority: Int, for url: String) {} override func updatePriority(priority: Int, for url: String) {
GDResourceDownloader.shared.updatePriority(priority: priority, for: url)
}
/// 校验资源是否已经下载失败 /// 校验资源是否已经下载失败
/// - Parameter resUrl: 下载地址 /// - Parameter resUrl: 下载地址
/// - Returns: /// - Returns:
override func checkFailureFor(_ resUrl: String) -> Bool { return false } override func checkFailureFor(_ resUrl: String) -> Bool { return GDResourceDownloader.shared.checkFailureFor(resUrl) }
/// 添加任务 /// 添加任务
/// - Parameter tasks: 任务数组 /// - Parameter tasks: 任务数组
override func addTasks(_ tasks: [GDDownloadTask]) {} override func addTasks(_ tasks: [GDDownloadTask]) {
GDResourceDownloader.shared.addTasks(tasks)
}
/// 获取进度 /// 获取进度
/// - Parameter tasks: 任务数组 /// - Parameter tasks: 任务数组
override func progressDict(_ resUrl: String) -> Double { return 0 } override func progressDict(_ resUrl: String) -> Double { return GDResourceDownloader.shared.progressDict[resUrl] ?? 0 }
/// 获取进度发布器 /// 获取进度发布器
override func downloadPublisher() -> PublishRelay<(resUrl: String, progress:Double, finish: Bool)>? { override func downloadPublisher() -> PublishRelay<(resUrl: String, progress:Double, finish: Bool)>? {
return nil return GDResourceDownloader.shared.downloadPublisher
} }
} }
...@@ -55,7 +55,7 @@ final class GDSettingConfigModel: BaseModel, NetworkModelType { ...@@ -55,7 +55,7 @@ final class GDSettingConfigModel: BaseModel, NetworkModelType {
// 写入本地 // 写入本地
// if let roomTipsDict = json["cue"].dictionaryObject { // if let roomTipsDict = json["cue"].dictionaryObject {
// GDUserDefault.write(roomTipsDict, key: GDUserDefault.Data.liveRoomTips) // UserDefaults.standard.set(roomTipsDict, forKey: GDUserDefault.Data.liveRoomTips)
// } // }
// //
// model.barrageArr = json["barrage"].arrayValue.map { GDBarrageModel(json: $0) } // model.barrageArr = json["barrage"].arrayValue.map { GDBarrageModel(json: $0) }
......
...@@ -10,10 +10,10 @@ import GDRouter ...@@ -10,10 +10,10 @@ import GDRouter
import GDToolBox import GDToolBox
import Bifrost import Bifrost
@objc public class GDDataManagerModule: NSObject, GDDataManagerSwiftService { @objc public class GDDataManagerModule: NSObject, GDDataManagerSwiftRouter {
let disposeBag = DisposeBag() let disposeBag = DisposeBag()
} }
extension GDDataManagerModule: GDRouterProtocol { extension GDDataManagerModule: GDRouterProtocol {
...@@ -52,11 +52,11 @@ extension GDDataManagerModule: BifrostModuleProtocol { ...@@ -52,11 +52,11 @@ extension GDDataManagerModule: BifrostModuleProtocol {
} }
public func setup() { public func setup() {
GDToolBoxPlugins.shared.dataPlugin = GDDataManagerPlugin()
} }
@objc public static func swiftLoad() { @objc public static func swiftLoad() {
Bifrost.registerService(GDDataManagerService.self, withModule: self) Bifrost.registerService(GDDataManagerRouter.self, withModule: self)
} }
public static func setupModuleSynchronously() -> Bool { public static func setupModuleSynchronously() -> Bool {
......
//
// GDLoginWebUrl.swift
// GDLoginAndRegistModule
//
// Created by pierce on 2024/1/6.
//
import Foundation
struct GDLoginWebUrl {
/// 隐私政策
static let userPrivacyAggrement = "https://yabolive.com/other/text/guodongTips.html"
// 用户使用协议
static let userAgreement = "http://zhibo.yazhai.co/agreement/comm.html"
}
//
// GDLoginAndRegistModule.h
// GDLoginAndRegistModule
//
// Created by pierce on 2024/1/6.
//
#import <Foundation/Foundation.h>
//! Project version number for GDLoginAndRegistModule.
FOUNDATION_EXPORT double GDLoginAndRegistModuleVersionNumber;
//! Project version string for GDLoginAndRegistModule.
FOUNDATION_EXPORT const unsigned char GDLoginAndRegistModuleVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <GDLoginAndRegistModule/PublicHeader.h>
//
// GDTest.h
// GDTest
//
// Created by pierce on 2024/1/6.
//
#import <Foundation/Foundation.h>
//! Project version number for GDTest.
FOUNDATION_EXPORT double GDTestVersionNumber;
//! Project version string for GDTest.
FOUNDATION_EXPORT const unsigned char GDTestVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <GDTest/PublicHeader.h>
...@@ -7,13 +7,25 @@ ...@@ -7,13 +7,25 @@
import Foundation import Foundation
import GDRouter import GDRouter
import GDToolBox
import Bifrost import Bifrost
@objc public class GDUserInfoManagerModule: NSObject, GDUserManagerSwiftService { @objc public class GDUserInfoManagerModule: GDToolBoxUserCenterPlugin, GDUserManagerSwiftRouter {
public var uid: String? public override var uid: String? {
GDUserCenter.shared.uid
}
public override var token: String? {
GDUserCenter.shared.user.value.token
}
public var token: String? open override var isVisitor : Bool { GDUserCenter.shared.isVisitor.value }
open override var isUserLogin : Bool { GDUserCenter.shared.isLogin.value }
open override var nickname:String? { GDUserCenter.shared.user.value.nickname }
open override func gd_userHadBeenKickOffline() {
GDUserCenter.shared.hadBeenKickOffline()
}
} }
extension GDUserInfoManagerModule: GDRouterProtocol { extension GDUserInfoManagerModule: GDRouterProtocol {
...@@ -40,7 +52,7 @@ extension GDUserInfoManagerModule: BifrostModuleProtocol { ...@@ -40,7 +52,7 @@ extension GDUserInfoManagerModule: BifrostModuleProtocol {
} }
@objc public static func swiftLoad() { @objc public static func swiftLoad() {
Bifrost.registerService(GDUserManagerService.self, withModule: self) Bifrost.registerService(GDUserManagerRouter.self, withModule: self)
} }
public static func setupModuleSynchronously() -> Bool { public static func setupModuleSynchronously() -> Bool {
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
38E95B5C2948AD7300DE03BC /* GDHostManagerAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E95B5A2948AD7300DE03BC /* GDHostManagerAPI.swift */; }; 38E95B5C2948AD7300DE03BC /* GDHostManagerAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E95B5A2948AD7300DE03BC /* GDHostManagerAPI.swift */; };
38E95B5D2948AD7300DE03BC /* GDHostManagerProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E95B5B2948AD7300DE03BC /* GDHostManagerProvider.swift */; }; 38E95B5D2948AD7300DE03BC /* GDHostManagerProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E95B5B2948AD7300DE03BC /* GDHostManagerProvider.swift */; };
73C12D6E4F2698F5A2B8C4E3 /* Pods_HostManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F66D9B2847F41AFAA303E455 /* Pods_HostManager.framework */; }; 73C12D6E4F2698F5A2B8C4E3 /* Pods_HostManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F66D9B2847F41AFAA303E455 /* Pods_HostManager.framework */; };
BE4AC90D2B456AAA0062EF42 /* GDHostUserDefault.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE4AC90C2B456AAA0062EF42 /* GDHostUserDefault.swift */; };
BE595D34299E154400F40C46 /* GDHostManagerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE595D33299E154400F40C46 /* GDHostManagerModule.swift */; }; BE595D34299E154400F40C46 /* GDHostManagerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE595D33299E154400F40C46 /* GDHostManagerModule.swift */; };
BEABC713299F7D6E0043716F /* GDHostManagerModuleSwiftLoadFile.m in Sources */ = {isa = PBXBuildFile; fileRef = BEABC712299F7D6E0043716F /* GDHostManagerModuleSwiftLoadFile.m */; }; BEABC713299F7D6E0043716F /* GDHostManagerModuleSwiftLoadFile.m in Sources */ = {isa = PBXBuildFile; fileRef = BEABC712299F7D6E0043716F /* GDHostManagerModuleSwiftLoadFile.m */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
...@@ -27,7 +26,6 @@ ...@@ -27,7 +26,6 @@
38E95B5E2948AF5300DE03BC /* GDToolBox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDToolBox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 38E95B5E2948AF5300DE03BC /* GDToolBox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDToolBox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
56295AC70DF6EC920E40ACA8 /* Pods-HostManager.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HostManager.release.xcconfig"; path = "Target Support Files/Pods-HostManager/Pods-HostManager.release.xcconfig"; sourceTree = "<group>"; }; 56295AC70DF6EC920E40ACA8 /* Pods-HostManager.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HostManager.release.xcconfig"; path = "Target Support Files/Pods-HostManager/Pods-HostManager.release.xcconfig"; sourceTree = "<group>"; };
91155270A39AE89D506193AD /* Pods-HostManager.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HostManager.debug.xcconfig"; path = "Target Support Files/Pods-HostManager/Pods-HostManager.debug.xcconfig"; sourceTree = "<group>"; }; 91155270A39AE89D506193AD /* Pods-HostManager.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HostManager.debug.xcconfig"; path = "Target Support Files/Pods-HostManager/Pods-HostManager.debug.xcconfig"; sourceTree = "<group>"; };
BE4AC90C2B456AAA0062EF42 /* GDHostUserDefault.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GDHostUserDefault.swift; sourceTree = "<group>"; };
BE595D33299E154400F40C46 /* GDHostManagerModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDHostManagerModule.swift; sourceTree = "<group>"; }; BE595D33299E154400F40C46 /* GDHostManagerModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDHostManagerModule.swift; sourceTree = "<group>"; };
BEABC712299F7D6E0043716F /* GDHostManagerModuleSwiftLoadFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GDHostManagerModuleSwiftLoadFile.m; sourceTree = "<group>"; }; BEABC712299F7D6E0043716F /* GDHostManagerModuleSwiftLoadFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GDHostManagerModuleSwiftLoadFile.m; sourceTree = "<group>"; };
F66D9B2847F41AFAA303E455 /* Pods_HostManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HostManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F66D9B2847F41AFAA303E455 /* Pods_HostManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HostManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
...@@ -70,7 +68,6 @@ ...@@ -70,7 +68,6 @@
38E95B522948AAE800DE03BC /* GDHostManager.swift */, 38E95B522948AAE800DE03BC /* GDHostManager.swift */,
38E95B592948AD4500DE03BC /* Network */, 38E95B592948AD4500DE03BC /* Network */,
38E95B4B2948A10900DE03BC /* HostManager.h */, 38E95B4B2948A10900DE03BC /* HostManager.h */,
BE4AC90C2B456AAA0062EF42 /* GDHostUserDefault.swift */,
); );
path = HostManager; path = HostManager;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -238,7 +235,6 @@ ...@@ -238,7 +235,6 @@
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
38E95B532948AAE800DE03BC /* GDHostManager.swift in Sources */, 38E95B532948AAE800DE03BC /* GDHostManager.swift in Sources */,
BE4AC90D2B456AAA0062EF42 /* GDHostUserDefault.swift in Sources */,
38E95B5C2948AD7300DE03BC /* GDHostManagerAPI.swift in Sources */, 38E95B5C2948AD7300DE03BC /* GDHostManagerAPI.swift in Sources */,
BE595D34299E154400F40C46 /* GDHostManagerModule.swift in Sources */, BE595D34299E154400F40C46 /* GDHostManagerModule.swift in Sources */,
38E95B5D2948AD7300DE03BC /* GDHostManagerProvider.swift in Sources */, 38E95B5D2948AD7300DE03BC /* GDHostManagerProvider.swift in Sources */,
......
...@@ -14,37 +14,6 @@ import Moya ...@@ -14,37 +14,6 @@ import Moya
import GDRouter import GDRouter
import GDToolBox import GDToolBox
public struct GDHostManagerStore {
static let apiArray = "moya_apiArray"
// 开发环境key
static let envKey = "EnvKey"
/// 当前使用的环信Key
static let hyphenateKey = "hyphenateKey"
struct Custom {
static let apiAddress = "moya_custom_apiAddress"
static let imageDownUrl = "moya_custom_imageDownUrl"
static let accountsUrl = "moya_custom_accountsUrl"
static let webUrl = "moya_custom_webUrl"
static let redPacketUrl = "moya_custom_redPacketUrl"
static let payUrl = "moya_custom_payUrl"
static let h5Url = "moya_custom_h5Url"
static let openapiUrl = "moya_custom_openapi"
}
struct Production {
static let apiAddress = "moya_production_apiAddress"
static let imageDownUrl = "moya_production_imageDownUrl"
static let accountsUrl = "moya_production_accountsUrl"
static let webUrl = "moya_production_webUrl"
static let redPacketUrl = "moya_production_redPacketUrl"
static let payUrl = "moya_production_payUrl"
static let h5Url = "moya_production_h5Url"
static let openapiUrl = "moya_production_openapi"
}
}
public class GDHostManager { public class GDHostManager {
// 单例 // 单例
...@@ -82,27 +51,27 @@ public class GDHostManager { ...@@ -82,27 +51,27 @@ public class GDHostManager {
GDHostManager.apiAddress = userDefaults.string(forKey: GDHostManagerStore.Custom.apiAddress) ?? "https://zhibo.ishuaji.cn" GDHostManager.apiAddress = userDefaults.string(forKey: GDHostManagerStore.Custom.apiAddress) ?? "https://zhibo.ishuaji.cn"
GDHostManager.imageDownUrl = userDefaults.string(forKey: GDHostManagerStore.Custom.imageDownUrl) ?? "https://zhibocdn.ishuaji.cn/comm" GDHostManager.imageDownUrl = userDefaults.string(forKey: GDHostManagerStore.Custom.imageDownUrl) ?? "https://zhibocdn.ishuaji.cn/comm"
GDHostManager.accountsUrl = userDefaults.string(forKey: GDHostManagerStore.Custom.accountsUrl) ?? "https://accounts.ishuaji.cn" GDHostManager.accountsUrl = userDefaults.string(forKey: GDHostManagerStore.Custom.accountsUrl) ?? "https://accounts.ishuaji.cn"
GDHostManager.webUrl = userDefaults.string(forKey: GDHostUserDefault.Custom.webUrl) ?? "https://zhiboweb.lvdou66.com" GDHostManager.webUrl = userDefaults.string(forKey: GDHostManagerStore.Custom.webUrl) ?? "https://zhiboweb.lvdou66.com"
// GDHostManager.redPacketUrl = userDefaults.string(forKey: GDHostUserDefault.Custom.redPacketUrl) ?? "http://money.lvdou66.com" // GDHostManager.redPacketUrl = userDefaults.string(forKey: GDHostManagerStore.Custom.redPacketUrl) ?? "http://money.lvdou66.com"
GDHostManager.payUrl = userDefaults.string(forKey: GDHostUserDefault.Custom.payUrl) ?? "https://pay.ishuaji.cn" GDHostManager.payUrl = userDefaults.string(forKey: GDHostManagerStore.Custom.payUrl) ?? "https://pay.ishuaji.cn"
GDHostManager.h5Url = userDefaults.string(forKey: GDHostUserDefault.Custom.h5Url) ?? "https://activity.ishuaji.cn" GDHostManager.h5Url = userDefaults.string(forKey: GDHostManagerStore.Custom.h5Url) ?? "https://activity.ishuaji.cn"
GDHostManager.openapi = userDefaults.string(forKey: GDHostUserDefault.Custom.openapiUrl) ?? "https://openapi.lvdou66.com" GDHostManager.openapi = userDefaults.string(forKey: GDHostManagerStore.Custom.openapiUrl) ?? "https://openapi.lvdou66.com"
// 如果有自定义API,那么返回 // 如果有自定义API,那么返回
if let apiAddress : String = userDefaults.string(forKey: GDHostUserDefault.Custom.apiAddress) { if let apiAddress : String = userDefaults.string(forKey: GDHostManagerStore.Custom.apiAddress) {
if apiAddress != "" { if apiAddress != "" {
provider.request(.updateServer).mapToRequestResponse().subscribe(onSuccess: { result in provider.request(.updateServer).mapToRequestResponse().subscribe(onSuccess: { result in
// 业务 // 业务
let serversArray = result.json["servers"].arrayObject ?? [] let serversArray = result.json["servers"].arrayObject ?? []
if serversArray.count > 0 { if serversArray.count > 0 {
userDefaults.set(serversArray, forKey: GDHostUserDefault.apiArray) userDefaults.set(serversArray, forKey: GDHostManagerStore.apiArray)
GDHostManager.apiArray = serversArray GDHostManager.apiArray = serversArray
if let currentApiDic : [String:Any] = GDHostManager.apiArray[GDHostManager.apiArrayIndex] as? [String:Any] if let currentApiDic : [String:Any] = GDHostManager.apiArray[GDHostManager.apiArrayIndex] as? [String:Any]
{ {
if let api : String = currentApiDic["api"] as? String { if let api : String = currentApiDic["api"] as? String {
if let envValue = UserDefaults.standard.value(forKey: GDHostUserDefault.envKey) as? Int { if let envValue = UserDefaults.standard.value(forKey: GDHostManagerStore.envKey) as? Int {
let env = GDEnviroment(rawValue: envValue) let env = GDEnviroment(rawValue: envValue)
if env != .custom { if env != .custom {
// 非自定义 // 非自定义
...@@ -175,7 +144,7 @@ public class GDHostManager { ...@@ -175,7 +144,7 @@ public class GDHostManager {
GDHostManager.apiArrayIndex = 0 GDHostManager.apiArrayIndex = 0
let apiArray : [Any] = userDefaults.array(forKey: GDHostUserDefault.apiArray) ?? [] let apiArray : [Any] = userDefaults.array(forKey: GDHostManagerStore.apiArray) ?? []
if apiArray.count == 0 { if apiArray.count == 0 {
// 如果有API数据,那么加载数据 // 如果有API数据,那么加载数据
var basicServer1 = Dictionary<String, Any>() var basicServer1 = Dictionary<String, Any>()
...@@ -206,14 +175,14 @@ public class GDHostManager { ...@@ -206,14 +175,14 @@ public class GDHostManager {
} }
let historyapiAddress = userDefaults.string(forKey: GDHostUserDefault.Production.apiAddress) ?? "" let historyapiAddress = userDefaults.string(forKey: GDHostManagerStore.Production.apiAddress) ?? ""
let historyimageDownUrl = userDefaults.string(forKey: GDHostUserDefault.Production.imageDownUrl) ?? "" let historyimageDownUrl = userDefaults.string(forKey: GDHostManagerStore.Production.imageDownUrl) ?? ""
let historyaccountsUrl = userDefaults.string(forKey: GDHostUserDefault.Production.accountsUrl) ?? "" let historyaccountsUrl = userDefaults.string(forKey: GDHostManagerStore.Production.accountsUrl) ?? ""
let historywebUrl = userDefaults.string(forKey: GDHostUserDefault.Production.webUrl) ?? "" let historywebUrl = userDefaults.string(forKey: GDHostManagerStore.Production.webUrl) ?? ""
let historyredPacketUrl = userDefaults.string(forKey: GDHostUserDefault.Production.redPacketUrl) ?? "" let historyredPacketUrl = userDefaults.string(forKey: GDHostManagerStore.Production.redPacketUrl) ?? ""
let historypayUrl = userDefaults.string(forKey: GDHostUserDefault.Production.payUrl) ?? "" let historypayUrl = userDefaults.string(forKey: GDHostManagerStore.Production.payUrl) ?? ""
let historyh5Url = userDefaults.string(forKey: GDHostUserDefault.Production.h5Url) ?? "" let historyh5Url = userDefaults.string(forKey: GDHostManagerStore.Production.h5Url) ?? ""
let historyOpenapiUrl = userDefaults.string(forKey: GDHostUserDefault.Production.openapiUrl) ?? "" let historyOpenapiUrl = userDefaults.string(forKey: GDHostManagerStore.Production.openapiUrl) ?? ""
var currentapiAddress = "" var currentapiAddress = ""
var currentimageDownUrl = "" var currentimageDownUrl = ""
...@@ -284,14 +253,14 @@ public class GDHostManager { ...@@ -284,14 +253,14 @@ public class GDHostManager {
currentOpenapiUrl = historyOpenapiUrl currentOpenapiUrl = historyOpenapiUrl
} }
userDefaults.set(currentapiAddress, forKey: GDHostUserDefault.Production.apiAddress) userDefaults.set(currentapiAddress, forKey: GDHostManagerStore.Production.apiAddress)
userDefaults.set(currentimageDownUrl, forKey: GDHostUserDefault.Production.imageDownUrl) userDefaults.set(currentimageDownUrl, forKey: GDHostManagerStore.Production.imageDownUrl)
userDefaults.set(currentaccountsUrl, forKey: GDHostUserDefault.Production.accountsUrl) userDefaults.set(currentaccountsUrl, forKey: GDHostManagerStore.Production.accountsUrl)
userDefaults.set(currentwebUrl, forKey: GDHostUserDefault.Production.webUrl) userDefaults.set(currentwebUrl, forKey: GDHostManagerStore.Production.webUrl)
userDefaults.set(currentredPacketUrl, forKey: GDHostUserDefault.Production.redPacketUrl) userDefaults.set(currentredPacketUrl, forKey: GDHostManagerStore.Production.redPacketUrl)
userDefaults.set(currentpayUrl, forKey: GDHostUserDefault.Production.payUrl) userDefaults.set(currentpayUrl, forKey: GDHostManagerStore.Production.payUrl)
userDefaults.set(currenth5Url, forKey: GDHostUserDefault.Production.h5Url) userDefaults.set(currenth5Url, forKey: GDHostManagerStore.Production.h5Url)
userDefaults.set(currentOpenapiUrl, forKey: GDHostUserDefault.Production.openapiUrl) userDefaults.set(currentOpenapiUrl, forKey: GDHostManagerStore.Production.openapiUrl)
GDHostManager.apiAddress = currentapiAddress GDHostManager.apiAddress = currentapiAddress
GDHostManager.imageDownUrl = currentimageDownUrl GDHostManager.imageDownUrl = currentimageDownUrl
...@@ -306,7 +275,7 @@ public class GDHostManager { ...@@ -306,7 +275,7 @@ public class GDHostManager {
// 业务 // 业务
let serversArray = result.json["servers"].arrayObject ?? [] let serversArray = result.json["servers"].arrayObject ?? []
if serversArray.count > 0 { if serversArray.count > 0 {
userDefaults.set(serversArray, forKey: GDHostUserDefault.apiArray) userDefaults.set(serversArray, forKey: GDHostManagerStore.apiArray)
GDHostManager.apiArray = serversArray GDHostManager.apiArray = serversArray
if let currentApiDic : [String:Any] = GDHostManager.apiArray[GDHostManager.apiArrayIndex] as? [String:Any] if let currentApiDic : [String:Any] = GDHostManager.apiArray[GDHostManager.apiArrayIndex] as? [String:Any]
......
//
// GDHostUserDefault.swift
// HostManager
//
// Created by pierce on 2024/1/3.
//
import Foundation
struct GDHostUserDefault {
static let apiArray = "moya_apiArray"
// 开发环境key
static let envKey = "EnvKey"
/// 当前使用的环信Key
static let hyphenateKey = "hyphenateKey"
struct Custom {
static let apiAddress = "moya_custom_apiAddress"
static let imageDownUrl = "moya_custom_imageDownUrl"
static let accountsUrl = "moya_custom_accountsUrl"
static let webUrl = "moya_custom_webUrl"
static let redPacketUrl = "moya_custom_redPacketUrl"
static let payUrl = "moya_custom_payUrl"
static let h5Url = "moya_custom_h5Url"
static let openapiUrl = "moya_custom_openapi"
}
struct Production {
static let apiAddress = "moya_production_apiAddress"
static let imageDownUrl = "moya_production_imageDownUrl"
static let accountsUrl = "moya_production_accountsUrl"
static let webUrl = "moya_production_webUrl"
static let redPacketUrl = "moya_production_redPacketUrl"
static let payUrl = "moya_production_payUrl"
static let h5Url = "moya_production_h5Url"
static let openapiUrl = "moya_production_openapi"
}
}
...@@ -10,8 +10,12 @@ import GDToolBox ...@@ -10,8 +10,12 @@ import GDToolBox
import GDRouter import GDRouter
import Bifrost import Bifrost
@objc public class GDHostManagerModule: NSObject, GDHostManagerSwiftService { @objc public class GDHostManagerModule: NSObject, GDHostManagerSwiftRouter {
public func checkCurrentDNSAdress() {
GDHostManager.shared.checkCurrentDNSAdress()
}
public var apiAddress: String { GDHostManager.apiAddress } public var apiAddress: String { GDHostManager.apiAddress }
public var imageDownUrl: String { GDHostManager.imageDownUrl } public var imageDownUrl: String { GDHostManager.imageDownUrl }
...@@ -46,7 +50,7 @@ extension GDHostManagerModule: BifrostModuleProtocol { ...@@ -46,7 +50,7 @@ extension GDHostManagerModule: BifrostModuleProtocol {
} }
@objc public static func swiftLoad() { @objc public static func swiftLoad() {
Bifrost.registerService(GDHostManagerService.self, withModule: self) Bifrost.registerService(GDHostManagerRouter.self, withModule: self)
} }
public static func setupModuleSynchronously() -> Bool { public static func setupModuleSynchronously() -> Bool {
...@@ -70,4 +74,15 @@ class GDHostPlugin: GDToolBoxAPIPlugin { ...@@ -70,4 +74,15 @@ class GDHostPlugin: GDToolBoxAPIPlugin {
/// - Parameter params: 请求参数 /// - Parameter params: 请求参数
/// - Returns: 添加完固定参数的完整请求参数 /// - Returns: 添加完固定参数的完整请求参数
override func Params(_ params : [String : Any]) -> [String : Any] { GDHostManager.genarateParames(params) } override func Params(_ params : [String : Any]) -> [String : Any] { GDHostManager.genarateParames(params) }
override var customIpHostEnable: Bool {
GDRouter.Test?.env == .custom
}
override var customSocketIp: String {
(UserDefaults.standard.value(forKey: GDHostManagerStore.Socket.customIP) as? String) ?? ""
}
override var customSocketPort: String {
(UserDefaults.standard.value(forKey: GDHostManagerStore.Socket.customPort) as? String) ?? ""
}
} }
...@@ -59,9 +59,7 @@ use_frameworks! ...@@ -59,9 +59,7 @@ use_frameworks!
# # 环信 # # 环信
# pod 'HyphenateChat', '3.8.3.1' # pod 'HyphenateChat', '3.8.3.1'
# pod "TSVoiceConverter", '0.1.6' # pod "TSVoiceConverter", '0.1.6'
# #
# # 一键登录
# pod 'mob_secverify'
# # Crashlytics Firebase 的崩溃统计 # # Crashlytics Firebase 的崩溃统计
# pod 'Firebase/Crashlytics' # pod 'Firebase/Crashlytics'
# #
...@@ -119,6 +117,34 @@ target 'HostManager' do ...@@ -119,6 +117,34 @@ target 'HostManager' do
end end
target 'GDLoginAndRegistModule' do
use_frameworks!
inhibit_all_warnings!
project 'Module/GDLoginAndRegistModule/GDLoginAndRegistModule.xcodeproj'
pod 'GDToolBox', :path => './LocalPodSpec/GDToolBox'
pod 'GDRouter', :path => './LocalPodSpec/GDRouter'
# Lottie 动画
pod 'lottie-ios', '2.5.2'
# 一键登录
pod 'mob_secverify'
end
target 'GDTest' do
use_frameworks!
inhibit_all_warnings!
project 'Module/GDTest/GDTest.xcodeproj'
pod 'GDToolBox', :path => './LocalPodSpec/GDToolBox'
pod 'GDRouter', :path => './LocalPodSpec/GDRouter'
end
plugin 'cocoapods-pod-sign' plugin 'cocoapods-pod-sign'
skip_pod_bundle_sign # 用来跳过Xcode对bundle资源的签名 skip_pod_bundle_sign # 用来跳过Xcode对bundle资源的签名
......
...@@ -44,7 +44,11 @@ PODS: ...@@ -44,7 +44,11 @@ PODS:
- JXPageControl/Common - JXPageControl/Common
- JXSegmentedView (1.3.0) - JXSegmentedView (1.3.0)
- Kingfisher (7.10.1) - Kingfisher (7.10.1)
- lottie-ios (2.5.2)
- MJRefresh (3.7.6) - MJRefresh (3.7.6)
- mob_secverify (3.5.0):
- MOBFoundation
- MOBFoundation (3.2.60)
- Moya/Core (15.0.0): - Moya/Core (15.0.0):
- Alamofire (~> 5.0) - Alamofire (~> 5.0)
- Moya/RxSwift (15.0.0): - Moya/RxSwift (15.0.0):
...@@ -87,6 +91,8 @@ DEPENDENCIES: ...@@ -87,6 +91,8 @@ DEPENDENCIES:
- AliyunOSSiOS - AliyunOSSiOS
- GDRouter (from `./LocalPodSpec/GDRouter`) - GDRouter (from `./LocalPodSpec/GDRouter`)
- GDToolBox (from `./LocalPodSpec/GDToolBox`) - GDToolBox (from `./LocalPodSpec/GDToolBox`)
- lottie-ios (= 2.5.2)
- mob_secverify
SPEC REPOS: SPEC REPOS:
https://github.com/CocoaPods/Specs.git: https://github.com/CocoaPods/Specs.git:
...@@ -99,7 +105,10 @@ SPEC REPOS: ...@@ -99,7 +105,10 @@ SPEC REPOS:
- JXPageControl - JXPageControl
- JXSegmentedView - JXSegmentedView
- Kingfisher - Kingfisher
- lottie-ios
- MJRefresh - MJRefresh
- mob_secverify
- MOBFoundation
- Moya - Moya
- ObjcExceptionBridging - ObjcExceptionBridging
- ReachabilitySwift - ReachabilitySwift
...@@ -136,7 +145,10 @@ SPEC CHECKSUMS: ...@@ -136,7 +145,10 @@ SPEC CHECKSUMS:
JXPageControl: e9487b39e2e58fc17790833214f3b8e935bef98b JXPageControl: e9487b39e2e58fc17790833214f3b8e935bef98b
JXSegmentedView: fec0d335355b6e019c494fe2e030bde8a36d2df6 JXSegmentedView: fec0d335355b6e019c494fe2e030bde8a36d2df6
Kingfisher: bc5abe80a8e0144537ef1dd5a0b2621b04f7f439 Kingfisher: bc5abe80a8e0144537ef1dd5a0b2621b04f7f439
lottie-ios: 3fef45d3fabe63e3c7c2eb603dd64ddfffc73062
MJRefresh: 2fe7fb43a5167ceda20bb7e63f130c04fd1814a5 MJRefresh: 2fe7fb43a5167ceda20bb7e63f130c04fd1814a5
mob_secverify: f3c6fb24e7213075f84a550001041250fb90c2fb
MOBFoundation: d1ffddeaac634bb13f21a5a5e3445baee8d405d8
Moya: 138f0573e53411fb3dc17016add0b748dfbd78ee Moya: 138f0573e53411fb3dc17016add0b748dfbd78ee
ObjcExceptionBridging: c30e00eb3700467e695faeea30e26e18bd445001 ObjcExceptionBridging: c30e00eb3700467e695faeea30e26e18bd445001
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
...@@ -155,6 +167,6 @@ SPEC CHECKSUMS: ...@@ -155,6 +167,6 @@ SPEC CHECKSUMS:
XCGLogger: 1943831ef907df55108b0b18657953f868de973b XCGLogger: 1943831ef907df55108b0b18657953f868de973b
YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7
PODFILE CHECKSUM: 1b9657e911d16b2322c8413d3a6be150c803b102 PODFILE CHECKSUM: 3ab4bf85f8b60bc5283727a990f31cc20da9c13a
COCOAPODS: 1.11.3 COCOAPODS: 1.11.3
...@@ -44,7 +44,11 @@ PODS: ...@@ -44,7 +44,11 @@ PODS:
- JXPageControl/Common - JXPageControl/Common
- JXSegmentedView (1.3.0) - JXSegmentedView (1.3.0)
- Kingfisher (7.10.1) - Kingfisher (7.10.1)
- lottie-ios (2.5.2)
- MJRefresh (3.7.6) - MJRefresh (3.7.6)
- mob_secverify (3.5.0):
- MOBFoundation
- MOBFoundation (3.2.60)
- Moya/Core (15.0.0): - Moya/Core (15.0.0):
- Alamofire (~> 5.0) - Alamofire (~> 5.0)
- Moya/RxSwift (15.0.0): - Moya/RxSwift (15.0.0):
...@@ -87,6 +91,8 @@ DEPENDENCIES: ...@@ -87,6 +91,8 @@ DEPENDENCIES:
- AliyunOSSiOS - AliyunOSSiOS
- GDRouter (from `./LocalPodSpec/GDRouter`) - GDRouter (from `./LocalPodSpec/GDRouter`)
- GDToolBox (from `./LocalPodSpec/GDToolBox`) - GDToolBox (from `./LocalPodSpec/GDToolBox`)
- lottie-ios (= 2.5.2)
- mob_secverify
SPEC REPOS: SPEC REPOS:
https://github.com/CocoaPods/Specs.git: https://github.com/CocoaPods/Specs.git:
...@@ -99,7 +105,10 @@ SPEC REPOS: ...@@ -99,7 +105,10 @@ SPEC REPOS:
- JXPageControl - JXPageControl
- JXSegmentedView - JXSegmentedView
- Kingfisher - Kingfisher
- lottie-ios
- MJRefresh - MJRefresh
- mob_secverify
- MOBFoundation
- Moya - Moya
- ObjcExceptionBridging - ObjcExceptionBridging
- ReachabilitySwift - ReachabilitySwift
...@@ -136,7 +145,10 @@ SPEC CHECKSUMS: ...@@ -136,7 +145,10 @@ SPEC CHECKSUMS:
JXPageControl: e9487b39e2e58fc17790833214f3b8e935bef98b JXPageControl: e9487b39e2e58fc17790833214f3b8e935bef98b
JXSegmentedView: fec0d335355b6e019c494fe2e030bde8a36d2df6 JXSegmentedView: fec0d335355b6e019c494fe2e030bde8a36d2df6
Kingfisher: bc5abe80a8e0144537ef1dd5a0b2621b04f7f439 Kingfisher: bc5abe80a8e0144537ef1dd5a0b2621b04f7f439
lottie-ios: 3fef45d3fabe63e3c7c2eb603dd64ddfffc73062
MJRefresh: 2fe7fb43a5167ceda20bb7e63f130c04fd1814a5 MJRefresh: 2fe7fb43a5167ceda20bb7e63f130c04fd1814a5
mob_secverify: f3c6fb24e7213075f84a550001041250fb90c2fb
MOBFoundation: d1ffddeaac634bb13f21a5a5e3445baee8d405d8
Moya: 138f0573e53411fb3dc17016add0b748dfbd78ee Moya: 138f0573e53411fb3dc17016add0b748dfbd78ee
ObjcExceptionBridging: c30e00eb3700467e695faeea30e26e18bd445001 ObjcExceptionBridging: c30e00eb3700467e695faeea30e26e18bd445001
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
...@@ -155,6 +167,6 @@ SPEC CHECKSUMS: ...@@ -155,6 +167,6 @@ SPEC CHECKSUMS:
XCGLogger: 1943831ef907df55108b0b18657953f868de973b XCGLogger: 1943831ef907df55108b0b18657953f868de973b
YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7
PODFILE CHECKSUM: 1b9657e911d16b2322c8413d3a6be150c803b102 PODFILE CHECKSUM: 3ab4bf85f8b60bc5283727a990f31cc20da9c13a
COCOAPODS: 1.11.3 COCOAPODS: 1.11.3
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -8,6 +8,12 @@ ...@@ -8,6 +8,12 @@
location = "group:Module" location = "group:Module"
name = "Module"> name = "Module">
<FileRef <FileRef
location = "group:GDTest/GDTest.xcodeproj">
</FileRef>
<FileRef
location = "group:GDLoginAndRegistModule/GDLoginAndRegistModule.xcodeproj">
</FileRef>
<FileRef
location = "group:GDUserInfoManager/GDUserInfoManager.xcodeproj"> location = "group:GDUserInfoManager/GDUserInfoManager.xcodeproj">
</FileRef> </FileRef>
<FileRef <FileRef
......
...@@ -20,10 +20,26 @@ ...@@ -20,10 +20,26 @@
BE595D2A299E107300F40C46 /* TencentOpenAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE595D29299E107300F40C46 /* TencentOpenAPI.framework */; }; BE595D2A299E107300F40C46 /* TencentOpenAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE595D29299E107300F40C46 /* TencentOpenAPI.framework */; };
BE6F41F62B47AD990058C826 /* GDDataManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE6F41F52B47AD990058C826 /* GDDataManager.framework */; }; BE6F41F62B47AD990058C826 /* GDDataManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE6F41F52B47AD990058C826 /* GDDataManager.framework */; };
BE7B3C612B45736B0068FDDE /* GDUserInfoManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE7B3C602B45736B0068FDDE /* GDUserInfoManager.framework */; }; BE7B3C612B45736B0068FDDE /* GDUserInfoManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE7B3C602B45736B0068FDDE /* GDUserInfoManager.framework */; };
BEB7BC0C2B4941D900B3D9B1 /* GDTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEB7BC0A2B4941D900B3D9B1 /* GDTest.framework */; };
BEB7BC0E2B4941D900B3D9B1 /* GDTestBundle.bundle in Embed PlugIns */ = {isa = PBXBuildFile; fileRef = BEB7BC0B2B4941D900B3D9B1 /* GDTestBundle.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
BEFDEDDA2B4028C40056254C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEFDEDD92B4028C40056254C /* SystemConfiguration.framework */; }; BEFDEDDA2B4028C40056254C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEFDEDD92B4028C40056254C /* SystemConfiguration.framework */; };
BEFDEDE02B4417BC0056254C /* HostManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEFDEDDF2B4417BC0056254C /* HostManager.framework */; }; BEFDEDE02B4417BC0056254C /* HostManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEFDEDDF2B4417BC0056254C /* HostManager.framework */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
BEB7BC102B4941D900B3D9B1 /* Embed PlugIns */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 7;
files = (
BEB7BC0E2B4941D900B3D9B1 /* GDTestBundle.bundle in Embed PlugIns */,
);
name = "Embed PlugIns";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
0D55969CC2888C20039DBB6D /* Pods_TealiveModule.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_TealiveModule.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 0D55969CC2888C20039DBB6D /* Pods_TealiveModule.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_TealiveModule.framework; sourceTree = BUILT_PRODUCTS_DIR; };
3888D62329407F5E00807031 /* TealiveModule.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TealiveModule.app; sourceTree = BUILT_PRODUCTS_DIR; }; 3888D62329407F5E00807031 /* TealiveModule.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TealiveModule.app; sourceTree = BUILT_PRODUCTS_DIR; };
...@@ -55,7 +71,11 @@ ...@@ -55,7 +71,11 @@
BE595D39299E19CB00F40C46 /* GDDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BE595D39299E19CB00F40C46 /* GDDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BE595D3C299E19D900F40C46 /* HostManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = HostManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BE595D3C299E19D900F40C46 /* HostManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = HostManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BE6F41F52B47AD990058C826 /* GDDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BE6F41F52B47AD990058C826 /* GDDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BE6F42B82B4901280058C826 /* GDLoginAndRegistModule.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDLoginAndRegistModule.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BE6F42B92B4901280058C826 /* GDLoginAndRegistModuleBundle.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = GDLoginAndRegistModuleBundle.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
BE7B3C602B45736B0068FDDE /* GDUserInfoManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDUserInfoManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BE7B3C602B45736B0068FDDE /* GDUserInfoManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDUserInfoManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BEB7BC0A2B4941D900B3D9B1 /* GDTest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDTest.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BEB7BC0B2B4941D900B3D9B1 /* GDTestBundle.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = GDTestBundle.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
BEFDEDD92B4028C40056254C /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; BEFDEDD92B4028C40056254C /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
BEFDEDDB2B4416490056254C /* GDDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BEFDEDDB2B4416490056254C /* GDDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BEFDEDDF2B4417BC0056254C /* HostManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = HostManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BEFDEDDF2B4417BC0056254C /* HostManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = HostManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
...@@ -76,6 +96,7 @@ ...@@ -76,6 +96,7 @@
BE352D15299CE2D700FE07AB /* TencentOpenAPI.framework in Frameworks */, BE352D15299CE2D700FE07AB /* TencentOpenAPI.framework in Frameworks */,
BE352D0C299CE1D800FE07AB /* CoreMotion.framework in Frameworks */, BE352D0C299CE1D800FE07AB /* CoreMotion.framework in Frameworks */,
BE7B3C612B45736B0068FDDE /* GDUserInfoManager.framework in Frameworks */, BE7B3C612B45736B0068FDDE /* GDUserInfoManager.framework in Frameworks */,
BEB7BC0C2B4941D900B3D9B1 /* GDTest.framework in Frameworks */,
1E7D81FAF6A4CFE803CA4C3B /* Pods_TealiveModule.framework in Frameworks */, 1E7D81FAF6A4CFE803CA4C3B /* Pods_TealiveModule.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
...@@ -118,6 +139,10 @@ ...@@ -118,6 +139,10 @@
8C945B4FCAACDD2D17AF8C17 /* Frameworks */ = { 8C945B4FCAACDD2D17AF8C17 /* Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
BEB7BC0A2B4941D900B3D9B1 /* GDTest.framework */,
BEB7BC0B2B4941D900B3D9B1 /* GDTestBundle.bundle */,
BE6F42B82B4901280058C826 /* GDLoginAndRegistModule.framework */,
BE6F42B92B4901280058C826 /* GDLoginAndRegistModuleBundle.bundle */,
BE6F41F52B47AD990058C826 /* GDDataManager.framework */, BE6F41F52B47AD990058C826 /* GDDataManager.framework */,
BE7B3C602B45736B0068FDDE /* GDUserInfoManager.framework */, BE7B3C602B45736B0068FDDE /* GDUserInfoManager.framework */,
BE4AC9072B45681C0062EF42 /* GDUserInfoManager.framework */, BE4AC9072B45681C0062EF42 /* GDUserInfoManager.framework */,
...@@ -178,6 +203,7 @@ ...@@ -178,6 +203,7 @@
3888D62129407F5E00807031 /* Resources */, 3888D62129407F5E00807031 /* Resources */,
B0716C8B90805F351BDD6020 /* [CP] Embed Pods Frameworks */, B0716C8B90805F351BDD6020 /* [CP] Embed Pods Frameworks */,
3D669BE08025764EB79439FC /* [CP] Copy Pods Resources */, 3D669BE08025764EB79439FC /* [CP] Copy Pods Resources */,
BEB7BC102B4941D900B3D9B1 /* Embed PlugIns */,
); );
buildRules = ( buildRules = (
); );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment