Commit 50998729 by pierce

1、Tabbar 模块

2、fixed 登录成功后闪退的问题
parent bef88438
Showing with 897 additions and 106 deletions
...@@ -28,6 +28,8 @@ ...@@ -28,6 +28,8 @@
//根据图片名称获取图片 //根据图片名称获取图片
+ (UIImage *_Nullable)imageNamed:(NSString *_Nullable)imageName; + (UIImage *_Nullable)imageNamed:(NSString *_Nullable)imageName;
+ (nullable NSArray<UIImage *> *)animatedImageArrayNamed:(NSString * __nonnull)name;
+ (nullable UIImage *)animatedImageNamed:(NSString * __nonnull)name duration:(NSTimeInterval)duration; + (nullable UIImage *)animatedImageNamed:(NSString * __nonnull)name duration:(NSTimeInterval)duration;
+ (nullable UIImage *)imageWithContentFile:(NSString *__nonnull)imageName inBundle:(NSBundle *_Nullable)bundle; + (nullable UIImage *)imageWithContentFile:(NSString *__nonnull)imageName inBundle:(NSBundle *_Nullable)bundle;
......
...@@ -46,6 +46,12 @@ ...@@ -46,6 +46,12 @@
+ (nullable UIImage *)animatedImageWithContentFile:(NSString *)name duration:(NSTimeInterval)duration { + (nullable UIImage *)animatedImageWithContentFile:(NSString *)name duration:(NSTimeInterval)duration {
NSArray *images = [self animatedImageArrayNamed:name];
return [UIImage animatedImageWithImages:images duration:duration];
}
+ (nullable NSArray<UIImage *> *)animatedImageArrayNamed:(NSString * __nonnull)name {
NSMutableArray *images = [NSMutableArray array]; NSMutableArray *images = [NSMutableArray array];
for (NSInteger i = 0; i < 40; i++) { for (NSInteger i = 0; i < 40; i++) {
UIImage *image = [self imageWithContentFile:[NSString stringWithFormat:@"%@%zd",name,i] inBundle:[self.class bundle]]; UIImage *image = [self imageWithContentFile:[NSString stringWithFormat:@"%@%zd",name,i] inBundle:[self.class bundle]];
...@@ -53,7 +59,7 @@ ...@@ -53,7 +59,7 @@
[images addObject:image]; [images addObject:image];
} }
} }
return [UIImage animatedImageWithImages:images duration:duration]; return images;
} }
+ (nullable UIImage *)animatedImageWithContentFile:(NSString *)name count:(NSInteger)count duration:(NSTimeInterval)duration { + (nullable UIImage *)animatedImageWithContentFile:(NSString *)name count:(NSInteger)count duration:(NSTimeInterval)duration {
......
...@@ -10,7 +10,7 @@ import RxSwift ...@@ -10,7 +10,7 @@ import RxSwift
import RxCocoa import RxCocoa
// 不用这个 // 不用这个
@objc public protocol GDBaseBussinessRouter { @objc public protocol GDBaseBussinessRouter: GDRouterProtocol {
} }
......
...@@ -15,7 +15,7 @@ public struct GDChatRoomArchieveKey { ...@@ -15,7 +15,7 @@ public struct GDChatRoomArchieveKey {
} }
// 不用这个 // 不用这个
@objc public protocol GDChatRoomRouter { @objc public protocol GDChatRoomRouter: GDRouterProtocol {
} }
......
...@@ -17,7 +17,7 @@ public struct GDDataManagerPublicUDKeys { ...@@ -17,7 +17,7 @@ public struct GDDataManagerPublicUDKeys {
} }
// 不用这个 // 不用这个
@objc public protocol GDDataManagerRouter { @objc public protocol GDDataManagerRouter: GDRouterProtocol {
} }
......
...@@ -75,7 +75,7 @@ struct GDEnviromentModel { ...@@ -75,7 +75,7 @@ struct GDEnviromentModel {
} }
// 不用这个 // 不用这个
@objc public protocol GDHostManagerRouter { } @objc public protocol GDHostManagerRouter: GDRouterProtocol { }
public protocol GDHostManagerSwiftRouter: GDHostManagerRouter { public protocol GDHostManagerSwiftRouter: GDHostManagerRouter {
......
...@@ -14,10 +14,12 @@ public struct GDLoginAndRegistPublicUDKey { ...@@ -14,10 +14,12 @@ public struct GDLoginAndRegistPublicUDKey {
} }
// 不用这个 // 不用这个
@objc public protocol GDLoginAndRegistRouter { @objc public protocol GDLoginAndRegistRouter: GDRouterProtocol {
} }
public protocol GDLoginAndRegistSwiftRouter: GDLoginAndRegistRouter { public protocol GDLoginAndRegistSwiftRouter: GDLoginAndRegistRouter {
func showVisitorLoginView(vc: UIViewController?, showPhoneLogin: Bool)
func bringSplashViewToFront()
func removeSplashView()
} }
//
// GDMyModuleRouter.swift
// GDRouter
//
// Created by pierce on 2024/1/16.
//
import Foundation
// 不用这个
@objc public protocol GDMyModuleRouter: GDRouterProtocol {
}
public protocol GDMyModuleSwiftRouter: GDMyModuleRouter {
}
//
// GDSearchRouter.swift
// GDRouter
//
// Created by pierce on 2024/1/16.
//
import Foundation
// 不用这个
@objc public protocol GDSearchRouter: GDRouterProtocol {
}
public protocol GDSearchSwiftRouter: GDSearchRouter {
}
...@@ -121,7 +121,7 @@ public enum GDSocial { ...@@ -121,7 +121,7 @@ public enum GDSocial {
} }
// 不用这个 // 不用这个
@objc public protocol GDSocialCenterRouter { @objc public protocol GDSocialCenterRouter: GDRouterProtocol {
} }
......
//
// GDSquareRouter.swift
// GDRouter
//
// Created by pierce on 2024/1/16.
//
import Foundation
// 不用这个
@objc public protocol GDSquareRouter: GDRouterProtocol {
}
public protocol GDSquareSwiftRouter: GDSquareRouter {
}
//
// GDTabbarRouter.swift
// GDRouter
//
// Created by pierce on 2024/1/16.
//
import Foundation
// 不用这个
@objc public protocol GDTabbarRouter: GDRouterProtocol {
}
public protocol GDTabbarSwiftRouter: GDTabbarRouter {
var tabbarVC: UITabBarController? { get }
}
...@@ -21,7 +21,7 @@ public enum GDEnv: Int { ...@@ -21,7 +21,7 @@ public enum GDEnv: Int {
} }
// 不用这个 // 不用这个
@objc public protocol GDTestRouter { @objc public protocol GDTestRouter: GDRouterProtocol {
} }
public protocol GDTestSwiftRouter: GDTestRouter { public protocol GDTestSwiftRouter: GDTestRouter {
......
...@@ -26,7 +26,7 @@ public struct GDUserManagerPublicUDKey { ...@@ -26,7 +26,7 @@ public struct GDUserManagerPublicUDKey {
} }
// 不用这个 // 不用这个
@objc public protocol GDUserManagerRouter { @objc public protocol GDUserManagerRouter: GDRouterProtocol {
} }
......
//
// GDUserZoneRouter.swift
// GDRouter
//
// Created by pierce on 2024/1/16.
//
import Foundation
// 不用这个
@objc public protocol GDUserZoneRouter: GDRouterProtocol {
}
public protocol GDUserZoneSwiftRouter: GDUserZoneRouter {
}
...@@ -12,16 +12,17 @@ import Bifrost ...@@ -12,16 +12,17 @@ import Bifrost
public class GDRouter: NSObject { public class GDRouter: NSObject {
@objc public static func loginSuccessSetup() { @objc public static func loginSuccessSetup() {
for module in Bifrost.allRegisteredModules() {
if let module = module as? GDRouterProtocol { for moduleClass in Bifrost.allRegisteredModules() {
if let module = moduleClass.sharedInstance() as? GDRouterProtocol {
module.loginSuccessSetup() module.loginSuccessSetup()
} }
} }
} }
@objc public static func loginOut() { @objc public static func loginOut() {
for module in Bifrost.allRegisteredModules() { for moduleClass in Bifrost.allRegisteredModules() {
if let module = module as? GDRouterProtocol { if let module = moduleClass.sharedInstance() as? GDRouterProtocol {
module.loginOut() module.loginOut()
} }
} }
...@@ -66,5 +67,31 @@ public class GDRouter: NSObject { ...@@ -66,5 +67,31 @@ public class GDRouter: NSObject {
public static var SocialCenter: GDSocialCenterSwiftRouter? { public static var SocialCenter: GDSocialCenterSwiftRouter? {
Bifrost.module(byService: GDSocialCenterRouter.self) as? GDSocialCenterSwiftRouter Bifrost.module(byService: GDSocialCenterRouter.self) as? GDSocialCenterSwiftRouter
} }
/// Tabbar
public static var Tabbar: GDTabbarSwiftRouter? {
Bifrost.module(byService: GDTabbarRouter.self) as? GDTabbarSwiftRouter
}
/// 我的
public static var MyModule: GDMyModuleSwiftRouter? {
Bifrost.module(byService: GDMyModuleRouter.self) as? GDMyModuleSwiftRouter
}
/// 空间
public static var UserZone: GDUserZoneSwiftRouter? {
Bifrost.module(byService: GDUserZoneRouter.self) as? GDUserZoneSwiftRouter
}
/// 搜索
public static var Search: GDSearchSwiftRouter? {
Bifrost.module(byService: GDSearchRouter.self) as? GDSearchSwiftRouter
}
/// 广场
public static var Square: GDSquareSwiftRouter? {
Bifrost.module(byService: GDSquareRouter.self) as? GDSquareSwiftRouter
}
} }
...@@ -13,6 +13,14 @@ import RxSwift ...@@ -13,6 +13,14 @@ import RxSwift
import UMCommon import UMCommon
@objc public class GDBaseBussinessModule: NSObject, GDBaseBussinessSwiftRouter { @objc public class GDBaseBussinessModule: NSObject, GDBaseBussinessSwiftRouter {
@objc public func loginSuccessSetup() {
}
@objc public func loginOut() {
}
public var isCurrentVersionVerified: BehaviorRelay<Bool> { Application.shared.isCurrentVersionVerified } public var isCurrentVersionVerified: BehaviorRelay<Bool> { Application.shared.isCurrentVersionVerified }
......
...@@ -22,7 +22,7 @@ import Bifrost ...@@ -22,7 +22,7 @@ import Bifrost
} }
extension GDDataManagerModule: GDRouterProtocol { extension GDDataManagerModule: GDRouterProtocol {
public func loginSuccessSetup() { @objc public func loginSuccessSetup() {
// 拉取单聊礼物 // 拉取单聊礼物
GDResourceCenter.shared.checkChatGiftData(from: .server)// 校验数据 GDResourceCenter.shared.checkChatGiftData(from: .server)// 校验数据
GDDataManager.shared.checkData() GDDataManager.shared.checkData()
...@@ -43,7 +43,7 @@ extension GDDataManagerModule: GDRouterProtocol { ...@@ -43,7 +43,7 @@ extension GDDataManagerModule: GDRouterProtocol {
} }
} }
public func loginOut() { @objc public func loginOut() {
} }
} }
......
...@@ -181,22 +181,20 @@ class GDSplashView: BaseView { ...@@ -181,22 +181,20 @@ class GDSplashView: BaseView {
} }
if GDRouter.UserRouter?.isLogin.value == true { if GDRouter.UserRouter?.isLogin.value == true {
//TODO:tabbar: added By Pidan if let tabbarVC = UIApplication.shared.keyWindow?.rootViewController as? UITabBarController {
// if let tabbarVC = UIApplication.shared.keyWindow?.rootViewController as? GDTabBarViewController {
// let splashUrl = GDRouter.DataRouter?.splashModel.value?.url
// let splashUrl = GDRouter.DataRouter?.splashModel.value?.url
// if isValidString(splashUrl) {
// if isValidString(splashUrl) { let webVC = GDWebViewController(url: splashUrl ?? "")
// let webVC = GDWebViewController(url: splashUrl ?? "") webVC.hidesBottomBarWhenPushed = true
// webVC.hidesBottomBarWhenPushed = true
// if let naviVC = tabbarVC.selectedViewController as? BaseNavigationController {
// if let naviVC = tabbarVC.selectedViewController as? BaseNavigationController { self?.dismiss()
// self?.dismiss() naviVC.pushViewController(webVC, animated: true)
// naviVC.pushViewController(webVC, animated: true) }
// } }
// } }
//
// }
} else { } else {
GDRouter.UserRouter?.openSplashWhenLogin = true GDRouter.UserRouter?.openSplashWhenLogin = true
......
...@@ -13,10 +13,47 @@ import Bifrost ...@@ -13,10 +13,47 @@ import Bifrost
@objc public class GDLoginAndRegistModule: NSObject, GDLoginAndRegistSwiftRouter { @objc public class GDLoginAndRegistModule: NSObject, GDLoginAndRegistSwiftRouter {
let disposeBag = DisposeBag() let disposeBag = DisposeBag()
public func showVisitorLoginView(vc: UIViewController? = nil, showPhoneLogin: Bool = false) {
let loginVC = LoginViewController()
let navigationVC = BaseNavigationController(rootViewController: loginVC)
navigationVC.modalPresentationStyle = .fullScreen
if let vc = vc {
vc.present(navigationVC, animated: true, completion: nil)
} else {
UIApplication.shared.keyWindow?.rootViewController?.present(navigationVC, animated: true, completion: nil)
}
if showPhoneLogin {
loginVC.visitorDirectPhoneLogin = true
delay(0.35) {
loginVC.phoneNumberLogin()
}
}
}
public func bringSplashViewToFront() {
if let splashView = UIApplication.shared.keyWindow?.viewWithTag(splashViewTag) {
UIApplication.shared.keyWindow?.bringSubviewToFront(splashView)
}
}
public func removeSplashView() {
if let splashView = UIApplication.shared.keyWindow?.viewWithTag(splashViewTag) {
UIApplication.shared.keyWindow?.bringSubviewToFront(splashView)
}
}
} }
extension GDLoginAndRegistModule: GDRouterProtocol { extension GDLoginAndRegistModule: GDRouterProtocol {
public func loginSuccessSetup() { @objc public func loginSuccessSetup() {
// 检测是否需要绑定手机 // 检测是否需要绑定手机
if GDRouter.UserRouter?.user.value.phone?.count == 0 && GDRouter.UserRouter?.newRegisterUser.value == false { if GDRouter.UserRouter?.user.value.phone?.count == 0 && GDRouter.UserRouter?.newRegisterUser.value == false {
...@@ -31,7 +68,7 @@ extension GDLoginAndRegistModule: GDRouterProtocol { ...@@ -31,7 +68,7 @@ extension GDLoginAndRegistModule: GDRouterProtocol {
} }
} }
public func loginOut() { @objc public func loginOut() {
} }
} }
......
...@@ -25,11 +25,18 @@ extension GDSocial.Target { ...@@ -25,11 +25,18 @@ extension GDSocial.Target {
} }
} }
public class GDSocialCenterModule: NSObject, GDSocialCenterRouter { public class GDSocialCenterModule: NSObject, GDSocialCenterSwiftRouter {
@objc public func loginSuccessSetup() {
}
@objc public func loginOut() {
}
/// 第三方登录 /// 第三方登录
/// - Parameter model: 登录数据 Model /// - Parameter model: 登录数据 Model
func login(with model: GDSocialLoginModel, vc: UIViewController?) { public func login(with model: GDSocialLoginModel, vc: UIViewController?) {
GDSocialPlatCenter.shared.login(with: model, vc: vc) GDSocialPlatCenter.shared.login(with: model, vc: vc)
} }
} }
...@@ -47,7 +54,7 @@ extension GDSocialCenterModule: BifrostModuleProtocol { ...@@ -47,7 +54,7 @@ extension GDSocialCenterModule: BifrostModuleProtocol {
} }
@objc public static func swiftLoad() { @objc public static func swiftLoad() {
Bifrost.registerService(GDUserManagerRouter.self, withModule: self) Bifrost.registerService(GDSocialCenterRouter.self, withModule: self)
} }
public static func setupModuleSynchronously() -> Bool { public static func setupModuleSynchronously() -> Bool {
......
...@@ -37,7 +37,7 @@ class GDSocialPlatCenter: BaseViewModel { ...@@ -37,7 +37,7 @@ class GDSocialPlatCenter: BaseViewModel {
GDPlat.WeChat.register() GDPlat.WeChat.register()
// 为QQ的代理创建弱引用 // 为QQ的代理创建弱引用
weak var weakSelf = self as! TencentSessionDelegate weak var weakSelf = self as? TencentSessionDelegate
guard let weakSelf = weakSelf else { guard let weakSelf = weakSelf else {
GDlog.error("QQ 初始化失败") GDlog.error("QQ 初始化失败")
return return
...@@ -588,7 +588,7 @@ struct GDPlat { ...@@ -588,7 +588,7 @@ struct GDPlat {
return TencentOAuth.handleUniversalLink(url) return TencentOAuth.handleUniversalLink(url)
} }
static func setup(with delegate: TencentSessionDelegate) -> TencentOAuth { static func setup(with delegate: TencentSessionDelegate) -> TencentOAuth? {
return TencentOAuth(appId: GDSDK.gd_QQAppId, andDelegate: delegate) return TencentOAuth(appId: GDSDK.gd_QQAppId, andDelegate: delegate)
} }
......
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 56;
objects = {
/* Begin PBXBuildFile section */
88A9CB0AAFB8840A001E4557 /* Pods_GDTabbar.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1164F3BA4E423A59BEE1E95A /* Pods_GDTabbar.framework */; };
BE84EBF82B56626C00DB8883 /* GDTabbar.h in Headers */ = {isa = PBXBuildFile; fileRef = BE84EBF72B56626C00DB8883 /* GDTabbar.h */; settings = {ATTRIBUTES = (Public, ); }; };
BE84EC122B5668F600DB8883 /* GDTabbarModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE84EC0F2B5668F600DB8883 /* GDTabbarModule.swift */; };
BE84EC132B5668F600DB8883 /* GDTabbarBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE84EC102B5668F600DB8883 /* GDTabbarBundle.swift */; };
BE84EC142B5668F600DB8883 /* GDTabbarModuleSwiftLoadFile.m in Sources */ = {isa = PBXBuildFile; fileRef = BE84EC112B5668F600DB8883 /* GDTabbarModuleSwiftLoadFile.m */; };
BE84EC2E2B56799300DB8883 /* GDTabBarViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE84EC262B56799300DB8883 /* GDTabBarViewModel.swift */; };
BE84EC2F2B56799300DB8883 /* GDTabBarModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE84EC282B56799300DB8883 /* GDTabBarModel.swift */; };
BE84EC302B56799300DB8883 /* GDTabBarItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE84EC2B2B56799300DB8883 /* GDTabBarItemView.swift */; };
BE84EC312B56799300DB8883 /* GDTabBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE84EC2C2B56799300DB8883 /* GDTabBarView.swift */; };
BE84EC322B56799300DB8883 /* GDTabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE84EC2D2B56799300DB8883 /* GDTabBarViewController.swift */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
1164F3BA4E423A59BEE1E95A /* Pods_GDTabbar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_GDTabbar.framework; sourceTree = BUILT_PRODUCTS_DIR; };
5BF80808B2B11B600B714B8C /* Pods-GDTabbar.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-GDTabbar.release.xcconfig"; path = "Target Support Files/Pods-GDTabbar/Pods-GDTabbar.release.xcconfig"; sourceTree = "<group>"; };
6F2B83CA3FFC11473D9D3DB4 /* Pods-GDTabbar.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-GDTabbar.debug.xcconfig"; path = "Target Support Files/Pods-GDTabbar/Pods-GDTabbar.debug.xcconfig"; sourceTree = "<group>"; };
BE84EBF42B56626C00DB8883 /* GDTabbar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GDTabbar.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BE84EBF72B56626C00DB8883 /* GDTabbar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GDTabbar.h; sourceTree = "<group>"; };
BE84EC0A2B5663B500DB8883 /* GDTabbarBundle.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GDTabbarBundle.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
BE84EC0F2B5668F600DB8883 /* GDTabbarModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDTabbarModule.swift; sourceTree = "<group>"; };
BE84EC102B5668F600DB8883 /* GDTabbarBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDTabbarBundle.swift; sourceTree = "<group>"; };
BE84EC112B5668F600DB8883 /* GDTabbarModuleSwiftLoadFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GDTabbarModuleSwiftLoadFile.m; sourceTree = "<group>"; };
BE84EC262B56799300DB8883 /* GDTabBarViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDTabBarViewModel.swift; sourceTree = "<group>"; };
BE84EC282B56799300DB8883 /* GDTabBarModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDTabBarModel.swift; sourceTree = "<group>"; };
BE84EC2B2B56799300DB8883 /* GDTabBarItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDTabBarItemView.swift; sourceTree = "<group>"; };
BE84EC2C2B56799300DB8883 /* GDTabBarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDTabBarView.swift; sourceTree = "<group>"; };
BE84EC2D2B56799300DB8883 /* GDTabBarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDTabBarViewController.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
BE84EBF12B56626C00DB8883 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
88A9CB0AAFB8840A001E4557 /* Pods_GDTabbar.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
BE84EC072B5663B500DB8883 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
4C1A23496F5A9A42F770B29A /* Frameworks */ = {
isa = PBXGroup;
children = (
1164F3BA4E423A59BEE1E95A /* Pods_GDTabbar.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
59001170A728799E82EC3B65 /* Pods */ = {
isa = PBXGroup;
children = (
6F2B83CA3FFC11473D9D3DB4 /* Pods-GDTabbar.debug.xcconfig */,
5BF80808B2B11B600B714B8C /* Pods-GDTabbar.release.xcconfig */,
);
name = Pods;
path = ../../Pods;
sourceTree = "<group>";
};
BE84EBEA2B56626C00DB8883 = {
isa = PBXGroup;
children = (
BE84EBF62B56626C00DB8883 /* GDTabbar */,
BE84EBF52B56626C00DB8883 /* Products */,
59001170A728799E82EC3B65 /* Pods */,
4C1A23496F5A9A42F770B29A /* Frameworks */,
);
sourceTree = "<group>";
};
BE84EBF52B56626C00DB8883 /* Products */ = {
isa = PBXGroup;
children = (
BE84EBF42B56626C00DB8883 /* GDTabbar.framework */,
BE84EC0A2B5663B500DB8883 /* GDTabbarBundle.bundle */,
);
name = Products;
sourceTree = "<group>";
};
BE84EBF62B56626C00DB8883 /* GDTabbar */ = {
isa = PBXGroup;
children = (
BE84EC242B56799300DB8883 /* Feature */,
BE84EC192B56694300DB8883 /* GDTabbarBundle.bundle */,
BE84EBF72B56626C00DB8883 /* GDTabbar.h */,
BE84EC0E2B5668F600DB8883 /* Module */,
);
path = GDTabbar;
sourceTree = "<group>";
};
BE84EC0E2B5668F600DB8883 /* Module */ = {
isa = PBXGroup;
children = (
BE84EC0F2B5668F600DB8883 /* GDTabbarModule.swift */,
BE84EC102B5668F600DB8883 /* GDTabbarBundle.swift */,
BE84EC112B5668F600DB8883 /* GDTabbarModuleSwiftLoadFile.m */,
);
path = Module;
sourceTree = "<group>";
};
BE84EC192B56694300DB8883 /* GDTabbarBundle.bundle */ = {
isa = PBXGroup;
children = (
);
path = GDTabbarBundle.bundle;
sourceTree = "<group>";
};
BE84EC242B56799300DB8883 /* Feature */ = {
isa = PBXGroup;
children = (
BE84EC252B56799300DB8883 /* ViewModel */,
BE84EC272B56799300DB8883 /* Model */,
BE84EC292B56799300DB8883 /* View */,
);
path = Feature;
sourceTree = "<group>";
};
BE84EC252B56799300DB8883 /* ViewModel */ = {
isa = PBXGroup;
children = (
BE84EC262B56799300DB8883 /* GDTabBarViewModel.swift */,
);
path = ViewModel;
sourceTree = "<group>";
};
BE84EC272B56799300DB8883 /* Model */ = {
isa = PBXGroup;
children = (
BE84EC282B56799300DB8883 /* GDTabBarModel.swift */,
);
path = Model;
sourceTree = "<group>";
};
BE84EC292B56799300DB8883 /* View */ = {
isa = PBXGroup;
children = (
BE84EC2A2B56799300DB8883 /* TabBarView */,
BE84EC2D2B56799300DB8883 /* GDTabBarViewController.swift */,
);
path = View;
sourceTree = "<group>";
};
BE84EC2A2B56799300DB8883 /* TabBarView */ = {
isa = PBXGroup;
children = (
BE84EC2B2B56799300DB8883 /* GDTabBarItemView.swift */,
BE84EC2C2B56799300DB8883 /* GDTabBarView.swift */,
);
path = TabBarView;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
BE84EBEF2B56626C00DB8883 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
BE84EBF82B56626C00DB8883 /* GDTabbar.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
BE84EBF32B56626C00DB8883 /* GDTabbar */ = {
isa = PBXNativeTarget;
buildConfigurationList = BE84EBFB2B56626C00DB8883 /* Build configuration list for PBXNativeTarget "GDTabbar" */;
buildPhases = (
C4EA0A78FDDF5CC6FAE20198 /* [CP] Check Pods Manifest.lock */,
BE84EBEF2B56626C00DB8883 /* Headers */,
BE84EBF02B56626C00DB8883 /* Sources */,
BE84EBF12B56626C00DB8883 /* Frameworks */,
BE84EBF22B56626C00DB8883 /* Resources */,
26C1DDD1EF7B385E333E828C /* [CP] Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
);
name = GDTabbar;
productName = GDTabbar;
productReference = BE84EBF42B56626C00DB8883 /* GDTabbar.framework */;
productType = "com.apple.product-type.framework";
};
BE84EC092B5663B500DB8883 /* GDTabbarBundle */ = {
isa = PBXNativeTarget;
buildConfigurationList = BE84EC0B2B5663B500DB8883 /* Build configuration list for PBXNativeTarget "GDTabbarBundle" */;
buildPhases = (
BE84EC062B5663B500DB8883 /* Sources */,
BE84EC072B5663B500DB8883 /* Frameworks */,
BE84EC082B5663B500DB8883 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = GDTabbarBundle;
productName = GDTabbarBundle;
productReference = BE84EC0A2B5663B500DB8883 /* GDTabbarBundle.bundle */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
BE84EBEB2B56626C00DB8883 /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastUpgradeCheck = 1520;
TargetAttributes = {
BE84EBF32B56626C00DB8883 = {
CreatedOnToolsVersion = 15.2;
};
BE84EC092B5663B500DB8883 = {
CreatedOnToolsVersion = 15.2;
};
};
};
buildConfigurationList = BE84EBEE2B56626C00DB8883 /* Build configuration list for PBXProject "GDTabbar" */;
compatibilityVersion = "Xcode 14.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = BE84EBEA2B56626C00DB8883;
productRefGroup = BE84EBF52B56626C00DB8883 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
BE84EBF32B56626C00DB8883 /* GDTabbar */,
BE84EC092B5663B500DB8883 /* GDTabbarBundle */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
BE84EBF22B56626C00DB8883 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
BE84EC082B5663B500DB8883 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
26C1DDD1EF7B385E333E828C /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-GDTabbar/Pods-GDTabbar-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-GDTabbar/Pods-GDTabbar-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-GDTabbar/Pods-GDTabbar-resources.sh\"\n";
showEnvVarsInLog = 0;
};
C4EA0A78FDDF5CC6FAE20198 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-GDTabbar-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
BE84EBF02B56626C00DB8883 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
BE84EC302B56799300DB8883 /* GDTabBarItemView.swift in Sources */,
BE84EC2F2B56799300DB8883 /* GDTabBarModel.swift in Sources */,
BE84EC132B5668F600DB8883 /* GDTabbarBundle.swift in Sources */,
BE84EC2E2B56799300DB8883 /* GDTabBarViewModel.swift in Sources */,
BE84EC312B56799300DB8883 /* GDTabBarView.swift in Sources */,
BE84EC322B56799300DB8883 /* GDTabBarViewController.swift in Sources */,
BE84EC122B5668F600DB8883 /* GDTabbarModule.swift in Sources */,
BE84EC142B5668F600DB8883 /* GDTabbarModuleSwiftLoadFile.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
BE84EC062B5663B500DB8883 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
BE84EBF92B56626C00DB8883 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 17.2;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
BE84EBFA2B56626C00DB8883 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 17.2;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
BE84EBFC2B56626C00DB8883 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6F2B83CA3FFC11473D9D3DB4 /* Pods-GDTabbar.debug.xcconfig */;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 6GG26BHUMC;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_MODULE_VERIFIER = NO;
ENABLE_TESTABILITY = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MARKETING_VERSION = 1.0;
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
PRODUCT_BUNDLE_IDENTIFIER = com.qs.live.ios.GDTabbar;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
BE84EBFD2B56626C00DB8883 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 5BF80808B2B11B600B714B8C /* Pods-GDTabbar.release.xcconfig */;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 6GG26BHUMC;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_MODULE_VERIFIER = NO;
ENABLE_TESTABILITY = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MARKETING_VERSION = 1.0;
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
PRODUCT_BUNDLE_IDENTIFIER = com.qs.live.ios.GDTabbar;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
BE84EC0C2B5663B500DB8883 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 6GG26BHUMC;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INFOPLIST_KEY_NSPrincipalClass = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MACOSX_DEPLOYMENT_TARGET = 12.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.qs.live.ios.GDTabbarBundle;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
WRAPPER_EXTENSION = bundle;
};
name = Debug;
};
BE84EC0D2B5663B500DB8883 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 6GG26BHUMC;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INFOPLIST_KEY_NSPrincipalClass = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MACOSX_DEPLOYMENT_TARGET = 12.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.qs.live.ios.GDTabbarBundle;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
WRAPPER_EXTENSION = bundle;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
BE84EBEE2B56626C00DB8883 /* Build configuration list for PBXProject "GDTabbar" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BE84EBF92B56626C00DB8883 /* Debug */,
BE84EBFA2B56626C00DB8883 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
BE84EBFB2B56626C00DB8883 /* Build configuration list for PBXNativeTarget "GDTabbar" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BE84EBFC2B56626C00DB8883 /* Debug */,
BE84EBFD2B56626C00DB8883 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
BE84EC0B2B5663B500DB8883 /* Build configuration list for PBXNativeTarget "GDTabbarBundle" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BE84EC0C2B5663B500DB8883 /* Debug */,
BE84EC0D2B5663B500DB8883 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = BE84EBEB2B56626C00DB8883 /* Project object */;
}
//
// GDTabbar.h
// GDTabbar
//
// Created by pierce on 2024/1/16.
//
#import <Foundation/Foundation.h>
//! Project version number for GDTabbar.
FOUNDATION_EXPORT double GDTabbarVersionNumber;
//! Project version string for GDTabbar.
FOUNDATION_EXPORT const unsigned char GDTabbarVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <GDTabbar/PublicHeader.h>
...@@ -10,15 +10,24 @@ import GDRouter ...@@ -10,15 +10,24 @@ import GDRouter
import GDToolBox import GDToolBox
import Bifrost import Bifrost
public class GDTestModule: NSObject, GDTestRouter { public class GDTestModule: NSObject, GDTestSwiftRouter {
var env: GDEnv {
@objc public func loginSuccessSetup() {
}
@objc public func loginOut() {
}
public var env: GDEnv {
if let envValue = UserDefaults.standard.value(forKey: GDHostManagerStore.envKey) as? Int { if let envValue = UserDefaults.standard.value(forKey: GDHostManagerStore.envKey) as? Int {
let env = GDEnv(rawValue: envValue) ?? .product let env = GDEnv(rawValue: envValue) ?? .product
return env return env
} }
return .product return .product
} }
func envViewController() -> UIViewController { public func envViewController() -> UIViewController {
GDEnvViewController() GDEnvViewController()
} }
} }
...@@ -36,7 +45,7 @@ extension GDTestModule: BifrostModuleProtocol { ...@@ -36,7 +45,7 @@ extension GDTestModule: BifrostModuleProtocol {
} }
@objc public static func swiftLoad() { @objc public static func swiftLoad() {
Bifrost.registerService(GDUserManagerRouter.self, withModule: self) Bifrost.registerService(GDTestRouter.self, withModule: self)
} }
public static func setupModuleSynchronously() -> Bool { public static func setupModuleSynchronously() -> Bool {
......
...@@ -217,11 +217,11 @@ import Bifrost ...@@ -217,11 +217,11 @@ import Bifrost
extension GDUserInfoManagerModule: GDRouterProtocol { extension GDUserInfoManagerModule: GDRouterProtocol {
public func loginSuccessSetup() { @objc public func loginSuccessSetup() {
} }
public func loginOut() { @objc public func loginOut() {
} }
} }
......
...@@ -426,63 +426,6 @@ class GDUserCenter: BaseViewModel { ...@@ -426,63 +426,6 @@ class GDUserCenter: BaseViewModel {
self?.hadBeenKickOffline(event: event) self?.hadBeenKickOffline(event: event)
}).disposed(by: disposeBag) }).disposed(by: disposeBag)
// 控制登录控制器
GDUserCenter.shared.isLogin.distinctUntilChanged().skip(1).subscribe(onNext: { login in
//TODO:Tabbar:移到对应的位置: added By Pidan
// if login {
// if let currentVC = UIApplication.shared.keyWindow?.rootViewController {
// currentVC.dismiss(animated: false, completion: nil)
// currentVC.navigationController?.popToRootViewController(animated: false)
// }
// UIApplication.shared.keyWindow?.rootViewController = GDTabBarViewController()
//
// if let splashView = UIApplication.shared.keyWindow?.viewWithTag(splashViewTag) {
// UIApplication.shared.keyWindow?.bringSubviewToFront(splashView)
// }
//
// if GDUserCenter.shared.openSplashWhenLogin {
// GDUserCenter.shared.openSplashWhenLogin = false
// // 打开闪屏页
// if let splashView = UIApplication.shared.keyWindow?.viewWithTag(splashViewTag) as? GDSplashView {
// splashView.dismiss()
// }
//
// let model = GDRouter.DataRouter?.splashModel.value
//
// if let tabbarVC = UIApplication.shared.keyWindow?.rootViewController as? GDTabBarViewController {
//
// let splashUrl = model?.url
//
// if isValidString(splashUrl) {
// let webVC = GDWebViewController(url: splashUrl ?? "")
// webVC.hidesBottomBarWhenPushed = true
//
// if let naviVC = tabbarVC.selectedViewController as? BaseNavigationController {
// naviVC.pushViewController(webVC, animated: true)
// }
// }
// }
//
// }
// }
}).disposed(by: disposeBag)
GDUserCenter.shared.isVisitor.distinctUntilChanged().skip(1).subscribe(onNext: {[weak self] visitor in
//TODO:Tabbar:移到对应的位置: added By Pidan
// // 在游客模式下注册登录成功
// if visitor == false && GDUserCenter.shared.isLogin.value == true {
// self?.logVisitorUseTime()
// if let currentVC = UIApplication.shared.keyWindow?.rootViewController {
// currentVC.dismiss(animated: false, completion: nil)
// currentVC.navigationController?.popToRootViewController(animated: false)
// GDLiveHelper.shared.quitRoom()
// }
// UIApplication.shared.keyWindow?.rootViewController = GDTabBarViewController()
// }
}).disposed(by: disposeBag)
GDUserCenter.shared.isVisitor.distinctUntilChanged().subscribe(onNext: {[weak self] visitor in GDUserCenter.shared.isVisitor.distinctUntilChanged().subscribe(onNext: {[weak self] visitor in
if visitor { if visitor {
self?.visitorTimer?.invalidate() self?.visitorTimer?.invalidate()
......
...@@ -11,6 +11,12 @@ import GDRouter ...@@ -11,6 +11,12 @@ import GDRouter
import Bifrost import Bifrost
@objc public class GDHostManagerModule: NSObject, GDHostManagerSwiftRouter { @objc public class GDHostManagerModule: NSObject, GDHostManagerSwiftRouter {
@objc public func loginSuccessSetup() {
}
@objc public func loginOut() {
}
public func checkCurrentDNSAdress() { public func checkCurrentDNSAdress() {
GDHostManager.shared.checkCurrentDNSAdress() GDHostManager.shared.checkCurrentDNSAdress()
......
...@@ -189,6 +189,19 @@ target 'GDSocialCenter' do ...@@ -189,6 +189,19 @@ target 'GDSocialCenter' do
end end
target 'GDTabbar' do
use_frameworks!
inhibit_all_warnings!
project 'Module/GDTabbar/GDTabbar.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资源的签名
......
...@@ -182,6 +182,6 @@ SPEC CHECKSUMS: ...@@ -182,6 +182,6 @@ SPEC CHECKSUMS:
XCGLogger: 1943831ef907df55108b0b18657953f868de973b XCGLogger: 1943831ef907df55108b0b18657953f868de973b
YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7
PODFILE CHECKSUM: ba07b9c7b94784bf6822bd71a8c499cf6400a0e2 PODFILE CHECKSUM: c65ee28367fd4b153188c3cb82ed28f86725acca
COCOAPODS: 1.11.3 COCOAPODS: 1.11.3
...@@ -182,6 +182,6 @@ SPEC CHECKSUMS: ...@@ -182,6 +182,6 @@ SPEC CHECKSUMS:
XCGLogger: 1943831ef907df55108b0b18657953f868de973b XCGLogger: 1943831ef907df55108b0b18657953f868de973b
YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7
PODFILE CHECKSUM: ba07b9c7b94784bf6822bd71a8c499cf6400a0e2 PODFILE CHECKSUM: c65ee28367fd4b153188c3cb82ed28f86725acca
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.
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
location = "container:" location = "container:"
name = "BaseModules"> name = "BaseModules">
<FileRef <FileRef
location = "group:Module/GDTabbar/GDTabbar.xcodeproj">
</FileRef>
<FileRef
location = "group:Module/GDBaseBussiness/GDBaseBussiness.xcodeproj"> location = "group:Module/GDBaseBussiness/GDBaseBussiness.xcodeproj">
</FileRef> </FileRef>
<FileRef <FileRef
......
...@@ -17,10 +17,11 @@ ...@@ -17,10 +17,11 @@
BE51BA682B5006F400D11735 /* GDDataManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE6F41F52B47AD990058C826 /* GDDataManager.framework */; }; BE51BA682B5006F400D11735 /* GDDataManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE6F41F52B47AD990058C826 /* GDDataManager.framework */; };
BE51BA6A2B5006F700D11735 /* GDLoginAndRegistModule.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEB7BC4B2B4D72E000B3D9B1 /* GDLoginAndRegistModule.framework */; }; BE51BA6A2B5006F700D11735 /* GDLoginAndRegistModule.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEB7BC4B2B4D72E000B3D9B1 /* GDLoginAndRegistModule.framework */; };
BE51BA6C2B5006FE00D11735 /* GDSocialCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEB7BC2C2B4D272400B3D9B1 /* GDSocialCenter.framework */; }; BE51BA6C2B5006FE00D11735 /* GDSocialCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEB7BC2C2B4D272400B3D9B1 /* GDSocialCenter.framework */; };
BE51BA6E2B50070100D11735 /* GDTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEB7BC0A2B4941D900B3D9B1 /* GDTest.framework */; };
BE51BA702B50070400D11735 /* GDUserInfoManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE7B3C602B45736B0068FDDE /* GDUserInfoManager.framework */; }; BE51BA702B50070400D11735 /* GDUserInfoManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE7B3C602B45736B0068FDDE /* GDUserInfoManager.framework */; };
BE51BA722B50070700D11735 /* HostManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEFDEDDF2B4417BC0056254C /* HostManager.framework */; }; BE51BA722B50070700D11735 /* HostManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEFDEDDF2B4417BC0056254C /* HostManager.framework */; };
BE51BA742B50070A00D11735 /* MetalPerformanceShaders.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE352CEA299CD01C00FE07AB /* MetalPerformanceShaders.framework */; }; BE51BA742B50070A00D11735 /* MetalPerformanceShaders.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE352CEA299CD01C00FE07AB /* MetalPerformanceShaders.framework */; };
BE84EC352B567DCC00DB8883 /* GDTabbar.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE84EC332B567DCC00DB8883 /* GDTabbar.framework */; };
BE84EC3A2B567DE500DB8883 /* GDTabbarBundle.bundle in Embed PlugIns */ = {isa = PBXBuildFile; fileRef = BE84EC342B567DCC00DB8883 /* GDTabbarBundle.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
BED30A3E2B55391B0044EA1A /* GDLoginBundle.bundle in Embed PlugIns */ = {isa = PBXBuildFile; fileRef = BED30A3D2B55391B0044EA1A /* GDLoginBundle.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BED30A3E2B55391B0044EA1A /* GDLoginBundle.bundle in Embed PlugIns */ = {isa = PBXBuildFile; fileRef = BED30A3D2B55391B0044EA1A /* GDLoginBundle.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 */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
...@@ -32,6 +33,7 @@ ...@@ -32,6 +33,7 @@
dstPath = ""; dstPath = "";
dstSubfolderSpec = 7; dstSubfolderSpec = 7;
files = ( files = (
BE84EC3A2B567DE500DB8883 /* GDTabbarBundle.bundle in Embed PlugIns */,
BED30A3E2B55391B0044EA1A /* GDLoginBundle.bundle in Embed PlugIns */, BED30A3E2B55391B0044EA1A /* GDLoginBundle.bundle in Embed PlugIns */,
); );
name = "Embed PlugIns"; name = "Embed PlugIns";
...@@ -69,6 +71,8 @@ ...@@ -69,6 +71,8 @@
BE6F42B82B4901280058C826 /* GDLoginAndRegistModule.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDLoginAndRegistModule.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; }; 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; };
BE84EC332B567DCC00DB8883 /* GDTabbar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDTabbar.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BE84EC342B567DCC00DB8883 /* GDTabbarBundle.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = GDTabbarBundle.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
BEB7BC0A2B4941D900B3D9B1 /* GDTest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDTest.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; }; BEB7BC0B2B4941D900B3D9B1 /* GDTestBundle.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = GDTestBundle.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
BEB7BC2C2B4D272400B3D9B1 /* GDSocialCenter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDSocialCenter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BEB7BC2C2B4D272400B3D9B1 /* GDSocialCenter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GDSocialCenter.framework; sourceTree = BUILT_PRODUCTS_DIR; };
...@@ -94,11 +98,11 @@ ...@@ -94,11 +98,11 @@
BE51BA742B50070A00D11735 /* MetalPerformanceShaders.framework in Frameworks */, BE51BA742B50070A00D11735 /* MetalPerformanceShaders.framework in Frameworks */,
BE352D0B299CE1D000FE07AB /* Accelerate.framework in Frameworks */, BE352D0B299CE1D000FE07AB /* Accelerate.framework in Frameworks */,
BE352D0C299CE1D800FE07AB /* CoreMotion.framework in Frameworks */, BE352D0C299CE1D800FE07AB /* CoreMotion.framework in Frameworks */,
BE51BA6E2B50070100D11735 /* GDTest.framework in Frameworks */,
1E7D81FAF6A4CFE803CA4C3B /* Pods_TealiveModule.framework in Frameworks */, 1E7D81FAF6A4CFE803CA4C3B /* Pods_TealiveModule.framework in Frameworks */,
BE51BA652B5006F000D11735 /* GDBaseBussiness.framework in Frameworks */, BE51BA652B5006F000D11735 /* GDBaseBussiness.framework in Frameworks */,
BE51BA682B5006F400D11735 /* GDDataManager.framework in Frameworks */, BE51BA682B5006F400D11735 /* GDDataManager.framework in Frameworks */,
BE51BA6C2B5006FE00D11735 /* GDSocialCenter.framework in Frameworks */, BE51BA6C2B5006FE00D11735 /* GDSocialCenter.framework in Frameworks */,
BE84EC352B567DCC00DB8883 /* GDTabbar.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -137,6 +141,8 @@ ...@@ -137,6 +141,8 @@
8C945B4FCAACDD2D17AF8C17 /* Frameworks */ = { 8C945B4FCAACDD2D17AF8C17 /* Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
BE84EC332B567DCC00DB8883 /* GDTabbar.framework */,
BE84EC342B567DCC00DB8883 /* GDTabbarBundle.bundle */,
BED30A3D2B55391B0044EA1A /* GDLoginBundle.bundle */, BED30A3D2B55391B0044EA1A /* GDLoginBundle.bundle */,
BEDB6DD22B4FDE4A000B2451 /* GDBaseBussiness.framework */, BEDB6DD22B4FDE4A000B2451 /* GDBaseBussiness.framework */,
BEB7BC4B2B4D72E000B3D9B1 /* GDLoginAndRegistModule.framework */, BEB7BC4B2B4D72E000B3D9B1 /* GDLoginAndRegistModule.framework */,
......
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