Commit 9779b105 authored by shenyong's avatar shenyong

Merge branch 'dev_syong' into dev_main

# Conflicts:
#	PhoneManager.xcworkspace/xcshareddata/swiftpm/Package.resolved
parents ee2451e0 f78d0c53
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
042EF7462DD4A3F90028DE2C /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 042EF7452DD4A3F90028DE2C /* Kingfisher */; }; 042EF7462DD4A3F90028DE2C /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 042EF7452DD4A3F90028DE2C /* Kingfisher */; };
046463832DDF5A48008C852D /* FirebaseAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = 046463822DDF5A48008C852D /* FirebaseAnalytics */; };
046463852DDF5A48008C852D /* FirebaseCore in Frameworks */ = {isa = PBXBuildFile; productRef = 046463842DDF5A48008C852D /* FirebaseCore */; };
0496DEF32D9E3F58005B2834 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04BD915D2D9D68AD00055CEB /* WidgetKit.framework */; }; 0496DEF32D9E3F58005B2834 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04BD915D2D9D68AD00055CEB /* WidgetKit.framework */; };
0496DEF42D9E3F58005B2834 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04BD915F2D9D68AD00055CEB /* SwiftUI.framework */; }; 0496DEF42D9E3F58005B2834 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04BD915F2D9D68AD00055CEB /* SwiftUI.framework */; };
0496DEFF2D9E3F59005B2834 /* widgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 0496DEF22D9E3F57005B2834 /* widgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 0496DEFF2D9E3F59005B2834 /* widgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 0496DEF22D9E3F57005B2834 /* widgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
...@@ -210,8 +212,10 @@ ...@@ -210,8 +212,10 @@
04C299E22DDE02530054D76C /* AdSupport.framework in Frameworks */, 04C299E22DDE02530054D76C /* AdSupport.framework in Frameworks */,
042EF7462DD4A3F90028DE2C /* Kingfisher in Frameworks */, 042EF7462DD4A3F90028DE2C /* Kingfisher in Frameworks */,
3A00E856852A8783E544CD7D /* Pods_PhoneManager.framework in Frameworks */, 3A00E856852A8783E544CD7D /* Pods_PhoneManager.framework in Frameworks */,
046463852DDF5A48008C852D /* FirebaseCore in Frameworks */,
04CA06622DDDB40E009A15E3 /* KeychainSwift in Frameworks */, 04CA06622DDDB40E009A15E3 /* KeychainSwift in Frameworks */,
04EC294B2DD33B480049739A /* GoogleSignIn in Frameworks */, 04EC294B2DD33B480049739A /* GoogleSignIn in Frameworks */,
046463832DDF5A48008C852D /* FirebaseAnalytics in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -402,6 +406,7 @@ ...@@ -402,6 +406,7 @@
04EC26182DD33B070049739A /* XCRemoteSwiftPackageReference "GoogleSignIn-iOS" */, 04EC26182DD33B070049739A /* XCRemoteSwiftPackageReference "GoogleSignIn-iOS" */,
042EF7442DD4A3780028DE2C /* XCRemoteSwiftPackageReference "Kingfisher" */, 042EF7442DD4A3780028DE2C /* XCRemoteSwiftPackageReference "Kingfisher" */,
04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */, 04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */,
046463812DDF5A1F008C852D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
); );
preferredProjectObjectVersion = 77; preferredProjectObjectVersion = 77;
productRefGroup = EB388E5C2D8A61A800629B0D /* Products */; productRefGroup = EB388E5C2D8A61A800629B0D /* Products */;
...@@ -1027,6 +1032,14 @@ ...@@ -1027,6 +1032,14 @@
minimumVersion = 8.3.2; minimumVersion = 8.3.2;
}; };
}; };
046463812DDF5A1F008C852D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/firebase/firebase-ios-sdk";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 11.13.0;
};
};
04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */ = { 04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */ = {
isa = XCRemoteSwiftPackageReference; isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/evgenyneu/keychain-swift.git"; repositoryURL = "https://github.com/evgenyneu/keychain-swift.git";
...@@ -1051,6 +1064,16 @@ ...@@ -1051,6 +1064,16 @@
package = 042EF7442DD4A3780028DE2C /* XCRemoteSwiftPackageReference "Kingfisher" */; package = 042EF7442DD4A3780028DE2C /* XCRemoteSwiftPackageReference "Kingfisher" */;
productName = Kingfisher; productName = Kingfisher;
}; };
046463822DDF5A48008C852D /* FirebaseAnalytics */ = {
isa = XCSwiftPackageProductDependency;
package = 046463812DDF5A1F008C852D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
productName = FirebaseAnalytics;
};
046463842DDF5A48008C852D /* FirebaseCore */ = {
isa = XCSwiftPackageProductDependency;
package = 046463812DDF5A1F008C852D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
productName = FirebaseCore;
};
04CA06612DDDB40E009A15E3 /* KeychainSwift */ = { 04CA06612DDDB40E009A15E3 /* KeychainSwift */ = {
isa = XCSwiftPackageProductDependency; isa = XCSwiftPackageProductDependency;
package = 04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */; package = 04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */;
......
{ {
"originHash" : "9715bfe86725a7948ccb1e23cd4c1f1a8959cce77c1a2b3dba6a39cbdffc06cd", "originHash" : "adb191961c40e5f91d7183a69d699ffc93b7484a9bff6bcd805acc4dafe394ba",
"pins" : [ "pins" : [
{
"identity" : "abseil-cpp-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/abseil-cpp-binary.git",
"state" : {
"revision" : "bbe8b69694d7873315fd3a4ad41efe043e1c07c5",
"version" : "1.2024072200.0"
}
},
{ {
"identity" : "app-check", "identity" : "app-check",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
...@@ -19,6 +28,33 @@ ...@@ -19,6 +28,33 @@
"version" : "1.7.6" "version" : "1.7.6"
} }
}, },
{
"identity" : "firebase-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk",
"state" : {
"revision" : "3663b1aa6c7a1bed67ee80fd09dc6d0f9c3bb660",
"version" : "11.13.0"
}
},
{
"identity" : "googleappmeasurement",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
"revision" : "543071966b3fb6613a2fc5c6e7112d1e998184a7",
"version" : "11.13.0"
}
},
{
"identity" : "googledatatransport",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleDataTransport.git",
"state" : {
"revision" : "617af071af9aa1d6a091d59a202910ac482128f9",
"version" : "10.1.0"
}
},
{ {
"identity" : "googlesignin-ios", "identity" : "googlesignin-ios",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
...@@ -37,6 +73,15 @@ ...@@ -37,6 +73,15 @@
"version" : "8.1.0" "version" : "8.1.0"
} }
}, },
{
"identity" : "grpc-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/grpc-binary.git",
"state" : {
"revision" : "cc0001a0cf963aa40501d9c2b181e7fc9fd8ec71",
"version" : "1.69.0"
}
},
{ {
"identity" : "gtm-session-fetcher", "identity" : "gtm-session-fetcher",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
...@@ -55,6 +100,15 @@ ...@@ -55,6 +100,15 @@
"version" : "4.1.1" "version" : "4.1.1"
} }
}, },
{
"identity" : "interop-ios-for-google-sdks",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/interop-ios-for-google-sdks.git",
"state" : {
"revision" : "040d087ac2267d2ddd4cca36c757d1c6a05fdbfe",
"version" : "101.0.0"
}
},
{ {
"identity" : "keychain-swift", "identity" : "keychain-swift",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
...@@ -73,6 +127,24 @@ ...@@ -73,6 +127,24 @@
"version" : "8.3.2" "version" : "8.3.2"
} }
}, },
{
"identity" : "leveldb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/leveldb.git",
"state" : {
"revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1",
"version" : "1.22.5"
}
},
{
"identity" : "nanopb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/nanopb.git",
"state" : {
"revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1",
"version" : "2.30910.0"
}
},
{ {
"identity" : "promises", "identity" : "promises",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
...@@ -81,6 +153,15 @@ ...@@ -81,6 +153,15 @@
"revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac", "revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac",
"version" : "2.4.0" "version" : "2.4.0"
} }
},
{
"identity" : "swift-protobuf",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-protobuf.git",
"state" : {
"revision" : "d72aed98f8253ec1aa9ea1141e28150f408cf17f",
"version" : "1.29.0"
}
} }
], ],
"version" : 3 "version" : 3
......
...@@ -12,7 +12,7 @@ import GoogleMobileAds ...@@ -12,7 +12,7 @@ import GoogleMobileAds
import UserMessagingPlatform import UserMessagingPlatform
import GoogleSignIn import GoogleSignIn
import AdjustSdk import AdjustSdk
import FirebaseCore
@main @main
class AppDelegate: UIResponder, UIApplicationDelegate { class AppDelegate: UIResponder, UIApplicationDelegate {
...@@ -40,6 +40,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -40,6 +40,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
widgetAppgourp.share.PushWidgetData(battery: Int(battery), storage: Int(storage)) widgetAppgourp.share.PushWidgetData(battery: Int(battery), storage: Int(storage))
//初始化adjust //初始化adjust
let yourAppToken = "6mouvwgw7ksg" let yourAppToken = "6mouvwgw7ksg"
...@@ -68,6 +69,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -68,6 +69,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
// 初始化广告SDK // 初始化广告SDK
AdvManager.shared.initAdertisementSDK() AdvManager.shared.initAdertisementSDK()
FirebaseApp.configure()
PMEmailManager.shareManager.restore() PMEmailManager.shareManager.restore()
SettingConfiguration.share.initData() SettingConfiguration.share.initData()
HapticManager.share.setupHapticEngine() HapticManager.share.setupHapticEngine()
...@@ -79,26 +81,26 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -79,26 +81,26 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
Adjust.attribution { attribution in Adjust.attribution { attribution in
// Print("获取归因数据11",attribution?.jsonResponse) Print("获取当前归因信息",attribution as Any)
// if let dic = attribution?.jsonResponse{
// let pram = self.convertToSwiftDictionary(dic as NSDictionary)
// APIReportManager.shared.startReport(type: .source_atrribute,ext: pram)
// }
// let pram = [ // let pram = [
// "trackerToken":attribution?.trackerToken ?? "", // "tracker_token":attribution?.trackerToken ?? "",
// "trackerName":attribution?.trackerName ?? "", // "tracker_name":attribution?.trackerName ?? "",
// "network":attribution?.network ?? "", // "network":attribution?.network ?? "",
// "campaign":attribution?.campaign ?? "", // "campaign":attribution?.campaign ?? "",
// "adgroup":attribution?.adgroup ?? "", // "adgroup":attribution?.adgroup ?? "",
// "creative":attribution?.creative ?? "", // "creative":attribution?.creative ?? "",
// "clickLabel":attribution?.clickLabel ?? "", // "click_label":attribution?.clickLabel ?? "",
// "costType":attribution?.costType ?? "", // "cost_type":attribution?.costType ?? "",
// "costAmount":attribution?.costAmount ?? "", // "cost_amount":attribution?.costAmount ?? "",
// "costCurrency":attribution?.costCurrency ?? "", // "cost_currency":attribution?.costCurrency ?? "0"
// ] // ]
// let dic = attribution.jso
Print("获取当前归因信息",attribution?.jsonResponse as Any)
//APIReportManager.shared.startReport(type: .source_atrribute,ext: pram)
// Print("归因字典",pram)
// Print("归因json",attribution?.jsonResponse)
} }
PMLoadingHUD.share.config() PMLoadingHUD.share.config()
...@@ -223,7 +225,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -223,7 +225,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
options: [UIApplication.OpenURLOptionsKey: Any] = [:] options: [UIApplication.OpenURLOptionsKey: Any] = [:]
) -> Bool { ) -> Bool {
return GIDSignIn.sharedInstance.handle(url) return GIDSignIn.sharedInstance.handle(url)
} }
func convertToSwiftDictionary(_ nsDict: NSDictionary) -> [String: Any] {
return nsDict as? [String: Any] ?? [:]
}
} }
...@@ -62,8 +62,11 @@ extension AppDelegate:AdjustDelegate{ ...@@ -62,8 +62,11 @@ extension AppDelegate:AdjustDelegate{
func adjustAttributionChanged(_ attribution: ADJAttribution?) { func adjustAttributionChanged(_ attribution: ADJAttribution?) {
guard let attribution = attribution else { return } guard let attribution = attribution else { return }
// 可以将这些数据上报给自己的服务器或者做其他处理
print("归因变化数据:", attribution.jsonResponse) Print("归因变化数据",attribution.jsonResponse as Any)
if let dic = attribution.jsonResponse{
let pram = self.convertToSwiftDictionary(dic as NSDictionary)
APIReportManager.shared.startReport(type: .source_atrribute,ext: pram)
}
} }
} }
...@@ -114,11 +114,7 @@ class IAPManager: NSObject { ...@@ -114,11 +114,7 @@ class IAPManager: NSObject {
// 是否热启动 // 是否热启动
var isHotLaunch:Bool = false var isHotLaunch:Bool = false
// 订阅状态 // 订阅状态
var subscriptionType:SubscriptionType = .none{ var subscriptionType:SubscriptionType = .none
didSet{
isSubscribed = subscriptionType != .none
}
}
func config(){} func config(){}
......
...@@ -10,6 +10,7 @@ import GoogleMobileAds ...@@ -10,6 +10,7 @@ import GoogleMobileAds
import UserMessagingPlatform import UserMessagingPlatform
import AppTrackingTransparency import AppTrackingTransparency
import AdSupport import AdSupport
import AppLovinSDK
enum AdvertisementType { enum AdvertisementType {
case rewardedInterstitialType case rewardedInterstitialType
...@@ -20,8 +21,8 @@ enum AdvertisementType { ...@@ -20,8 +21,8 @@ enum AdvertisementType {
class AdvManager : NSObject, FullScreenContentDelegate { class AdvManager : NSObject, FullScreenContentDelegate {
// fixme:上线前更改 // fixme:上线前更改
// private static let REWARDED_INTERSTITIALAD_KEY : String = "ca-app-pub-3480207748580737/4276457203" // private static let REWARDED_INTERSTITIALAD_KEY : String = "ca-app-pub-3480207748580737/4276457203"
// private static let INTERSTITIALAD_KEY : String = "ca-app-pub-3480207748580737/5836950888" // private static let INTERSTITIALAD_KEY : String = "ca-app-pub-3480207748580737/5836950888"
// info.plist: ca-app-pub-3480207748580737~4236262472 // info.plist: ca-app-pub-3480207748580737~4236262472
private static let REWARDED_INTERSTITIALAD_KEY : String = "ca-app-pub-3940256099942544/6978759866" private static let REWARDED_INTERSTITIALAD_KEY : String = "ca-app-pub-3940256099942544/6978759866"
...@@ -94,14 +95,26 @@ class AdvManager : NSObject, FullScreenContentDelegate { ...@@ -94,14 +95,26 @@ class AdvManager : NSObject, FullScreenContentDelegate {
/// 初始化SDK /// 初始化SDK
func initAdertisementSDK() { func initAdertisementSDK() {
// Initialize the Google Mobile Ads SDK. ALPrivacySettings.setDoNotSell(true)
MobileAds.shared.start()
// Request an ad. MobileAds.shared.start { status in
Task { let adapterStatuses = status.adapterStatusesByClassName
// 同时load两个广告内容 for adapter in adapterStatuses {
await self.loadInterstitial() let adapterStatus = adapter.value
await self.loadRewardedInterstitialAd() NSLog("Adapter Name: %@, Description: %@, Latency: %f", adapter.key,
adapterStatus.description, adapterStatus.latency)
}
Task {
// 同时load两个广告内容
await self.loadInterstitial()
await self.loadRewardedInterstitialAd()
}
// 隐私设置
ALPrivacySettings.setHasUserConsent(true)
} }
} }
/// 获取激励插页广告 /// 获取激励插页广告
...@@ -112,6 +125,26 @@ class AdvManager : NSObject, FullScreenContentDelegate { ...@@ -112,6 +125,26 @@ class AdvManager : NSObject, FullScreenContentDelegate {
rewardedInterstitialAd = try await RewardedInterstitialAd.load( rewardedInterstitialAd = try await RewardedInterstitialAd.load(
with: AdvManager.REWARDED_INTERSTITIALAD_KEY, request: Request()) with: AdvManager.REWARDED_INTERSTITIALAD_KEY, request: Request())
rewardedInterstitialAd?.fullScreenContentDelegate = self rewardedInterstitialAd?.fullScreenContentDelegate = self
rewardedInterstitialAd?.paidEventHandler = {[weak self] value in
guard let weakSelf = self else { return }
print("激励广告价值回调",value)
let valueMicros = value.value
let currencyCode = value.currencyCode
let precision = value.precision
// 获取基础广告信息
var pram = weakSelf.loadedAdNetworkResponseInfo(ad: weakSelf.rewardedInterstitialAd)
// // 添加价值相关信息到 pram 字典中
pram["valueMicros"] = "\(valueMicros)"
pram["currencyCode"] = currencyCode
pram["precision"] = "\(precision.rawValue)"
print("广告价值和来源", pram)
// 使用 APIReportManager 上报广告价值
APIReportManager().startReport(type: .ad_price, ext: pram)
}
APIReportManager.shared.startReport( APIReportManager.shared.startReport(
type: .ad_pull, type: .ad_pull,
ext: ["ad_type":"rewardAd", ext: ["ad_type":"rewardAd",
...@@ -140,6 +173,26 @@ class AdvManager : NSObject, FullScreenContentDelegate { ...@@ -140,6 +173,26 @@ class AdvManager : NSObject, FullScreenContentDelegate {
interstitial = try await InterstitialAd.load( interstitial = try await InterstitialAd.load(
with: AdvManager.INTERSTITIALAD_KEY, request: Request()) with: AdvManager.INTERSTITIALAD_KEY, request: Request())
interstitial?.fullScreenContentDelegate = self interstitial?.fullScreenContentDelegate = self
interstitial?.paidEventHandler = {[weak self] value in
guard let weakSelf = self else { return }
print("插屏广告价值回调",value)
let valueMicros = value.value
let currencyCode = value.currencyCode
let precision = value.precision
// 获取基础广告信息
var pram = weakSelf.loadedAdNetworkResponseInfo(ad: weakSelf.interstitial)
// // 添加价值相关信息到 pram 字典中
pram["valueMicros"] = "\(valueMicros)"
pram["currencyCode"] = currencyCode
pram["precision"] = "\(precision.rawValue)"
print("广告价值和来源", pram)
// 使用 APIReportManager 上报广告价值
APIReportManager().startReport(type: .ad_price, ext: pram)
}
APIReportManager.shared.startReport( APIReportManager.shared.startReport(
type: .ad_pull, type: .ad_pull,
ext: ["ad_type":"interAd", ext: ["ad_type":"interAd",
...@@ -297,8 +350,8 @@ class AdvManager : NSObject, FullScreenContentDelegate { ...@@ -297,8 +350,8 @@ class AdvManager : NSObject, FullScreenContentDelegate {
extension AdvManager{ extension AdvManager{
func loadedAdNetworkResponseInfo(ad: FullScreenPresentingAd) ->[String:String]{ func loadedAdNetworkResponseInfo(ad: FullScreenPresentingAd?) ->[String:String]{
var adNetworkName = "" var adNetworkName = ""
var adSourceName = "" var adSourceName = ""
var adSourceID = "" var adSourceID = ""
...@@ -315,6 +368,7 @@ extension AdvManager{ ...@@ -315,6 +368,7 @@ extension AdvManager{
adSourceInstanceID = rewardedAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceInstanceID ?? "unknown" adSourceInstanceID = rewardedAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceInstanceID ?? "unknown"
} else if let interstitialAd = ad as? InterstitialAd { } else if let interstitialAd = ad as? InterstitialAd {
adNetworkName = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adNetworkClassName ?? "unknown" adNetworkName = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adNetworkClassName ?? "unknown"
adSourceName = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceName ?? "unknown" adSourceName = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceName ?? "unknown"
adSourceID = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceID ?? "unknown" adSourceID = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceID ?? "unknown"
...@@ -323,22 +377,24 @@ extension AdvManager{ ...@@ -323,22 +377,24 @@ extension AdvManager{
adSourceInstanceID = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceInstanceID ?? "unknown" adSourceInstanceID = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceInstanceID ?? "unknown"
} }
var ad_type = "interAd" var pram = [
if let _ = ad as? RewardedInterstitialAd{
ad_type = "rewardAd"
}
let pram = [
"ad_type": ad_type,
"from":currentVCName, "from":currentVCName,
"networkname":adNetworkName, "networkname":adNetworkName,
"source":adSourceName, "adSourceName":adSourceName,
"adSourceInstanceName":adSourceInstanceName, "adSourceInstanceName":adSourceInstanceName,
"adSourceID":adSourceID, "adSourceId":adSourceID,
"adNetworkClassName":adNetworkClassName, "adNetworkClassName":adNetworkClassName,
"adSourceInstanceID":adSourceInstanceID "adSourceInstanceId":adSourceInstanceID,
] ]
if let rewardAd = ad as? RewardedInterstitialAd{
pram["ad_type"] = "rewardAd"
pram["adUnitId"] = rewardAd.adUnitID
}else if let interstitial = ad as? InterstitialAd{
pram["ad_type"] = "interAd"
pram["adUnitId"] = interstitial.adUnitID
}
return pram return pram
} }
} }
......
...@@ -251,7 +251,7 @@ class HomeViewController:BaseViewController { ...@@ -251,7 +251,7 @@ class HomeViewController:BaseViewController {
DispatchQueue.main.async { DispatchQueue.main.async {
if !IAPManager.share.showYearPage{ if !IAPManager.share.showYearPage{
HomePayViewController.show { HomePayViewController.show {
NotificationManager().configNotifications() // NotificationManager().configNotifications()
} }
} }
} }
...@@ -291,7 +291,7 @@ class HomeViewController:BaseViewController { ...@@ -291,7 +291,7 @@ class HomeViewController:BaseViewController {
Singleton.shared.startCountdown {} Singleton.shared.startCountdown {}
if !isShowCharge { if !isShowCharge {
NotificationManager().configNotifications() // NotificationManager().configNotifications()
return return
} }
......
...@@ -82,17 +82,17 @@ class HomeView:UIView { ...@@ -82,17 +82,17 @@ class HomeView:UIView {
viewModel.homeDataChanged = {[weak self] section,row in viewModel.homeDataChanged = {[weak self] section,row in
guard let weakSelf = self else { return } guard let weakSelf = self else { return }
DispatchQueue.main.async { DispatchQueue.main.async {
if let cell = weakSelf.collectionView.cellForItem(at: IndexPath(row: row, section: section)) as? HomeTitleCollectionCell { // if let cell = weakSelf.collectionView.cellForItem(at: IndexPath(row: row, section: section)) as? HomeTitleCollectionCell {
// 只更新需要改变的内容 // // 只更新需要改变的内容
let model = weakSelf.viewModel.headerGroup[row] // let model = weakSelf.viewModel.headerGroup[row]
cell.reloadUIWithModel(model: model) // cell.reloadUIWithModel(model: model)
} // }
if let cell = weakSelf.collectionView.cellForItem(at: IndexPath(row: row, section: section)) as? HomeOtherCollectionCell { // if let cell = weakSelf.collectionView.cellForItem(at: IndexPath(row: row, section: section)) as? HomeOtherCollectionCell {
// 只更新需要改变的内容 // // 只更新需要改变的内容
let model = weakSelf.viewModel.cardGroup[row] // let model = weakSelf.viewModel.cardGroup[row]
cell.reloadUIWithModel(model: model) // cell.reloadUIWithModel(model: model)
} // }
// weakSelf.collectionView.reloadData() weakSelf.collectionView.reloadData()
weakSelf.homeHeader?.progressBar.chaoticProgress = CGFloat(weakSelf.viewModel.totalSize) weakSelf.homeHeader?.progressBar.chaoticProgress = CGFloat(weakSelf.viewModel.totalSize)
weakSelf.reloadHeadSize() weakSelf.reloadHeadSize()
} }
......
<?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>API_KEY</key>
<string>AIzaSyDsq1YCrNyDHATVaIk8MkM1zFZNRMERF1E</string>
<key>GCM_SENDER_ID</key>
<string>671559026879</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>com.app.phonemanager</string>
<key>PROJECT_ID</key>
<string>ai-phone-manager</string>
<key>STORAGE_BUCKET</key>
<string>ai-phone-manager.firebasestorage.app</string>
<key>IS_ADS_ENABLED</key>
<false></false>
<key>IS_ANALYTICS_ENABLED</key>
<false></false>
<key>IS_APPINVITE_ENABLED</key>
<true></true>
<key>IS_GCM_ENABLED</key>
<true></true>
<key>IS_SIGNIN_ENABLED</key>
<true></true>
<key>GOOGLE_APP_ID</key>
<string>1:671559026879:ios:3e9d1cac64859ed57d5e0a</string>
</dict>
</plist>
\ No newline at end of file
...@@ -239,6 +239,614 @@ ...@@ -239,6 +239,614 @@
<key>SKAdNetworkIdentifier</key> <key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string> <string>3qcr597p9d.skadnetwork</string>
</dict> </dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>22mmun2rn5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>238da6jt44.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>24t9a8vw3c.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>24zw6aqk47.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>252b5q8x7y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>275upjj5gd.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>294l99pt4k.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2fnua5tdw4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2u9pt9hc89.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>32z4fx6l9h.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3l6bd9hu43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qy4746246.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3rd42ekr43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3sh42y64q3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>424m5254lk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4468km3ulz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>44jx6755aq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>44n7hlldy6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>47vhws6wlr.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>488r3q3dtq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4dzt52r2t5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4fzdc2evr5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4mn522wn87.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4pfyvq9l8r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4w7y6s5ca2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>523jb4fst2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>52fl2v3hgk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>54nzkqm89y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>578prtvx9j.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5a6flpkh64.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5l3tpt7t6e.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5lm9lj6jb7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5tjdwbrq8w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6964rsfnh4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6g9af3uyq4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6p4ks3rnbw.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6v7lgmsu45.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6xzpu9s2p8.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>737z793b9f.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>74b6s63p6l.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>79pbpufp6p.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7fmhfwg9en.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7rz58n8ntl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7ug5zh24hu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>84993kbrcf.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>89z7zv988g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8c4e2ghe7u.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8m87ys6875.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8r8llnkz5a.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8s468mfl3y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>97r2b46745.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9b89h5y424.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9nlqeag3gk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9rd848q2bz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9t245vhmpl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9vvzujtq5s.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9yg77x724h.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a2p9lx4jpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a7xqa6mtl2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a8cz6cu7e5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>av6w8kgt66.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>b9bk5wbcq9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>bxvub5ada5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c3frkrj4fj.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c6k4g5qg8m.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cg4yq2srnc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cj5566h2ga.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cp8zw746q7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cs644xg564.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dbu4b84rxf.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dkc879ngq3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dzg6xy7pwj.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>e5fvkxwrpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ecpz2srf59.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>eh6m2bh4zr.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ejvt5qm6ak.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f38h382jlk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f73kdq92p3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f7s53z58qe.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>feyaarzu9v.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>g28c52eehv.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>g2y4y55b64.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>g6gcrrvk4p.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ggvn48r87g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>glqzh8vgby.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>gta8lk7p23.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>gta9lk7p23.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hb56zgv37p.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hdw39hrw9y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hs6bdukanm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>k674qkevps.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbd757ywx3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbmxgpxpgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>klf5c3l5u5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>krvm3zuq6h.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>lr83yxwka7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ludvb6z3bs.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>m297p6643m.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>m5mvw97r93.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>m8dbw4sv7c.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mj797d8u6f.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mlmmfzh3r3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mls7yz5dvl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mp6xlyr22a.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mqn7fxpca7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mtkv5xtk9e.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n38lu8286q.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n66cz3y3bx.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n6fk4nfna4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n9x2a789qt.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>nzq8sh4pbs.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>p78axxw29g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ppxm28t8ap.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>prcb7njmu6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>pwa73g5rt2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>pwdxu55a5a.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>qqp299437r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>qu637u8glc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>r45fhb6rf7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>rvh3l7un93.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>rx5hdcabgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>s39g8k73mm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>s69wq72ugq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>su67r6k2v3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t38b2kh725.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>tl55sbb4fm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>u679fj5vs4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v4nxqhlyqp.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v72qych5uu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v79kvwwj4g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v9wttpbfk9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vcra2ehyfk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vhf287vqwu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vutu7akeur.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>w9q455wk68.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wg4vff78zm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wzmmz9fp6w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x44k69ngh6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x5l83yy675.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x8jxxk4ff5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x8uqf25wch.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>xga6mpmplv.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>xy9t38ct57.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>y45688jllp.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>y5ghdn5j9k.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>yclnxrl5pm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zmvfpc5aq8.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zq492l623r.skadnetwork</string>
</dict>
</array> </array>
<key>UIApplicationSceneManifest</key> <key>UIApplicationSceneManifest</key>
<dict> <dict>
......
...@@ -20,6 +20,9 @@ target 'PhoneManager' do ...@@ -20,6 +20,9 @@ target 'PhoneManager' do
pod 'GoogleAPIClientForREST/Gmail' pod 'GoogleAPIClientForREST/Gmail'
pod 'Adjust', '~> 5.4.0' pod 'Adjust', '~> 5.4.0'
#广告适配器
pod 'GoogleMobileAdsMediationAppLovin'
# pod 'GoogleMobileAdsMediationFacebook'
post_install do |installer| post_install do |installer|
installer.pods_project.targets.each do |target| installer.pods_project.targets.each do |target|
......
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 to comment