Commit 7342028a by pierce

补充提交文件

parent 50998729
Showing with 1098 additions and 0 deletions
//
// GDTabBarModel.swift
// TealiveSwift
//
// Created by Jim Chan on 2020/7/2.
// Copyright © 2020 YAZHAI Inc. All rights reserved.
//
import Foundation
import RxSwift
import RxCocoa
import GDToolBox
enum GDTabBarType {
case mainPage
case follow
case me
case message
}
protocol GDTabBarSubControlerType {
}
class GDTabBarModel {
let type: GDTabBarType
var title: String
var normalImage: UIImage
var selectImage: UIImage
var animateImages: [UIImage]
let controller: UIViewController
let select = BehaviorRelay<Bool>(value: false)
init(type: GDTabBarType,
title: String,
normalImage: UIImage,
selectImage: UIImage,
animateImages: [UIImage],
controller: UIViewController) {
self.type = type
self.title = title
self.normalImage = normalImage
self.selectImage = selectImage
self.animateImages = animateImages
self.controller = controller
}
//TODO:添加vc: added By Pidan
static func create(_ type: GDTabBarType) -> GDTabBarModel {
switch type {
case .mainPage:
break
// let liveVC = RoomListViewController()
// let navVC = BaseNavigationController()
// navVC.modalPresentationStyle = .overFullScreen
// navVC.addChild(liveVC)
// return GDTabBarModel(type: type,
// title: "直播",
// normalImage:GDTabbarBundle.imageNamed( "tabbar_home_item_unselect") ?? UIImage(),
// selectImage:GDTabbarBundle.imageNamed( "tabbar_home_item_31") ?? UIImage(),
// animateImages: UIImage.getAnimateImageArray(for: "tabbar_home_item_"),
// controller: navVC)
case .me:
break
// // 构建导航控制器
// let userVC = GDMyPageController()
// let navVC = BaseNavigationController()
// navVC.modalPresentationStyle = .overFullScreen
// navVC.addChild(userVC)
// return GDTabBarModel(type: type,
// title: "我的",
// normalImage:GDTabbarBundle.imageNamed( "tabbar_me_item_unselect") ?? UIImage(),
// selectImage:GDTabbarBundle.imageNamed( "tabbar_me_item_31") ?? UIImage(),
// animateImages: UIImage.getAnimateImageArray(for: "tabbar_me_item_"),
// controller: navVC)
case .message:
break
// let messageVC = GDMessageViewController()
// let navVC = BaseNavigationController()
// navVC.modalPresentationStyle = .overFullScreen
// navVC.addChild(messageVC)
// return GDTabBarModel(type: type,
// title: "消息",
// normalImage:GDTabbarBundle.imageNamed( "tabbar_message_item_unselect") ?? UIImage(),
// selectImage:GDTabbarBundle.imageNamed( "tabbar_message_item_31") ?? UIImage(),
// animateImages: UIImage.getAnimateImageArray(for: "tabbar_message_item_"),
// controller: navVC)
case .follow:
break
}
let vc = BaseViewController()
let navVC = BaseNavigationController()
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(vc)
return GDTabBarModel(type: type,
title: "直播",
normalImage: GDTabbarBundle.imageNamed("tabbar_home_item_unselect") ?? UIImage(),
selectImage:GDTabbarBundle.imageNamed( "tabbar_home_item_31") ?? UIImage(),
animateImages: GDTabbarBundle.animatedImageArrayNamed("tabbar_home_item_") ?? .init(),
controller: navVC)
}
}
//
// GDTabBarViewController.swift
// TealiveSwift
//
// Created by Jim Chan on 2020/7/1.
// Copyright © 2020 YAZHAI Inc. All rights reserved.
//
import UIKit
import RxSwift
import RxCocoa
import GDToolBox
class GDTabBarViewController: UITabBarController {
// MARK: Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
// 赋值子控制器
self.viewControllers = viewModel.elements.value.map { $0.controller }
makeUI()
bindViewModel()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
tabBar.height = tabBarHeight
tabBar.y = self.view.frame.size.height - tabBar.frame.size.height;
tabBar.barStyle = .black
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
GDlog.verbose("--.TExt -> TabBar VC Appear")
customTabBar?.refresh.onNext(())
}
// MARK: UI
func makeUI() {
self.view.backgroundColor = .white
makeCustomTabBar()
setupTabBar()
}
var customTabBar: GDTabBarView?
func makeCustomTabBar() {
customTabBar = GDTabBarView(viewModel: viewModel)
customTabBar!.frame = CGRect(x: 0, y: 0, width: GDScreen.width, height: tabBarHeight)
customTabBar!.backgroundColor = .white
tabBar.addSubview(customTabBar!)
tabBar.isTranslucent = false
tabBar.backgroundColor = .clear
tabBar.height = tabBarHeight
if tabBar.items != nil {
for item in tabBar.items! {
item.title = nil
item.isEnabled = false
}
}
}
func setupTabBar() {
// 设置原生 Tabbar title 透明
UITabBarItem.appearance().setTitleTextAttributes([.foregroundColor:UIColor.clear], for: .normal)
UITabBarItem.appearance().setTitleTextAttributes([.foregroundColor:UIColor.clear], for: .selected)
if #available(iOS 13.0, *) {
let tabBarAppearance = UITabBarAppearance()
tabBarAppearance.backgroundImage = UIImage(color: .clear)!
tabBarAppearance.backgroundImage = nil
tabBarAppearance.backgroundColor = .clear
tabBarAppearance.shadowImage = UIImage(color: .clear)
tabBarAppearance.shadowImage = nil
tabBarAppearance.shadowColor = UIColor.clear
self.tabBar.standardAppearance = tabBarAppearance
} else {
var selectedAttr = UITabBarItem.appearance().titleTextAttributes(for: .selected)!
selectedAttr[.foregroundColor] = UIColor.clear
UITabBarItem.appearance().setTitleTextAttributes(selectedAttr, for: .selected)
UITabBarItem.appearance().setTitleTextAttributes([.foregroundColor:UIColor.clear], for: .normal)
self.tabBar.shadowImage = UIImage(color: .clear)
self.tabBar.backgroundImage = UIImage(color: .clear)
}
}
// MARK: Data
let viewModel = GDTabBarViewModel()
func bindViewModel() {
// 绑定选中
viewModel.selectedIndex.bind(to: self.rx.selectedIndex).disposed(by: viewModel.disposeBag)
}
// MARK: Method
func getFrame(for type: GDTabBarType) -> CGRect? {
if let index = viewModel.elements.value.firstIndex(where: { $0.type == type }) {
if let cell = customTabBar?.collectionView.cellForItem(at: .init(row: Int(index), section: 0)) {
let rect = cell.convert(cell.bounds, to: UIApplication.shared.keyWindow)
return rect
}
}
return nil
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
setupTabBar()
}
}
extension Reactive where Base: UITabBarController {
var selectedIndex: Binder<Int> {
return Binder.init(base) { (vc, index) in
vc.selectedIndex = index
for view in vc.tabBar.subviews {
if view is GDTabBarView {
} else {
view.alpha = 0
view.isHidden = true
}
}
}
}
}
//
// GDTabBarItemView.swift
// TealiveSwift
//
// Created by Jim Chan on 2020/7/2.
// Copyright © 2020 YAZHAI Inc. All rights reserved.
//
import UIKit
import RxSwift
import RxCocoa
import GDRouter
class GDTabBarItemView: UICollectionViewCell {
let refresh = PublishSubject<Void>()
// MARK: Init
override init(frame: CGRect) {
super.init(frame: frame)
makeUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// MARK: UI
private func makeUI() {
self.backgroundColor = .clear
self.contentView.layer.masksToBounds = false
self.layer.masksToBounds = false
makeTitleLabel()
makeImageView()
}
let imageView = UIImageView()
let titleLabel = UILabel()
let unreadView = UIView(frame: .zero)
private func makeImageView() {
imageView.contentMode = .scaleAspectFit
self.addSubview(imageView)
imageView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.width.height.equalTo(30)
make.bottom.equalTo(titleLabel.snp.top).offset(-4)
}
}
private func makeTitleLabel() {
titleLabel.font = .tl_default(11)
titleLabel.textColor = .black
self.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.bottom.equalToSuperview().offset(-8)
make.height.equalTo(12)
}
}
private func makeUnreadView() {
guard unreadView.superview == nil else { return }
unreadView.backgroundColor = .red
unreadView.layer.masksToBounds = true
unreadView.layer.cornerRadius = 4
unreadView.isHidden = true
self.addSubview(unreadView)
unreadView.snp.makeConstraints { (make) in
make.top.equalTo(imageView.snp.top).offset(1)
make.right.equalTo(imageView.snp.right).offset(-1)
make.width.height.equalTo(8)
}
}
// MARK: Data
var model: GDTabBarModel?
let disposeBag = DisposeBag()
var reuseDisposeBag = DisposeBag()
func bind(to model: GDTabBarModel) {
self.model = model
reuseDisposeBag = DisposeBag()
titleLabel.text = model.title
imageView.image = model.normalImage
model.select.distinctUntilChanged().bind(to: self.select).disposed(by: disposeBag)
if model.type == .me {
// 需要显示未读数
self.makeUnreadView()
func refreshUnread() {
//TODO:红点: added By Pidan
// if GDRouter.DataRouter?.newWearNum.value <= 0 && GDRouter.DataRouter?.rewardCount.value <= 0 && UserCenter.shared.fightTeamCenter.hadUnreadMsg.value == false && UserCenter.shared.fightTeamCenter.hadFightTeamInvite.value == false && UserCenter.shared.fightTeamCenter.applyCount.value <= 0 {
// unreadView.isHidden = true
// } else {
unreadView.isHidden = false
// }
}
refreshUnread()
//TODO:红点: added By Pidan
// GDRouter.DataRouter?.shared.newWearNum.subscribe(onNext: { _ in
// refreshUnread()
// }).disposed(by: disposeBag)
//
// GDRouter.DataRouter?.rewardCount.subscribe(onNext: { _ in
// refreshUnread()
// }).disposed(by: disposeBag)
//
// UserCenter.shared.fightTeamCenter.hadUnreadMsg.subscribe(onNext: { _ in
// refreshUnread()
// }).disposed(by: disposeBag)
//
// UserCenter.shared.fightTeamCenter.hadFightTeamInvite.subscribe(onNext: { _ in
// refreshUnread()
// }).disposed(by: disposeBag)
//
// UserCenter.shared.fightTeamCenter.applyCount.subscribe(onNext: { _ in
// refreshUnread()
// }).disposed(by: disposeBag)
} else if model.type == .message {
// 需要显示未读数
self.makeUnreadView()
//TODO:消息红点: added By Pidan
// GDMessageListCenter.shared.hadUnread.distinctUntilChanged().subscribe(onNext: {[weak self] hadUnread in
// if hadUnread {
// self?.unreadView.isHidden = false
// } else {
// self?.unreadView.isHidden = true
// }
// }).disposed(by: disposeBag)
// Observable.combineLatest(model.select.distinctUntilChanged(), GDMessageListCenter.shared.hadUnread.distinctUntilChanged()).subscribe(onNext: {[weak self] isSelect, hadUnread in
// if isSelect == false && hadUnread == true {
// let animation = CAKeyframeAnimation(keyPath: "transform.rotation")
// animation.values = [0, CGFloat.pi / 180 * 15, -CGFloat.pi / 180 * 15, CGFloat.pi / 180 * 10, -CGFloat.pi / 180 * 10, CGFloat.pi / 180 * 5, -CGFloat.pi / 180 * 5, 0]
// animation.duration = 1.5
// animation.timingFunction = .init(name: .easeOut)
// animation.repeatCount = .infinity
// self?.imageView.layer.add(animation, forKey: "shake")
// } else {
// self?.imageView.layer.removeAnimation(forKey: "shake")
// }
//
// }).disposed(by: disposeBag)
//
// Timer.scheduledTimer(withTimeInterval: 1.5, block: {[weak self] timer in
// guard self?.model?.type == .message else { return }
// if self?.model?.select.value == false && GDMessageListCenter.shared.hadUnread.value == true {
// let animation = CAKeyframeAnimation(keyPath: "transform.rotation")
// animation.values = [0, CGFloat.pi / 180 * 15, -CGFloat.pi / 180 * 15, CGFloat.pi / 180 * 10, -CGFloat.pi / 180 * 10, CGFloat.pi / 180 * 5, -CGFloat.pi / 180 * 5, 0]
// animation.duration = 1.5
// animation.timingFunction = .init(name: .easeOut)
// animation.repeatCount = .infinity
// self?.imageView.layer.add(animation, forKey: "shake")
// } else {
// self?.imageView.layer.removeAnimation(forKey: "shake")
// }
// }, repeats: true)
}
}
// MARK: Method
/// 是否选中binder
var select: Binder<Bool> {
return Binder(self) { (itemView, isSelect) in
if isSelect {
itemView.imageView.image = itemView.model?.selectImage
itemView.imageView.animationRepeatCount = 1
itemView.imageView.animationImages = itemView.model?.animateImages
itemView.imageView.animationDuration = 1
itemView.imageView.startAnimating()
itemView.imageView.image = itemView.model?.selectImage
/// 4.2.0 之后不需要变大
// itemView.imageView.snp.remakeConstraints { make in
// make.centerX.equalToSuperview()
// make.width.height.equalTo(30)
// make.bottom.equalTo(itemView.titleLabel.snp.top).offset(-4)
// }
//
// if itemView.unreadView.superview != nil {
// itemView.unreadView.snp.remakeConstraints { (make) in
// make.top.equalTo(itemView.imageView.snp.top).offset(6)
// make.right.equalTo(itemView.imageView.snp.right).offset(-6)
// make.width.height.equalTo(8)
// }
// }
itemView.titleLabel.textColor = .tl_main
} else {
itemView.imageView.image = itemView.model?.normalImage
/// 4.2.0 之后不需要变大
// itemView.imageView.snp.remakeConstraints { make in
// make.centerX.equalToSuperview()
// make.width.height.equalTo(30)
// make.bottom.equalTo(itemView.titleLabel.snp.top).offset(-4)
// }
// if itemView.unreadView.superview != nil {
// itemView.unreadView.snp.remakeConstraints { (make) in
// make.top.equalTo(itemView.imageView.snp.top).offset(0)
// make.right.equalTo(itemView.imageView.snp.right).offset(0)
// make.width.height.equalTo(8)
// }
// }
itemView.titleLabel.textColor = .hexColor("999999")
}
}
}
}
//
// GDTabbarView.swift
// TealiveSwift
//
// Created by Jim Chan on 2020/7/1.
// Copyright © 2020 YAZHAI Inc. All rights reserved.
//
import UIKit
import GDToolBox
class GDTabBarView: BaseView {
let refresh = PublishSubject<Void>()
override init(frame: CGRect) {
viewModel = GDTabBarViewModel()
super.init(frame: frame)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
init(viewModel: GDTabBarViewModel) {
self.viewModel = viewModel
super.init(frame: .zero)
}
// MARK: UI
override func makeUI() {
super.makeUI()
// 阴影
self.layer.shadowColor = UIColor.init(hexString: "222222", alpha: 0.5).cgColor
self.layer.shadowOffset = CGSize(width: 0, height: -2)
self.layer.shadowOpacity = 0.15
self.layer.shadowRadius = 5
let shadowView = UIView(frame: .zero)
shadowView.setLayerShadow(.hexColor("222222", alpha: 0.6), offset: .init(width: 0, height: -2), radius: 5)
self.addSubview(shadowView)
makeCollectionView()
}
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout())
private let cellReuseIdentifier = "GDTabBarItemView"
func makeCollectionView() {
collectionView.backgroundColor = .clear
collectionView.showsVerticalScrollIndicator = false
collectionView.showsHorizontalScrollIndicator = false
collectionView.isScrollEnabled = false
collectionView.register(GDTabBarItemView.self, forCellWithReuseIdentifier: cellReuseIdentifier)
collectionView.delegate = self
let flowlayout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
flowlayout.scrollDirection = .vertical
flowlayout.minimumLineSpacing = 0
flowlayout.minimumInteritemSpacing = 0
self.addSubview(collectionView)
collectionView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(-20)
make.left.right.equalToSuperview()
make.bottom.equalToSuperview().offset(-GDScreen.SafeArea.bottom)
}
}
// MARK: Data
let viewModel : GDTabBarViewModel
override func bindViewModel() {
super.bindViewModel()
let output = viewModel.transform(input: GDTabBarViewModel.Input())
// 绑定数据
output.elements.asDriver().drive(collectionView.rx.items(cellIdentifier: cellReuseIdentifier, cellType: GDTabBarItemView.self)) {[weak self] collectionView, viewModel, cell in
cell.bind(to: viewModel)
self?.refresh.bind(to: cell.refresh).disposed(by: cell.reuseDisposeBag)
}.disposed(by: viewModel.disposeBag)
// 绑定选中事件
collectionView.rx.modelSelected(GDTabBarModel.self).subscribe(onNext: { model in
self.viewModel.select(model.type)
}).disposed(by: viewModel.disposeBag)
}
}
extension GDTabBarView: UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: collectionView.width / CGFloat(viewModel.elements.value.count), height: collectionView.height)
}
}
//
// GDTabBarViewModel.swift
// TealiveSwift
//
// Created by Jim Chan on 2020/7/2.
// Copyright © 2020 YAZHAI Inc. All rights reserved.
//
import UIKit
import RxSwift
import RxCocoa
import GDToolBox
import GDRouter
class GDTabBarViewModel: BaseViewModel, ViewModelType {
// MARK: Base
struct Input {
}
struct Output {
let elements: BehaviorRelay<[GDTabBarModel]>
}
// Tabbar 数据
let elements: BehaviorRelay<[GDTabBarModel]> = BehaviorRelay<[GDTabBarModel]>(value: [GDTabBarModel.create(.mainPage),
GDTabBarModel.create(.follow),
GDTabBarModel.create(.message),
GDTabBarModel.create(.me)])
// 选中下标
let selectedIndex = BehaviorSubject<Int>(value: 0)
func transform(input: Input) -> Output {
return Output(elements: elements)
}
override init() {
super.init()
// 默认选中
select(.mainPage)
}
// MARK: Method
/// 选中指定类型
/// - Parameter type: 类型
func select(_ type: GDTabBarType) {
// 非游客模式细啊才能自由选择
if GDRouter.UserRouter?.isVisitor.value == true {
if type != .mainPage {
GDRouter.UserRouter?.visitorRegisterFrom = .homePage
// GDLiveHelper.shared.shareRoomid.accept(nil)
GDRouter.LoginRouter?.showVisitorLoginView(vc: nil, showPhoneLogin: false)
return
}
}
for (modelIndex, model) in elements.value.enumerated() {
model.select.accept(model.type == type)
if model.type == type {
selectedIndex.onNext(modelIndex)
}
}
// 统计
// switch type {
// case .message:
// GDStatistics.track(.tabbarMessage)
// case .mainPage:
// GDStatistics.track(.tabbarMainPage)
// case .me:
// GDStatistics.track(.tabbarMe)
// case .momentPlaza:
// GDStatistics.track(.tabbarPlaza)
// case .prize:
// GDStatistics.track(.tabbarPrize)
// }
}
/// 选中指定下标
/// - Parameter index: 下标
func select(_ index: Int) {
for (modelIndex, model) in elements.value.enumerated() {
model.select.accept(modelIndex == index)
}
selectedIndex.onNext(index)
}
}
//
// GDTabbarBundle.swift
// GDTabbarModule
//
// Created by pierce on 2024/1/15.
//
import UIKit
import GDRouter
@objcMembers public class GDTabbarBundle: ModuleBundle {
static let shared = GDTabbarBundle()
@objc public override class func bundle() -> Bundle? {
if self.shared.bundle == nil {
self.shared.bundle = self.bundle(withName: "GDTabbarBundle")
}
return self.shared.bundle
}
}
//
// GDTabbarModule.swift
// GDTabbar
//
// Created by Jim Chan on 2022/12/13.
//
import Foundation
import GDRouter
import GDToolBox
import Bifrost
@objc public class GDTabbarModule: NSObject, GDTabbarSwiftRouter {
let disposeBag = DisposeBag()
public var tabbarVC: UITabBarController? {
if let vc = UIApplication.shared.keyWindow?.rootViewController as? GDTabBarViewController {
return vc
}
return nil
}
@objc public func loginSuccessSetup() {
}
@objc public func loginOut() {
}
}
extension GDTabbarModule: BifrostModuleProtocol {
static let shared = GDTabbarModule()
public static func sharedInstance() -> Self! {
return shared as? Self
}
public func setup() {
}
@objc public static func swiftLoad() {
Bifrost.registerService(GDTabbarRouter.self, withModule: self)
}
public static func setupModuleSynchronously() -> Bool {
return true
}
public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// 控制登录控制器
GDRouter.UserRouter?.isLogin.distinctUntilChanged().skip(1).subscribe(onNext: { login in
if login == true {
if let currentVC = UIApplication.shared.keyWindow?.rootViewController {
currentVC.dismiss(animated: false, completion: nil)
currentVC.navigationController?.popToRootViewController(animated: false)
}
UIApplication.shared.keyWindow?.rootViewController = GDTabBarViewController()
GDRouter.LoginRouter?.bringSplashViewToFront()
if GDRouter.UserRouter?.openSplashWhenLogin == true {
GDRouter.UserRouter?.openSplashWhenLogin = false
GDRouter.LoginRouter?.removeSplashView()
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)
GDRouter.UserRouter?.isVisitor.distinctUntilChanged().skip(1).subscribe(onNext: { visitor in
// 在游客模式下注册登录成功
if visitor == false && GDRouter.UserRouter?.isLogin.value == true {
if let currentVC = UIApplication.shared.keyWindow?.rootViewController {
currentVC.dismiss(animated: false, completion: nil)
currentVC.navigationController?.popToRootViewController(animated: false)
//TODO:Live:退出直播间: added By Pidan
// GDLiveHelper.shared.quitRoom()
}
UIApplication.shared.keyWindow?.rootViewController = GDTabBarViewController()
}
}).disposed(by: disposeBag)
return true
}
}
//
// GDTabbarModuleSwiftLoadFile.m
// GDTabbar
//
// Created by Jim Chan on 2022/12/13.
//
#import <Foundation/Foundation.h>
#import <GDTabbar/GDTabbar-Swift.h>
@implementation GDTabbarModule (Load)
+ (void)load {
[self swiftLoad];
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "81185FF434F6F6D92732BF1AAAC46C4B"
BuildableName = "Pods_GDTabbar.framework"
BlueprintName = "Pods-GDTabbar"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_GDTabbar : NSObject
@end
@implementation PodsDummy_Pods_GDTabbar
@end
${PODS_ROOT}/Target Support Files/Pods-GDTabbar/Pods-GDTabbar-resources.sh
${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox/GDToolBoxBundle.bundle
\ No newline at end of file
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GDToolBoxBundle.bundle
\ No newline at end of file
${PODS_ROOT}/Target Support Files/Pods-GDTabbar/Pods-GDTabbar-resources.sh
${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox/GDToolBoxBundle.bundle
\ No newline at end of file
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GDToolBoxBundle.bundle
\ No newline at end of file
#!/bin/sh
set -e
set -u
set -o pipefail
function on_error {
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
}
trap 'on_error $LINENO' ERR
if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
# If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
# resources to, so exit 0 (signalling the script phase was successful).
exit 0
fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
> "$RESOURCES_TO_COPY"
XCASSET_FILES=()
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
case "${TARGETED_DEVICE_FAMILY:-}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
1)
TARGET_DEVICE_ARGS="--target-device iphone"
;;
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
3)
TARGET_DEVICE_ARGS="--target-device tv"
;;
4)
TARGET_DEVICE_ARGS="--target-device watch"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
install_resource()
{
if [[ "$1" = /* ]] ; then
RESOURCE_PATH="$1"
else
RESOURCE_PATH="${PODS_ROOT}/$1"
fi
if [[ ! -e "$RESOURCE_PATH" ]] ; then
cat << EOM
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
EOM
exit 1
fi
case $RESOURCE_PATH in
*.storyboard)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "$RESOURCE_PATH" || true
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_resource "${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox/GDToolBoxBundle.bundle"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_resource "${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox/GDToolBoxBundle.bundle"
fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi
rm -f "$RESOURCES_TO_COPY"
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
then
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
OTHER_XCASSETS=$(find -L "$PWD" -iname "*.xcassets" -type d)
while read line; do
if [[ $line != "${PODS_ROOT}*" ]]; then
XCASSET_FILES+=("$line")
fi
done <<<"$OTHER_XCASSETS"
if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
else
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist"
fi
fi
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double Pods_GDTabbarVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_GDTabbarVersionString[];
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/Bifrost" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "${PODS_CONFIGURATION_BUILD_DIR}/GDRouter" "${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox" "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Moya" "${PODS_CONFIGURATION_BUILD_DIR}/ObjcExceptionBridging" "${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift" "${PODS_CONFIGURATION_BUILD_DIR}/Realm" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyTimer" "${PODS_CONFIGURATION_BUILD_DIR}/TSVoiceConverter" "${PODS_CONFIGURATION_BUILD_DIR}/XCGLogger" "${PODS_CONFIGURATION_BUILD_DIR}/YYKit" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/Realm/core" "${PODS_ROOT}/YYKit/Vendor"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Bifrost/Bifrost.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator/Differentiator.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GDRouter/GDRouter.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox/GDToolBox.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl/JXPageControl.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView/JXSegmentedView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Moya/Moya.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ObjcExceptionBridging/ObjcExceptionBridging.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift/Reachability.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Realm/Realm.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift/RealmSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources/RxDataSources.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit/SwiftyStoreKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyTimer/SwiftyTimer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TSVoiceConverter/TSVoiceConverter.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/XCGLogger/XCGLogger.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYKit/YYKit.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/Realm/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks'
LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" "${PODS_ROOT}/../LocalPodSpec/GDToolBox/GDToolBox/Classes/ThirdParty/TalkingData" "${PODS_ROOT}/../LocalPodSpec/GDToolBox/GDToolBox/Classes/ThirdParty/WeChat" "${PODS_ROOT}/TSVoiceConverter/Sources/lib" "${PODS_XCFRAMEWORKS_BUILD_DIR}/Realm" /usr/lib/swift
OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Bifrost/Bifrost.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator/Differentiator.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GDRouter/GDRouter.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox/GDToolBox.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl/JXPageControl.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView/JXSegmentedView.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Moya/Moya.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/ObjcExceptionBridging/ObjcExceptionBridging.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift/Reachability.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Realm/Realm.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift/RealmSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources/RxDataSources.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit/SwiftyStoreKit.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyTimer/SwiftyTimer.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/TSVoiceConverter/TSVoiceConverter.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/XCGLogger/XCGLogger.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/YYKit/YYKit.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Bifrost" -iframework "${PODS_ROOT}/Bugly" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GDRouter" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Moya" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/ObjcExceptionBridging" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift" -iframework "${PODS_ROOT}/Realm/core" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Realm" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyTimer" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/TSVoiceConverter" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/XCGLogger" -iframework "${PODS_ROOT}/YYKit/Vendor" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/YYKit"
OTHER_LDFLAGS = $(inherited) -ObjC -l"TalkingData" -l"WeChatSDK" -l"c++" -l"compression" -l"iconv" -l"sqlite3" -l"z" -framework "Accelerate" -framework "Alamofire" -framework "AssetsLibrary" -framework "Bifrost" -framework "Bugly" -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "Differentiator" -framework "Foundation" -framework "GDRouter" -framework "GDToolBox" -framework "ImageIO" -framework "JXPageControl" -framework "JXSegmentedView" -framework "Kingfisher" -framework "MJRefresh" -framework "MetalPerformanceShaders" -framework "MobileCoreServices" -framework "Moya" -framework "ObjcExceptionBridging" -framework "QuartzCore" -framework "Reachability" -framework "Realm" -framework "RealmSwift" -framework "RxCocoa" -framework "RxDataSources" -framework "RxRelay" -framework "RxSwift" -framework "SSZipArchive" -framework "Security" -framework "SnapKit" -framework "SwiftyJSON" -framework "SwiftyStoreKit" -framework "SwiftyTimer" -framework "SystemConfiguration" -framework "TSVoiceConverter" -framework "UIKit" -framework "WebKit" -framework "XCGLogger" -framework "YYKit" -weak_framework "Combine" -weak_framework "SwiftUI" -weak_framework "UIKit"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/../..
PODS_ROOT = ${SRCROOT}/../../Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
framework module Pods_GDTabbar {
umbrella header "Pods-GDTabbar-umbrella.h"
export *
module * { export * }
}
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/Bifrost" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "${PODS_CONFIGURATION_BUILD_DIR}/GDRouter" "${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox" "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Moya" "${PODS_CONFIGURATION_BUILD_DIR}/ObjcExceptionBridging" "${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift" "${PODS_CONFIGURATION_BUILD_DIR}/Realm" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyTimer" "${PODS_CONFIGURATION_BUILD_DIR}/TSVoiceConverter" "${PODS_CONFIGURATION_BUILD_DIR}/XCGLogger" "${PODS_CONFIGURATION_BUILD_DIR}/YYKit" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/Realm/core" "${PODS_ROOT}/YYKit/Vendor"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Bifrost/Bifrost.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator/Differentiator.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GDRouter/GDRouter.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox/GDToolBox.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl/JXPageControl.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView/JXSegmentedView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Moya/Moya.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ObjcExceptionBridging/ObjcExceptionBridging.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift/Reachability.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Realm/Realm.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift/RealmSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources/RxDataSources.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit/SwiftyStoreKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyTimer/SwiftyTimer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TSVoiceConverter/TSVoiceConverter.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/XCGLogger/XCGLogger.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYKit/YYKit.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/Realm/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks'
LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" "${PODS_ROOT}/../LocalPodSpec/GDToolBox/GDToolBox/Classes/ThirdParty/TalkingData" "${PODS_ROOT}/../LocalPodSpec/GDToolBox/GDToolBox/Classes/ThirdParty/WeChat" "${PODS_ROOT}/TSVoiceConverter/Sources/lib" "${PODS_XCFRAMEWORKS_BUILD_DIR}/Realm" /usr/lib/swift
OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Bifrost/Bifrost.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator/Differentiator.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GDRouter/GDRouter.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox/GDToolBox.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl/JXPageControl.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView/JXSegmentedView.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Moya/Moya.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/ObjcExceptionBridging/ObjcExceptionBridging.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift/Reachability.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Realm/Realm.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift/RealmSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources/RxDataSources.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit/SwiftyStoreKit.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyTimer/SwiftyTimer.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/TSVoiceConverter/TSVoiceConverter.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/XCGLogger/XCGLogger.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/YYKit/YYKit.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Bifrost" -iframework "${PODS_ROOT}/Bugly" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GDRouter" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GDToolBox" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Moya" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/ObjcExceptionBridging" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift" -iframework "${PODS_ROOT}/Realm/core" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Realm" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyTimer" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/TSVoiceConverter" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/XCGLogger" -iframework "${PODS_ROOT}/YYKit/Vendor" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/YYKit"
OTHER_LDFLAGS = $(inherited) -ObjC -l"TalkingData" -l"WeChatSDK" -l"c++" -l"compression" -l"iconv" -l"sqlite3" -l"z" -framework "Accelerate" -framework "Alamofire" -framework "AssetsLibrary" -framework "Bifrost" -framework "Bugly" -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "Differentiator" -framework "Foundation" -framework "GDRouter" -framework "GDToolBox" -framework "ImageIO" -framework "JXPageControl" -framework "JXSegmentedView" -framework "Kingfisher" -framework "MJRefresh" -framework "MetalPerformanceShaders" -framework "MobileCoreServices" -framework "Moya" -framework "ObjcExceptionBridging" -framework "QuartzCore" -framework "Reachability" -framework "Realm" -framework "RealmSwift" -framework "RxCocoa" -framework "RxDataSources" -framework "RxRelay" -framework "RxSwift" -framework "SSZipArchive" -framework "Security" -framework "SnapKit" -framework "SwiftyJSON" -framework "SwiftyStoreKit" -framework "SwiftyTimer" -framework "SystemConfiguration" -framework "TSVoiceConverter" -framework "UIKit" -framework "WebKit" -framework "XCGLogger" -framework "YYKit" -weak_framework "Combine" -weak_framework "SwiftUI" -weak_framework "UIKit"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/../..
PODS_ROOT = ${SRCROOT}/../../Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
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