1
This commit is contained in:
parent
edd1d7683a
commit
7932c20c65
@ -41,6 +41,9 @@
|
|||||||
031FDEEC2EB35DF600F4CAC7 /* FACoinsPackAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 031FDEEB2EB35DF600F4CAC7 /* FACoinsPackAlert.swift */; };
|
031FDEEC2EB35DF600F4CAC7 /* FACoinsPackAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 031FDEEB2EB35DF600F4CAC7 /* FACoinsPackAlert.swift */; };
|
||||||
031FDEEE2EB3682000F4CAC7 /* FAVipRetainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 031FDEED2EB3682000F4CAC7 /* FAVipRetainAlert.swift */; };
|
031FDEEE2EB3682000F4CAC7 /* FAVipRetainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 031FDEED2EB3682000F4CAC7 /* FAVipRetainAlert.swift */; };
|
||||||
035589332F161E6E00FAEF4A /* FAPayRetainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 035589322F161E6E00FAEF4A /* FAPayRetainAlert.swift */; };
|
035589332F161E6E00FAEF4A /* FAPayRetainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 035589322F161E6E00FAEF4A /* FAPayRetainAlert.swift */; };
|
||||||
|
035589362F2305D800FAEF4A /* FAAdManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 035589352F2305D800FAEF4A /* FAAdManager.swift */; };
|
||||||
|
0355893A2F234B3E00FAEF4A /* FAOpenAdManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 035589392F234B3E00FAEF4A /* FAOpenAdManager.swift */; };
|
||||||
|
0355893C2F234C8300FAEF4A /* FATradPlusOpenAd.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0355893B2F234C8300FAEF4A /* FATradPlusOpenAd.swift */; };
|
||||||
039CE6042EAA2621007B5EED /* AppDelegate+FAAdjust.swift in Sources */ = {isa = PBXBuildFile; fileRef = 039CE6032EAA2612007B5EED /* AppDelegate+FAAdjust.swift */; };
|
039CE6042EAA2621007B5EED /* AppDelegate+FAAdjust.swift in Sources */ = {isa = PBXBuildFile; fileRef = 039CE6032EAA2612007B5EED /* AppDelegate+FAAdjust.swift */; };
|
||||||
039CE6092EAA2F71007B5EED /* FAAdjustStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 039CE6082EAA2F62007B5EED /* FAAdjustStateManager.swift */; };
|
039CE6092EAA2F71007B5EED /* FAAdjustStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 039CE6082EAA2F62007B5EED /* FAAdjustStateManager.swift */; };
|
||||||
039CE60B2EAA31CB007B5EED /* FAStatAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 039CE60A2EAA31CB007B5EED /* FAStatAPI.swift */; };
|
039CE60B2EAA31CB007B5EED /* FAStatAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 039CE60A2EAA31CB007B5EED /* FAStatAPI.swift */; };
|
||||||
@ -416,6 +419,9 @@
|
|||||||
031FDEEB2EB35DF600F4CAC7 /* FACoinsPackAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FACoinsPackAlert.swift; sourceTree = "<group>"; };
|
031FDEEB2EB35DF600F4CAC7 /* FACoinsPackAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FACoinsPackAlert.swift; sourceTree = "<group>"; };
|
||||||
031FDEED2EB3682000F4CAC7 /* FAVipRetainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FAVipRetainAlert.swift; sourceTree = "<group>"; };
|
031FDEED2EB3682000F4CAC7 /* FAVipRetainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FAVipRetainAlert.swift; sourceTree = "<group>"; };
|
||||||
035589322F161E6E00FAEF4A /* FAPayRetainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FAPayRetainAlert.swift; sourceTree = "<group>"; };
|
035589322F161E6E00FAEF4A /* FAPayRetainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FAPayRetainAlert.swift; sourceTree = "<group>"; };
|
||||||
|
035589352F2305D800FAEF4A /* FAAdManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FAAdManager.swift; sourceTree = "<group>"; };
|
||||||
|
035589392F234B3E00FAEF4A /* FAOpenAdManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FAOpenAdManager.swift; sourceTree = "<group>"; };
|
||||||
|
0355893B2F234C8300FAEF4A /* FATradPlusOpenAd.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FATradPlusOpenAd.swift; sourceTree = "<group>"; };
|
||||||
039CE6032EAA2612007B5EED /* AppDelegate+FAAdjust.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppDelegate+FAAdjust.swift"; sourceTree = "<group>"; };
|
039CE6032EAA2612007B5EED /* AppDelegate+FAAdjust.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppDelegate+FAAdjust.swift"; sourceTree = "<group>"; };
|
||||||
039CE6082EAA2F62007B5EED /* FAAdjustStateManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FAAdjustStateManager.swift; sourceTree = "<group>"; };
|
039CE6082EAA2F62007B5EED /* FAAdjustStateManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FAAdjustStateManager.swift; sourceTree = "<group>"; };
|
||||||
039CE60A2EAA31CB007B5EED /* FAStatAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FAStatAPI.swift; sourceTree = "<group>"; };
|
039CE60A2EAA31CB007B5EED /* FAStatAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FAStatAPI.swift; sourceTree = "<group>"; };
|
||||||
@ -777,6 +783,32 @@
|
|||||||
path = Alert;
|
path = Alert;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
035589342F2304B800FAEF4A /* AdManager */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
035589382F2319EB00FAEF4A /* Open */,
|
||||||
|
035589372F2319DD00FAEF4A /* Rewarded */,
|
||||||
|
035589352F2305D800FAEF4A /* FAAdManager.swift */,
|
||||||
|
);
|
||||||
|
path = AdManager;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
035589372F2319DD00FAEF4A /* Rewarded */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
);
|
||||||
|
path = Rewarded;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
035589382F2319EB00FAEF4A /* Open */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
035589392F234B3E00FAEF4A /* FAOpenAdManager.swift */,
|
||||||
|
0355893B2F234C8300FAEF4A /* FATradPlusOpenAd.swift */,
|
||||||
|
);
|
||||||
|
path = Open;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
039CE6072EAA2F37007B5EED /* AdjustStateManager */ = {
|
039CE6072EAA2F37007B5EED /* AdjustStateManager */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@ -1302,6 +1334,7 @@
|
|||||||
03E23A962EAA1A65004A8CEC /* Libs */ = {
|
03E23A962EAA1A65004A8CEC /* Libs */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
035589342F2304B800FAEF4A /* AdManager */,
|
||||||
03E9A78E2EC1AFEA000D1067 /* ActivityManager */,
|
03E9A78E2EC1AFEA000D1067 /* ActivityManager */,
|
||||||
031FDEE22EB3487700F4CAC7 /* Alert */,
|
031FDEE22EB3487700F4CAC7 /* Alert */,
|
||||||
039CE6122EAB0DE1007B5EED /* FAIap */,
|
039CE6122EAB0DE1007B5EED /* FAIap */,
|
||||||
@ -1959,6 +1992,7 @@
|
|||||||
F3T938414J234X46539JR019 /* Resources */,
|
F3T938414J234X46539JR019 /* Resources */,
|
||||||
4809W21R638Z15866LWB2041 /* [CP] Embed Pods Frameworks */,
|
4809W21R638Z15866LWB2041 /* [CP] Embed Pods Frameworks */,
|
||||||
03E9A7632EC19101000D1067 /* Embed Foundation Extensions */,
|
03E9A7632EC19101000D1067 /* Embed Foundation Extensions */,
|
||||||
|
7A6DD8DBCA1DA3FCAC271812 /* [CP] Copy Pods Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@ -2099,6 +2133,27 @@
|
|||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Fableon/Pods-Fableon-frameworks.sh\"\n";
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Fableon/Pods-Fableon-frameworks.sh\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
|
7A6DD8DBCA1DA3FCAC271812 /* [CP] Copy Pods Resources */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Fableon/Pods-Fableon-resources-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
name = "[CP] Copy Pods Resources";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Fableon/Pods-Fableon-resources-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Fableon/Pods-Fableon-resources.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
9E12479709584PQ64999OJ92 /* [CP] Check Pods Manifest.lock */ = {
|
9E12479709584PQ64999OJ92 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@ -2164,6 +2219,7 @@
|
|||||||
031FDEB62EB0B77F00F4CAC7 /* FACoinPackConfirmItemView.swift in Sources */,
|
031FDEB62EB0B77F00F4CAC7 /* FACoinPackConfirmItemView.swift in Sources */,
|
||||||
F35S8138Z362EG3435ME1455 /* CSGleeView.swift in Sources */,
|
F35S8138Z362EG3435ME1455 /* CSGleeView.swift in Sources */,
|
||||||
031FDEB42EB0AD7D00F4CAC7 /* FACoinPackConfirmView.swift in Sources */,
|
031FDEB42EB0AD7D00F4CAC7 /* FACoinPackConfirmView.swift in Sources */,
|
||||||
|
035589362F2305D800FAEF4A /* FAAdManager.swift in Sources */,
|
||||||
F31451S3X15B941342J922Q3 /* TConfigCell.swift in Sources */,
|
F31451S3X15B941342J922Q3 /* TConfigCell.swift in Sources */,
|
||||||
F3670DZ2KI89TBO3L9L36P57 /* XLoginView.swift in Sources */,
|
F3670DZ2KI89TBO3L9L36P57 /* XLoginView.swift in Sources */,
|
||||||
F3V24670CK2EGR4595CDQ261 /* AWUModalMageCell.swift in Sources */,
|
F3V24670CK2EGR4595CDQ261 /* AWUModalMageCell.swift in Sources */,
|
||||||
@ -2173,6 +2229,7 @@
|
|||||||
031FDEE12EB344AB00F4CAC7 /* FALogin+Facebook.swift in Sources */,
|
031FDEE12EB344AB00F4CAC7 /* FALogin+Facebook.swift in Sources */,
|
||||||
F30E153206675C3SJ3974VL1 /* OJQUnechoSectionView.swift in Sources */,
|
F30E153206675C3SJ3974VL1 /* OJQUnechoSectionView.swift in Sources */,
|
||||||
F381909BQ5JWXYI119A49469 /* DREychainCell.swift in Sources */,
|
F381909BQ5JWXYI119A49469 /* DREychainCell.swift in Sources */,
|
||||||
|
0355893A2F234B3E00FAEF4A /* FAOpenAdManager.swift in Sources */,
|
||||||
F39R66F983517825QO331145 /* QCenterEfineView.swift in Sources */,
|
F39R66F983517825QO331145 /* QCenterEfineView.swift in Sources */,
|
||||||
F3II3AF834346F516W51V693 /* GAMainRecommendedView.swift in Sources */,
|
F3II3AF834346F516W51V693 /* GAMainRecommendedView.swift in Sources */,
|
||||||
031FDEAE2EB093B100F4CAC7 /* FABuyRecordsModel.swift in Sources */,
|
031FDEAE2EB093B100F4CAC7 /* FABuyRecordsModel.swift in Sources */,
|
||||||
@ -2388,6 +2445,7 @@
|
|||||||
03E239972EAA1A29004A8CEC /* FANetworkManager.swift in Sources */,
|
03E239972EAA1A29004A8CEC /* FANetworkManager.swift in Sources */,
|
||||||
03E239982EAA1A29004A8CEC /* UIScrollView+FARefresh.swift in Sources */,
|
03E239982EAA1A29004A8CEC /* UIScrollView+FARefresh.swift in Sources */,
|
||||||
03E239992EAA1A29004A8CEC /* FANavigationController.swift in Sources */,
|
03E239992EAA1A29004A8CEC /* FANavigationController.swift in Sources */,
|
||||||
|
0355893C2F234C8300FAEF4A /* FATradPlusOpenAd.swift in Sources */,
|
||||||
03E2399A2EAA1A29004A8CEC /* FAViewController.swift in Sources */,
|
03E2399A2EAA1A29004A8CEC /* FAViewController.swift in Sources */,
|
||||||
03E2399B2EAA1A29004A8CEC /* FAWebMessageModel.swift in Sources */,
|
03E2399B2EAA1A29004A8CEC /* FAWebMessageModel.swift in Sources */,
|
||||||
03E2399C2EAA1A29004A8CEC /* FAGradientButton.swift in Sources */,
|
03E2399C2EAA1A29004A8CEC /* FAGradientButton.swift in Sources */,
|
||||||
|
|||||||
@ -36,6 +36,7 @@ extension AppDelegate {
|
|||||||
|
|
||||||
func fa_registThirdparty(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) {
|
func fa_registThirdparty(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) {
|
||||||
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
|
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||||||
|
FAAdManager.initSdk()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,6 +25,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
|||||||
FATool.windowScene = windowScene
|
FATool.windowScene = windowScene
|
||||||
|
|
||||||
window = UIWindow(windowScene: windowScene)
|
window = UIWindow(windowScene: windowScene)
|
||||||
|
window?.makeKeyAndVisible()
|
||||||
startApp()
|
startApp()
|
||||||
|
|
||||||
onLineTimer = Timer.scheduledTimer(timeInterval: 60 * 10, target: YYTextWeakProxy(target: self), selector: #selector(handleOnLine), userInfo: nil, repeats: true)
|
onLineTimer = Timer.scheduledTimer(timeInterval: 60 * 10, target: YYTextWeakProxy(target: self), selector: #selector(handleOnLine), userInfo: nil, repeats: true)
|
||||||
@ -38,6 +39,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
|||||||
|
|
||||||
requestFirebase()
|
requestFirebase()
|
||||||
requestApns()
|
requestApns()
|
||||||
|
FAOpenAdManager.manager.showAdIfAvailable()
|
||||||
}
|
}
|
||||||
|
|
||||||
func sceneDidDisconnect(_ scene: UIScene) {
|
func sceneDidDisconnect(_ scene: UIScene) {
|
||||||
|
|||||||
62
Fableon/Object/Libs/AdManager/FAAdManager.swift
Normal file
62
Fableon/Object/Libs/AdManager/FAAdManager.swift
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
//
|
||||||
|
// FAAdManager.swift
|
||||||
|
// Fableon
|
||||||
|
//
|
||||||
|
// Created by 湖北秦九 on 2026/1/23.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
#if canImport(TradPlusAds)
|
||||||
|
import TradPlusAds
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
class FAAdManager: NSObject {
|
||||||
|
|
||||||
|
static func initSdk() {
|
||||||
|
#if canImport(TradPlusAds)
|
||||||
|
#if DEBUG
|
||||||
|
TradPlus.setLogLevel(MSLogLevelAll)
|
||||||
|
#endif
|
||||||
|
TradPlus.initSDK("8C768B1A89BA057E47D752181A7BDA21") { error in
|
||||||
|
if let error = error {
|
||||||
|
debugLog(error)
|
||||||
|
} else {
|
||||||
|
debugLog("TradPlus 初始化成功")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
enum FAAdPlatform {
|
||||||
|
case tradPlus
|
||||||
|
|
||||||
|
///激励广告单元Id
|
||||||
|
var rewardedUnitId: String {
|
||||||
|
switch self {
|
||||||
|
case .tradPlus:
|
||||||
|
return "E35A9B622C1125CB6EDFC288F22CDB22"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///开屏广告单元Id
|
||||||
|
var openUnitId: String {
|
||||||
|
switch self {
|
||||||
|
case .tradPlus:
|
||||||
|
return "67B5E393DF8D80325B0CC1055B5A2122"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///横幅广告单元Id
|
||||||
|
var bannerUnitId: String {
|
||||||
|
switch self {
|
||||||
|
case .tradPlus:
|
||||||
|
return "E92BEE12E188BCD15834075F5A32A922"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
221
Fableon/Object/Libs/AdManager/Open/FAOpenAdManager.swift
Normal file
221
Fableon/Object/Libs/AdManager/Open/FAOpenAdManager.swift
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
//
|
||||||
|
// FAOpenAdManager.swift
|
||||||
|
// Fableon
|
||||||
|
//
|
||||||
|
// Created by 湖北秦九 on 2026/1/23.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
@objc protocol FAOpenAdManagerDelegate: NSObjectProtocol {
|
||||||
|
/// 广告加载失败
|
||||||
|
@objc optional func fa_openAdManager(manager: FAOpenAdManager, didLoadFail error: Error)
|
||||||
|
/// 广告加载成功
|
||||||
|
@objc optional func fa_openAdManagerDidLoadFinish(manager: FAOpenAdManager)
|
||||||
|
/// 广告展示失败
|
||||||
|
@objc optional func fa_openAdManager(manager: FAOpenAdManager, didDisplayFail error: Error)
|
||||||
|
/// 广告被展示
|
||||||
|
@objc optional func fa_openAdManagerDidShow(manager: FAOpenAdManager)
|
||||||
|
/// 广告被关闭
|
||||||
|
@objc optional func fa_openAdManagerDidDismiss(manager: FAOpenAdManager)
|
||||||
|
/// 其它错误
|
||||||
|
@objc optional func fa_openAdManager(manager: FAOpenAdManager, didOtherFail error: Error)
|
||||||
|
}
|
||||||
|
|
||||||
|
protocol FAOpenAdDelegate: NSObjectProtocol {
|
||||||
|
func fa_openAd(ad: FAOpenAd, didLoadFail error: Error)
|
||||||
|
func fa_openAdDidLoadFinish(ad: FAOpenAd)
|
||||||
|
func fa_openAd(ad: FAOpenAd, didDisplayFail error: Error)
|
||||||
|
func fa_openAdDidShow(ad: FAOpenAd)
|
||||||
|
func fa_openAdDidDismiss(ad: FAOpenAd)
|
||||||
|
func fa_openAdDidClick(ad: FAOpenAd)
|
||||||
|
}
|
||||||
|
|
||||||
|
protocol FAOpenAd: NSObjectProtocol {
|
||||||
|
var delegate: FAOpenAdDelegate? { get set }
|
||||||
|
var adPlatform: FAAdPlatform { get }
|
||||||
|
var adUnitID: String { get }
|
||||||
|
var isReady: Bool { get }
|
||||||
|
|
||||||
|
func loadAd()
|
||||||
|
func showAd()
|
||||||
|
}
|
||||||
|
|
||||||
|
class FAOpenAdManager: NSObject {
|
||||||
|
|
||||||
|
static let manager = FAOpenAdManager()
|
||||||
|
|
||||||
|
weak var delegate: FAOpenAdManagerDelegate?
|
||||||
|
|
||||||
|
private var appOpenAd: FAOpenAd? {
|
||||||
|
didSet {
|
||||||
|
oldValue?.delegate = nil
|
||||||
|
appOpenAd?.delegate = self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private(set) var isLoadingAd = false
|
||||||
|
private(set) var isShowingAd = false
|
||||||
|
/// 标记是否在等待广告加载完成后自动展示
|
||||||
|
private var isWaitingToShow = false
|
||||||
|
private var timeOutTimer: Timer?
|
||||||
|
|
||||||
|
deinit {
|
||||||
|
NotificationCenter.default.removeObserver(self)
|
||||||
|
}
|
||||||
|
|
||||||
|
private override init() {
|
||||||
|
super.init()
|
||||||
|
NotificationCenter.default.addObserver(self, selector: #selector(didEnterBackgroundNotification), name: UIApplication.didEnterBackgroundNotification, object: nil)
|
||||||
|
NotificationCenter.default.addObserver(self, selector: #selector(didBecomeActiveNotification), name: UIApplication.didBecomeActiveNotification, object: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadAd() {
|
||||||
|
if isLoadingAd || isAdAvailable() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
isLoadingAd = true
|
||||||
|
|
||||||
|
appOpenAd = FATradPlusOpenAd()
|
||||||
|
appOpenAd?.loadAd()
|
||||||
|
}
|
||||||
|
|
||||||
|
func showAd() {
|
||||||
|
guard let ad = appOpenAd, isAdAvailable() else {
|
||||||
|
loadAd()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
isWaitingToShow = false
|
||||||
|
isShowingAd = true
|
||||||
|
ad.showAd()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 外部调用的主要入口
|
||||||
|
func showAdIfAvailable() {
|
||||||
|
// 如果正在展示广告,不再重复触发
|
||||||
|
guard !isShowingAd else { return }
|
||||||
|
|
||||||
|
// 1. 如果广告已就绪,直接展示
|
||||||
|
if isAdAvailable() {
|
||||||
|
showAd()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 如果没有就绪,标记等待并开始加载,同时开启超时保护
|
||||||
|
isWaitingToShow = true
|
||||||
|
startTimeoutTimer()
|
||||||
|
loadAd()
|
||||||
|
}
|
||||||
|
|
||||||
|
private func isAdAvailable() -> Bool {
|
||||||
|
return appOpenAd?.isReady ?? false
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Timer (防止加载时间过长,用户已进入首页后突然弹出广告)
|
||||||
|
private func startTimeoutTimer() {
|
||||||
|
clearTimer()
|
||||||
|
// timeOutTimer = Timer.scheduledTimer(withTimeInterval: 5.0, repeats: false) { [weak self] _ in
|
||||||
|
// Task { @MainActor in
|
||||||
|
// self?.handleTimeOut()
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc private func handleTimeOut() {
|
||||||
|
if isWaitingToShow {
|
||||||
|
isWaitingToShow = false
|
||||||
|
let error = NSError(domain: "time-out", code: -1)
|
||||||
|
delegate?.fa_openAdManager?(manager: self, didOtherFail: error)
|
||||||
|
}
|
||||||
|
clearTimer()
|
||||||
|
}
|
||||||
|
|
||||||
|
private func clearTimer() {
|
||||||
|
timeOutTimer?.invalidate()
|
||||||
|
timeOutTimer = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - BRAppOpenAdDelegate
|
||||||
|
extension FAOpenAdManager: FAOpenAdDelegate {
|
||||||
|
|
||||||
|
func fa_openAd(ad: FAOpenAd, didLoadFail error: Error) {
|
||||||
|
isLoadingAd = false
|
||||||
|
isWaitingToShow = false
|
||||||
|
appOpenAd = nil
|
||||||
|
clearTimer()
|
||||||
|
requestStatAd(type: "load_failed", errorMsg: error.localizedDescription)
|
||||||
|
delegate?.fa_openAdManager?(manager: self, didLoadFail: error)
|
||||||
|
delegate = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func fa_openAdDidLoadFinish(ad: FAOpenAd) {
|
||||||
|
isLoadingAd = false
|
||||||
|
delegate?.fa_openAdManagerDidLoadFinish?(manager: self)
|
||||||
|
|
||||||
|
// 如果之前处于等待展示状态,现在立即展示
|
||||||
|
if isWaitingToShow {
|
||||||
|
clearTimer()
|
||||||
|
showAd()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func fa_openAd(ad: FAOpenAd, didDisplayFail error: Error) {
|
||||||
|
isShowingAd = false
|
||||||
|
isWaitingToShow = false
|
||||||
|
appOpenAd = nil
|
||||||
|
clearTimer()
|
||||||
|
requestStatAd(type: "show_failed", errorMsg: error.localizedDescription)
|
||||||
|
delegate?.fa_openAdManager?(manager: self, didDisplayFail: error)
|
||||||
|
delegate = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func fa_openAdDidShow(ad: FAOpenAd) {
|
||||||
|
requestStatAd(type: "start", errorMsg: nil)
|
||||||
|
delegate?.fa_openAdManagerDidShow?(manager: self)
|
||||||
|
}
|
||||||
|
|
||||||
|
func fa_openAdDidDismiss(ad: FAOpenAd) {
|
||||||
|
isShowingAd = false
|
||||||
|
appOpenAd = nil
|
||||||
|
delegate?.fa_openAdManagerDidDismiss?(manager: self)
|
||||||
|
// 关闭后自动预加载下一条,提高下次展示成功率
|
||||||
|
loadAd()
|
||||||
|
delegate = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func fa_openAdDidClick(ad: FAOpenAd) {
|
||||||
|
requestStatAd(type: "click", errorMsg: nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Statistics
|
||||||
|
extension FAOpenAdManager {
|
||||||
|
private func requestStatAd(type: String, errorMsg: String?) {
|
||||||
|
guard let appOpenAd = appOpenAd else { return }
|
||||||
|
|
||||||
|
// let model = SPStatAdModel()
|
||||||
|
// model.type = type
|
||||||
|
// model.ads_id = appOpenAd.adUnitID
|
||||||
|
// model.ad_platform_key = SPAdPlatformKey(rawValue: appOpenAd.adPlatformKey)
|
||||||
|
// model.error_msg = errorMsg
|
||||||
|
// model.scene = .splash
|
||||||
|
//
|
||||||
|
// SPStatAPI.requestStatAd(model: model)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@objc private func didEnterBackgroundNotification() {
|
||||||
|
if !self.isShowingAd { return }
|
||||||
|
|
||||||
|
self.requestStatAd(type: "Interrupt", errorMsg: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc private func didBecomeActiveNotification() {
|
||||||
|
showAdIfAvailable()
|
||||||
|
}
|
||||||
|
}
|
||||||
104
Fableon/Object/Libs/AdManager/Open/FATradPlusOpenAd.swift
Normal file
104
Fableon/Object/Libs/AdManager/Open/FATradPlusOpenAd.swift
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
//
|
||||||
|
// BRTradPlusOpenAd.swift
|
||||||
|
// Fableon
|
||||||
|
//
|
||||||
|
// Created by 湖北秦九 on 2026/1/23.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
#if canImport(TradPlusAds)
|
||||||
|
import TradPlusAds
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class FATradPlusOpenAd: NSObject, FAOpenAd {
|
||||||
|
|
||||||
|
#if canImport(TradPlusAds)
|
||||||
|
private var appOpenAd: TradPlusAdSplash?
|
||||||
|
#endif
|
||||||
|
|
||||||
|
weak var delegate: FAOpenAdDelegate?
|
||||||
|
|
||||||
|
var adPlatform: FAAdPlatform {
|
||||||
|
return .tradPlus
|
||||||
|
}
|
||||||
|
|
||||||
|
var adUnitID: String {
|
||||||
|
return self.adPlatform.openUnitId
|
||||||
|
}
|
||||||
|
|
||||||
|
var isReady: Bool {
|
||||||
|
#if canImport(TradPlusAds)
|
||||||
|
return self.appOpenAd?.isAdReady ?? false
|
||||||
|
#else
|
||||||
|
return false
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadAd() {
|
||||||
|
appOpenAd = nil
|
||||||
|
|
||||||
|
guard let targetWindow = FATool.keyWindow else {
|
||||||
|
let error = NSError(domain: "com.beereel.ad",
|
||||||
|
code: -2,
|
||||||
|
userInfo: [NSLocalizedDescriptionKey: "TradPlus failed: No active window found"])
|
||||||
|
self.delegate?.fa_openAd(ad: self, didLoadFail: error)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
#if canImport(TradPlusAds)
|
||||||
|
// 3. 初始化并配置
|
||||||
|
let splash = TradPlusAdSplash()
|
||||||
|
splash.setAdUnitID(adUnitID)
|
||||||
|
splash.delegate = self
|
||||||
|
self.appOpenAd = splash
|
||||||
|
|
||||||
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
|
||||||
|
splash.loadAd(with: targetWindow, bottomView: nil)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
func showAd() {
|
||||||
|
if isReady {
|
||||||
|
#if canImport(TradPlusAds)
|
||||||
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
self.appOpenAd?.show()
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#if canImport(TradPlusAds)
|
||||||
|
// MARK: - TradPlusADSplashDelegate
|
||||||
|
extension FATradPlusOpenAd: TradPlusADSplashDelegate {
|
||||||
|
|
||||||
|
func tpSplashAdLoaded(_ adInfo: [AnyHashable : Any]) {
|
||||||
|
self.delegate?.fa_openAdDidLoadFinish(ad: self)
|
||||||
|
}
|
||||||
|
|
||||||
|
func tpSplashAdLoadFailWithError(_ error: Error, adInfo: [AnyHashable : Any]) {
|
||||||
|
self.appOpenAd = nil
|
||||||
|
self.delegate?.fa_openAd(ad: self, didLoadFail: error)
|
||||||
|
}
|
||||||
|
|
||||||
|
func tpSplashAdImpression(_ adInfo: [AnyHashable : Any]) {
|
||||||
|
self.delegate?.fa_openAdDidShow(ad: self)
|
||||||
|
}
|
||||||
|
|
||||||
|
func tpSplashAdShow(_ adInfo: [AnyHashable : Any], didFailWithError error: Error) {
|
||||||
|
self.appOpenAd = nil
|
||||||
|
self.delegate?.fa_openAd(ad: self, didDisplayFail: error)
|
||||||
|
}
|
||||||
|
|
||||||
|
func tpSplashAdClicked(_ adInfo: [AnyHashable : Any]) {
|
||||||
|
self.delegate?.fa_openAdDidClick(ad: self)
|
||||||
|
}
|
||||||
|
|
||||||
|
func tpSplashAdDismissed(_ adInfo: [AnyHashable : Any]) {
|
||||||
|
self.appOpenAd = nil
|
||||||
|
self.delegate?.fa_openAdDidDismiss(ad: self)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -2,6 +2,8 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
|
<key>GADApplicationIdentifier</key>
|
||||||
|
<string>ca-app-pub-3940256099942544~1458002511</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
@ -21,6 +23,11 @@
|
|||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
|
<key>NSAppTransportSecurity</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSAllowsArbitraryLoads</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
<key>FacebookAppID</key>
|
<key>FacebookAppID</key>
|
||||||
<string>1309643747870828</string>
|
<string>1309643747870828</string>
|
||||||
<key>FacebookClientToken</key>
|
<key>FacebookClientToken</key>
|
||||||
@ -53,5 +60,204 @@
|
|||||||
</array>
|
</array>
|
||||||
<key>UIDesignRequiresCompatibility</key>
|
<key>UIDesignRequiresCompatibility</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>SKAdNetworkItems</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>cstr6suwn9.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>4fzdc2evr5.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>2fnua5tdw4.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>ydx93a7ass.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>p78axxw29g.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>v72qych5uu.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>ludvb6z3bs.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>cp8zw746q7.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>3sh42y64q3.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>c6k4g5qg8m.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>s39g8k73mm.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>3qy4746246.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>f38h382jlk.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>hs6bdukanm.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>mlmmfzh3r3.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>v4nxqhlyqp.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>wzmmz9fp6w.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>su67r6k2v3.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>yclnxrl5pm.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>t38b2kh725.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>7ug5zh24hu.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>gta9lk7p23.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>vutu7akeur.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>y5ghdn5j9k.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>v9wttpbfk9.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>n38lu8286q.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>47vhws6wlr.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>kbd757ywx3.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>9t245vhmpl.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>a2p9lx4jpn.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>22mmun2rn5.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>44jx6755aq.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>k674qkevps.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>4468km3ulz.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>2u9pt9hc89.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>8s468mfl3y.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>klf5c3l5u5.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>ppxm28t8ap.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>kbmxgpxpgc.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>uw77j35x4d.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>578prtvx9j.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>4dzt52r2t5.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>tl55sbb4fm.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>c3frkrj4fj.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>e5fvkxwrpn.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>8c4e2ghe7u.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>3rd42ekr43.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>97r2b46745.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>SKAdNetworkIdentifier</key>
|
||||||
|
<string>3qcr597p9d.skadnetwork</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
45
Podfile
45
Podfile
@ -1,16 +1,16 @@
|
|||||||
platform :ios, '13.0'
|
platform :ios, '15.0'
|
||||||
|
|
||||||
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
|
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
|
||||||
|
|
||||||
post_install do |installer|
|
post_install do |installer|
|
||||||
installer.pods_project.targets.each do |target|
|
installer.pods_project.targets.each do |target|
|
||||||
target.build_configurations.each do |config|
|
target.build_configurations.each do |config|
|
||||||
config.build_settings['ENABLE_BITCODE'] = 'NO'
|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
|
||||||
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
|
config.build_settings.delete('EXCLUDED_ARCHS[sdk=iphonesimulator*]')
|
||||||
config.build_settings['EXCLUDED_ARCHITECTURES'] = 'i386'
|
config.build_settings.delete('EXCLUDED_ARCHITECTURES')
|
||||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
|
config.build_settings['ENABLE_BITCODE'] = 'NO'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
target 'Fableon' do
|
target 'Fableon' do
|
||||||
@ -37,4 +37,33 @@ target 'Fableon' do
|
|||||||
pod 'JXSegmentedView'
|
pod 'JXSegmentedView'
|
||||||
pod 'Adjust'
|
pod 'Adjust'
|
||||||
|
|
||||||
|
# 广告SDK AdMob Meta Pangle Liftoff Mintegral InMobi Verve Bigo TaurusX UnityAds AppLovin IronSource
|
||||||
|
pod 'TradPlusAdSDK', '14.9.0'
|
||||||
|
pod 'TradPlusAdSDK/FacebookAdapter', '14.9.0'
|
||||||
|
pod 'FBAudienceNetwork','6.20.1'
|
||||||
|
pod 'TradPlusAdSDK/AdMobAdapter', '14.9.0'
|
||||||
|
pod 'Google-Mobile-Ads-SDK','12.14.0'
|
||||||
|
pod 'TradPlusAdSDK/UnityAdapter', '14.9.0'
|
||||||
|
pod 'UnityAds','4.16.4'
|
||||||
|
pod 'TradPlusAdSDK/AppLovinAdapter', '14.9.0'
|
||||||
|
pod 'AppLovinSDK','13.5.0'
|
||||||
|
pod 'TradPlusAdSDK/VungleAdapter', '14.9.0'
|
||||||
|
pod 'VungleAds', '7.6.1'
|
||||||
|
pod 'TradPlusAdSDK/IronSourceAdapter', '14.9.0'
|
||||||
|
pod 'IronSourceSDK','9.2.0'
|
||||||
|
pod 'TradPlusAdSDK/InMobiAdapter', '14.9.0'
|
||||||
|
pod 'InMobiSDK' ,'11.1.0'
|
||||||
|
pod 'TradPlusAdSDK/MintegralAdapter', '14.9.0'
|
||||||
|
pod 'MintegralAdSDK' ,'7.7.9'
|
||||||
|
pod 'MintegralAdSDK/All','7.7.9'
|
||||||
|
pod 'TradPlusAdSDK/PangleAdapter', '14.9.0'
|
||||||
|
pod 'Ads-Global', '7.8.0.5'
|
||||||
|
pod 'TradPlusAdSDK/TPCrossAdapter', '14.9.0'
|
||||||
|
pod 'TradPlusAdSDK/VerveAdapter', '14.9.0'
|
||||||
|
pod 'HyBid','3.7.1'
|
||||||
|
pod 'TradPlusAdSDK/BigoAdapter', '14.9.0'
|
||||||
|
pod 'BigoADS','5.0.0'
|
||||||
|
pod 'TradPlusAdSDK/TaurusXAdapter', '14.9.0'
|
||||||
|
pod 'TaurusxAdsSDK','1.12.0'
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
175
Podfile.lock
175
Podfile.lock
@ -4,13 +4,47 @@ PODS:
|
|||||||
- Adjust/Adjust (5.4.5):
|
- Adjust/Adjust (5.4.5):
|
||||||
- AdjustSignature (= 3.47.0)
|
- AdjustSignature (= 3.47.0)
|
||||||
- AdjustSignature (3.47.0)
|
- AdjustSignature (3.47.0)
|
||||||
|
- Ads-Global (7.8.0.5):
|
||||||
|
- Ads-Global/BUAdSDK (= 7.8.0.5)
|
||||||
|
- Ads-Global/BUAdSDK (7.8.0.5):
|
||||||
|
- Ads-Global/PangleSDK
|
||||||
|
- Ads-Global/TikTokBusinessSDK
|
||||||
|
- Ads-Global/PangleSDK (7.8.0.5)
|
||||||
|
- Ads-Global/TikTokBusinessSDK (7.8.0.5)
|
||||||
- Alamofire (5.10.2)
|
- Alamofire (5.10.2)
|
||||||
|
- AppLovinSDK (13.5.0)
|
||||||
|
- ATOM-Standalone (3.8.0)
|
||||||
|
- BigoADS (5.0.0)
|
||||||
- collection-view-layouts/Core (0.2.2)
|
- collection-view-layouts/Core (0.2.2)
|
||||||
- collection-view-layouts/TagsLayout (0.2.2):
|
- collection-view-layouts/TagsLayout (0.2.2):
|
||||||
- collection-view-layouts/Core
|
- collection-view-layouts/Core
|
||||||
|
- FBAudienceNetwork (6.20.1)
|
||||||
- FDFullscreenPopGesture (1.1)
|
- FDFullscreenPopGesture (1.1)
|
||||||
- FSPagerView (0.8.3)
|
- FSPagerView (0.8.3)
|
||||||
|
- Google-Mobile-Ads-SDK (12.14.0):
|
||||||
|
- GoogleUserMessagingPlatform (>= 1.1)
|
||||||
|
- GoogleUserMessagingPlatform (3.1.0)
|
||||||
- HWPanModal (0.9.9)
|
- HWPanModal (0.9.9)
|
||||||
|
- HyBid (3.7.1):
|
||||||
|
- HyBid/ATOM (= 3.7.1)
|
||||||
|
- HyBid/Banner (= 3.7.1)
|
||||||
|
- HyBid/Core (= 3.7.1)
|
||||||
|
- HyBid/FullScreen (= 3.7.1)
|
||||||
|
- HyBid/Native (= 3.7.1)
|
||||||
|
- HyBid/RewardedVideo (= 3.7.1)
|
||||||
|
- HyBid/ATOM (3.7.1):
|
||||||
|
- ATOM-Standalone
|
||||||
|
- HyBid/Core
|
||||||
|
- HyBid/Banner (3.7.1):
|
||||||
|
- HyBid/Core
|
||||||
|
- HyBid/Core (3.7.1)
|
||||||
|
- HyBid/FullScreen (3.7.1):
|
||||||
|
- HyBid/Core
|
||||||
|
- HyBid/Native (3.7.1):
|
||||||
|
- HyBid/Core
|
||||||
|
- HyBid/RewardedVideo (3.7.1):
|
||||||
|
- HyBid/Core
|
||||||
|
- InMobiSDK (11.1.0)
|
||||||
- IQKeyboardCore (1.0.8)
|
- IQKeyboardCore (1.0.8)
|
||||||
- IQKeyboardManagerSwift (8.0.1):
|
- IQKeyboardManagerSwift (8.0.1):
|
||||||
- IQKeyboardManagerSwift/Appearance (= 8.0.1)
|
- IQKeyboardManagerSwift/Appearance (= 8.0.1)
|
||||||
@ -49,6 +83,13 @@ PODS:
|
|||||||
- IQKeyboardCore
|
- IQKeyboardCore
|
||||||
- IQTextView (1.0.5):
|
- IQTextView (1.0.5):
|
||||||
- IQKeyboardToolbar/Placeholderable
|
- IQKeyboardToolbar/Placeholderable
|
||||||
|
- IronSourceAdQualitySDK (9.1.1)
|
||||||
|
- IronSourceSDK (9.2.0.0):
|
||||||
|
- IronSourceSDK/AdQuality (= 9.2.0.0)
|
||||||
|
- IronSourceSDK/Ads (= 9.2.0.0)
|
||||||
|
- IronSourceSDK/AdQuality (9.2.0.0):
|
||||||
|
- IronSourceAdQualitySDK (~> 9.1.1)
|
||||||
|
- IronSourceSDK/Ads (9.2.0.0)
|
||||||
- JXPagingView/Paging (2.1.3)
|
- JXPagingView/Paging (2.1.3)
|
||||||
- JXPlayer (0.2.0):
|
- JXPlayer (0.2.0):
|
||||||
- SJMediaCacheServer (= 2.1.6)
|
- SJMediaCacheServer (= 2.1.6)
|
||||||
@ -57,6 +98,54 @@ PODS:
|
|||||||
- Kingfisher (8.5.0)
|
- Kingfisher (8.5.0)
|
||||||
- LYEmptyView (1.3.1)
|
- LYEmptyView (1.3.1)
|
||||||
- Masonry (1.1.0)
|
- Masonry (1.1.0)
|
||||||
|
- MintegralAdSDK (7.7.9):
|
||||||
|
- MintegralAdSDK/BannerAd (= 7.7.9)
|
||||||
|
- MintegralAdSDK/BidBannerAd (= 7.7.9)
|
||||||
|
- MintegralAdSDK/BidInterstitialVideoAd (= 7.7.9)
|
||||||
|
- MintegralAdSDK/BidNativeAd (= 7.7.9)
|
||||||
|
- MintegralAdSDK/BidNewInterstitialAd (= 7.7.9)
|
||||||
|
- MintegralAdSDK/BidRewardVideoAd (= 7.7.9)
|
||||||
|
- MintegralAdSDK/InterstitialVideoAd (= 7.7.9)
|
||||||
|
- MintegralAdSDK/NativeAd (= 7.7.9)
|
||||||
|
- MintegralAdSDK/NewInterstitialAd (= 7.7.9)
|
||||||
|
- MintegralAdSDK/RewardVideoAd (= 7.7.9)
|
||||||
|
- MintegralAdSDK/All (7.7.9):
|
||||||
|
- MintegralAdSDK/BannerAd
|
||||||
|
- MintegralAdSDK/BidNativeAd
|
||||||
|
- MintegralAdSDK/InterstitialVideoAd
|
||||||
|
- MintegralAdSDK/NativeAd
|
||||||
|
- MintegralAdSDK/NativeAdvancedAd
|
||||||
|
- MintegralAdSDK/NewInterstitialAd
|
||||||
|
- MintegralAdSDK/RewardVideoAd
|
||||||
|
- MintegralAdSDK/SplashAd
|
||||||
|
- MintegralAdSDK/BannerAd (7.7.9):
|
||||||
|
- MintegralAdSDK/NativeAd
|
||||||
|
- MintegralAdSDK/BidBannerAd (7.7.9):
|
||||||
|
- MintegralAdSDK/BannerAd
|
||||||
|
- MintegralAdSDK/BidNativeAd
|
||||||
|
- MintegralAdSDK/BidInterstitialVideoAd (7.7.9):
|
||||||
|
- MintegralAdSDK/BidNativeAd
|
||||||
|
- MintegralAdSDK/InterstitialVideoAd
|
||||||
|
- MintegralAdSDK/BidNativeAd (7.7.9):
|
||||||
|
- MintegralAdSDK/NativeAd
|
||||||
|
- MintegralAdSDK/BidNewInterstitialAd (7.7.9):
|
||||||
|
- MintegralAdSDK/BidNativeAd
|
||||||
|
- MintegralAdSDK/NewInterstitialAd
|
||||||
|
- MintegralAdSDK/BidRewardVideoAd (7.7.9):
|
||||||
|
- MintegralAdSDK/BidNativeAd
|
||||||
|
- MintegralAdSDK/RewardVideoAd
|
||||||
|
- MintegralAdSDK/InterstitialVideoAd (7.7.9):
|
||||||
|
- MintegralAdSDK/NativeAd
|
||||||
|
- MintegralAdSDK/NativeAd (7.7.9)
|
||||||
|
- MintegralAdSDK/NativeAdvancedAd (7.7.9):
|
||||||
|
- MintegralAdSDK/NativeAd
|
||||||
|
- MintegralAdSDK/NewInterstitialAd (7.7.9):
|
||||||
|
- MintegralAdSDK/InterstitialVideoAd
|
||||||
|
- MintegralAdSDK/NativeAd
|
||||||
|
- MintegralAdSDK/RewardVideoAd (7.7.9):
|
||||||
|
- MintegralAdSDK/NativeAd
|
||||||
|
- MintegralAdSDK/SplashAd (7.7.9):
|
||||||
|
- MintegralAdSDK/NativeAd
|
||||||
- MJRefresh (3.7.9)
|
- MJRefresh (3.7.9)
|
||||||
- SJBaseVideoPlayer (3.7.7.1):
|
- SJBaseVideoPlayer (3.7.7.1):
|
||||||
- Masonry
|
- Masonry
|
||||||
@ -129,7 +218,30 @@ PODS:
|
|||||||
- SVProgressHUD (2.3.1):
|
- SVProgressHUD (2.3.1):
|
||||||
- SVProgressHUD/Core (= 2.3.1)
|
- SVProgressHUD/Core (= 2.3.1)
|
||||||
- SVProgressHUD/Core (2.3.1)
|
- SVProgressHUD/Core (2.3.1)
|
||||||
|
- TaurusxAdsSDK (1.12.0):
|
||||||
|
- TaurusxAdsSDK/TaurusxAds (= 1.12.0)
|
||||||
|
- TaurusxAdsSDK/TaurusxAds (1.12.0)
|
||||||
- Toast (4.1.1)
|
- Toast (4.1.1)
|
||||||
|
- TPExchange (13.8.30)
|
||||||
|
- TradPlusAdSDK (14.9.0):
|
||||||
|
- TradPlusAdSDK/TradPlusAds (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/AdMobAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/AppLovinAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/BigoAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/FacebookAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/InMobiAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/IronSourceAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/MintegralAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/PangleAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/TaurusXAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/TPCrossAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/TradPlusAds (14.9.0):
|
||||||
|
- TPExchange (= 13.8.30)
|
||||||
|
- TradPlusAdSDK/UnityAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/VerveAdapter (14.9.0)
|
||||||
|
- TradPlusAdSDK/VungleAdapter (14.9.0)
|
||||||
|
- UnityAds (4.16.4)
|
||||||
|
- VungleAds (7.6.1)
|
||||||
- YYCategories (1.0.4):
|
- YYCategories (1.0.4):
|
||||||
- YYCategories/no-arc (= 1.0.4)
|
- YYCategories/no-arc (= 1.0.4)
|
||||||
- YYCategories/no-arc (1.0.4)
|
- YYCategories/no-arc (1.0.4)
|
||||||
@ -141,22 +253,49 @@ PODS:
|
|||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- Adjust
|
- Adjust
|
||||||
|
- Ads-Global (= 7.8.0.5)
|
||||||
- Alamofire
|
- Alamofire
|
||||||
|
- AppLovinSDK (= 13.5.0)
|
||||||
|
- BigoADS (= 5.0.0)
|
||||||
- collection-view-layouts/TagsLayout
|
- collection-view-layouts/TagsLayout
|
||||||
|
- FBAudienceNetwork (= 6.20.1)
|
||||||
- FDFullscreenPopGesture
|
- FDFullscreenPopGesture
|
||||||
- FSPagerView
|
- FSPagerView
|
||||||
|
- Google-Mobile-Ads-SDK (= 12.14.0)
|
||||||
- HWPanModal
|
- HWPanModal
|
||||||
|
- HyBid (= 3.7.1)
|
||||||
|
- InMobiSDK (= 11.1.0)
|
||||||
- IQKeyboardManagerSwift
|
- IQKeyboardManagerSwift
|
||||||
|
- IronSourceSDK (= 9.2.0)
|
||||||
- JXPagingView/Paging
|
- JXPagingView/Paging
|
||||||
- JXPlayer (from `https://github.com/zengjuexin/JXPlayer.git`, tag `0.2.0`)
|
- JXPlayer (from `https://github.com/zengjuexin/JXPlayer.git`, tag `0.2.0`)
|
||||||
- JXSegmentedView
|
- JXSegmentedView
|
||||||
- Kingfisher
|
- Kingfisher
|
||||||
- LYEmptyView
|
- LYEmptyView
|
||||||
|
- MintegralAdSDK (= 7.7.9)
|
||||||
|
- MintegralAdSDK/All (= 7.7.9)
|
||||||
- MJRefresh
|
- MJRefresh
|
||||||
- SmartCodable
|
- SmartCodable
|
||||||
- SnapKit
|
- SnapKit
|
||||||
- SVProgressHUD
|
- SVProgressHUD
|
||||||
|
- TaurusxAdsSDK (= 1.12.0)
|
||||||
- Toast
|
- Toast
|
||||||
|
- TradPlusAdSDK (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/AdMobAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/AppLovinAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/BigoAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/FacebookAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/InMobiAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/IronSourceAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/MintegralAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/PangleAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/TaurusXAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/TPCrossAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/UnityAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/VerveAdapter (= 14.9.0)
|
||||||
|
- TradPlusAdSDK/VungleAdapter (= 14.9.0)
|
||||||
|
- UnityAds (= 4.16.4)
|
||||||
|
- VungleAds (= 7.6.1)
|
||||||
- YYCategories
|
- YYCategories
|
||||||
- YYText
|
- YYText
|
||||||
- ZLPhotoBrowser
|
- ZLPhotoBrowser
|
||||||
@ -165,11 +304,20 @@ SPEC REPOS:
|
|||||||
https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git:
|
https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git:
|
||||||
- Adjust
|
- Adjust
|
||||||
- AdjustSignature
|
- AdjustSignature
|
||||||
|
- Ads-Global
|
||||||
- Alamofire
|
- Alamofire
|
||||||
|
- AppLovinSDK
|
||||||
|
- ATOM-Standalone
|
||||||
|
- BigoADS
|
||||||
- collection-view-layouts
|
- collection-view-layouts
|
||||||
|
- FBAudienceNetwork
|
||||||
- FDFullscreenPopGesture
|
- FDFullscreenPopGesture
|
||||||
- FSPagerView
|
- FSPagerView
|
||||||
|
- Google-Mobile-Ads-SDK
|
||||||
|
- GoogleUserMessagingPlatform
|
||||||
- HWPanModal
|
- HWPanModal
|
||||||
|
- HyBid
|
||||||
|
- InMobiSDK
|
||||||
- IQKeyboardCore
|
- IQKeyboardCore
|
||||||
- IQKeyboardManagerSwift
|
- IQKeyboardManagerSwift
|
||||||
- IQKeyboardNotification
|
- IQKeyboardNotification
|
||||||
@ -178,11 +326,14 @@ SPEC REPOS:
|
|||||||
- IQKeyboardToolbarManager
|
- IQKeyboardToolbarManager
|
||||||
- IQTextInputViewNotification
|
- IQTextInputViewNotification
|
||||||
- IQTextView
|
- IQTextView
|
||||||
|
- IronSourceAdQualitySDK
|
||||||
|
- IronSourceSDK
|
||||||
- JXPagingView
|
- JXPagingView
|
||||||
- JXSegmentedView
|
- JXSegmentedView
|
||||||
- Kingfisher
|
- Kingfisher
|
||||||
- LYEmptyView
|
- LYEmptyView
|
||||||
- Masonry
|
- Masonry
|
||||||
|
- MintegralAdSDK
|
||||||
- MJRefresh
|
- MJRefresh
|
||||||
- SJBaseVideoPlayer
|
- SJBaseVideoPlayer
|
||||||
- SJMediaCacheServer
|
- SJMediaCacheServer
|
||||||
@ -191,7 +342,12 @@ SPEC REPOS:
|
|||||||
- SmartCodable
|
- SmartCodable
|
||||||
- SnapKit
|
- SnapKit
|
||||||
- SVProgressHUD
|
- SVProgressHUD
|
||||||
|
- TaurusxAdsSDK
|
||||||
- Toast
|
- Toast
|
||||||
|
- TPExchange
|
||||||
|
- TradPlusAdSDK
|
||||||
|
- UnityAds
|
||||||
|
- VungleAds
|
||||||
- YYCategories
|
- YYCategories
|
||||||
- YYModel
|
- YYModel
|
||||||
- YYText
|
- YYText
|
||||||
@ -210,11 +366,20 @@ CHECKOUT OPTIONS:
|
|||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
Adjust: 010c8b2b582add6ba200469c82c4d8c9e5ddb198
|
Adjust: 010c8b2b582add6ba200469c82c4d8c9e5ddb198
|
||||||
AdjustSignature: d634fc6b66295c38807f3b4e50978c1f72355950
|
AdjustSignature: d634fc6b66295c38807f3b4e50978c1f72355950
|
||||||
|
Ads-Global: f4958eaa8e92b32a05fab125fed7822be81cf878
|
||||||
Alamofire: 7193b3b92c74a07f85569e1a6c4f4237291e7496
|
Alamofire: 7193b3b92c74a07f85569e1a6c4f4237291e7496
|
||||||
|
AppLovinSDK: bf8974163120910e6b902e9610e7c5a2c0f577b6
|
||||||
|
ATOM-Standalone: ad17f0d0e60b22f67ed99e5a336425d68d324f3e
|
||||||
|
BigoADS: 789ca51394adb1adb405e7e01ec8e43d3dc14f15
|
||||||
collection-view-layouts: 474ec4cce601a26247737227a97fa6a4eb30213f
|
collection-view-layouts: 474ec4cce601a26247737227a97fa6a4eb30213f
|
||||||
|
FBAudienceNetwork: 08e86d63a05b3a5a59414af12e4af8d756943c80
|
||||||
FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0
|
FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0
|
||||||
FSPagerView: 670405b2f18e2a87fa37f20b00de783e562c25a8
|
FSPagerView: 670405b2f18e2a87fa37f20b00de783e562c25a8
|
||||||
|
Google-Mobile-Ads-SDK: 4534fd2dfcd3f705c5485a6633c5188d03d4eed2
|
||||||
|
GoogleUserMessagingPlatform: befe603da6501006420c206222acd449bba45a9c
|
||||||
HWPanModal: b57a6717d3cdcd666bff44f9dd2a5be9f4d6f5d2
|
HWPanModal: b57a6717d3cdcd666bff44f9dd2a5be9f4d6f5d2
|
||||||
|
HyBid: c75fa40e2d209aaed25b60f7bcd0e408d294c19e
|
||||||
|
InMobiSDK: 43b1d6560bd75c8c382bb54fa8e248f5ed979860
|
||||||
IQKeyboardCore: 8652977ec919cf5351aa2977fedd1a6546476fbc
|
IQKeyboardCore: 8652977ec919cf5351aa2977fedd1a6546476fbc
|
||||||
IQKeyboardManagerSwift: 835fc9c6e4732398113406d84900ad2e8f141218
|
IQKeyboardManagerSwift: 835fc9c6e4732398113406d84900ad2e8f141218
|
||||||
IQKeyboardNotification: eb4910401f5a0e68f97e71c62f8a0c5b7e9d535c
|
IQKeyboardNotification: eb4910401f5a0e68f97e71c62f8a0c5b7e9d535c
|
||||||
@ -223,12 +388,15 @@ SPEC CHECKSUMS:
|
|||||||
IQKeyboardToolbarManager: c8a575e8b5fffe5873d0e75312244498a0759473
|
IQKeyboardToolbarManager: c8a575e8b5fffe5873d0e75312244498a0759473
|
||||||
IQTextInputViewNotification: 3b9fb27a16e7ee8958cc9092cfb07a1a9e1fd559
|
IQTextInputViewNotification: 3b9fb27a16e7ee8958cc9092cfb07a1a9e1fd559
|
||||||
IQTextView: ae13b4922f22e6f027f62c557d9f4f236b19d5c7
|
IQTextView: ae13b4922f22e6f027f62c557d9f4f236b19d5c7
|
||||||
|
IronSourceAdQualitySDK: 56314ade811a5226f76dfd377bc09aca0d6610c0
|
||||||
|
IronSourceSDK: 66e1483cd62fb63162a965651f6f41c6b91664db
|
||||||
JXPagingView: afdd2e9af09c90160dd232b970d603cc6e7ddd0e
|
JXPagingView: afdd2e9af09c90160dd232b970d603cc6e7ddd0e
|
||||||
JXPlayer: 3064f658b71cba7f0db4098e618f11f5d8dce61a
|
JXPlayer: 3064f658b71cba7f0db4098e618f11f5d8dce61a
|
||||||
JXSegmentedView: cd73555ce2134d1656db2cb383ba9c2f36fb5078
|
JXSegmentedView: cd73555ce2134d1656db2cb383ba9c2f36fb5078
|
||||||
Kingfisher: ff0d31a1f07bdff6a1ebb3ba08b8e6e567b6500c
|
Kingfisher: ff0d31a1f07bdff6a1ebb3ba08b8e6e567b6500c
|
||||||
LYEmptyView: b6d418cfa38b78df0cf243f9a9c25ccbdc399922
|
LYEmptyView: b6d418cfa38b78df0cf243f9a9c25ccbdc399922
|
||||||
Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
|
Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
|
||||||
|
MintegralAdSDK: 054814f99bb7e967b8974fe635d9005b225cbe42
|
||||||
MJRefresh: ff9e531227924c84ce459338414550a05d2aea78
|
MJRefresh: ff9e531227924c84ce459338414550a05d2aea78
|
||||||
SJBaseVideoPlayer: b3122de12225b27b71bd9a8a1f08f4dcf2f4e5ec
|
SJBaseVideoPlayer: b3122de12225b27b71bd9a8a1f08f4dcf2f4e5ec
|
||||||
SJMediaCacheServer: f6cd08ff32f5c6fc18ff06e676b42d6c17ce4cf1
|
SJMediaCacheServer: f6cd08ff32f5c6fc18ff06e676b42d6c17ce4cf1
|
||||||
@ -237,12 +405,17 @@ SPEC CHECKSUMS:
|
|||||||
SmartCodable: 545dd052990fe7e80085463b79a1a5e462ee29ff
|
SmartCodable: 545dd052990fe7e80085463b79a1a5e462ee29ff
|
||||||
SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a
|
SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a
|
||||||
SVProgressHUD: 4837c74bdfe2e51e8821c397825996a8d7de6e22
|
SVProgressHUD: 4837c74bdfe2e51e8821c397825996a8d7de6e22
|
||||||
|
TaurusxAdsSDK: 6eed5ca3a64dcaeea3929bd483c7073fd7cf0628
|
||||||
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
|
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
|
||||||
|
TPExchange: 41f39ebc014788b277bc78030f6ef2585a5c4460
|
||||||
|
TradPlusAdSDK: 980b0feda31e25e1b8ec0f6481d43d7f2be1b39a
|
||||||
|
UnityAds: 91a5d786c1e79fcbf702c525af4700158aeb36c8
|
||||||
|
VungleAds: ab78d62721933672a83efcf7d2de8ae0610494be
|
||||||
YYCategories: 6bcd4314c6661a561410dce4a793379ebd306abd
|
YYCategories: 6bcd4314c6661a561410dce4a793379ebd306abd
|
||||||
YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
|
YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
|
||||||
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
|
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
|
||||||
ZLPhotoBrowser: d5928f08485c90a0b349a3a1e804e82c83ccf193
|
ZLPhotoBrowser: d5928f08485c90a0b349a3a1e804e82c83ccf193
|
||||||
|
|
||||||
PODFILE CHECKSUM: cd32c414c77ca06ddc270e513eb703e621fcdcff
|
PODFILE CHECKSUM: cbaf80f809461e9694f391ef939aeca544e90607
|
||||||
|
|
||||||
COCOAPODS: 1.16.2
|
COCOAPODS: 1.16.2
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user