From 236cf4db1eb5aa06176d36a776abe0f0ac5438ec Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Wed, 26 Mar 2025 15:59:57 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A7=88=EC=BC=80=ED=8C=85=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=EB=A5=BC=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=EB=A5=BC=20=EC=95=B1=EC=9D=84=20=EC=8B=A4=ED=96=89=ED=95=A0=20?= =?UTF-8?q?=EB=95=8C=20=ED=95=9C=EB=B2=88=EB=A7=8C=20=EC=8B=A4=ED=96=89?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8/=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20?= =?UTF-8?q?=EC=8B=9C=20=EB=A7=88=EC=BC=80=ED=8C=85=20=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=EB=A5=BC=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SodaLive/Sources/App/AppState.swift | 1 + SodaLive/Sources/App/AppViewModel.swift | 2 +- SodaLive/Sources/App/SodaLiveApp.swift | 8 +++++--- SodaLive/Sources/User/Login/LoginViewModel.swift | 2 ++ SodaLive/Sources/User/SignUp/SignUpViewModel.swift | 2 ++ 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/SodaLive/Sources/App/AppState.swift b/SodaLive/Sources/App/AppState.swift index 2660dce..6e75b2e 100644 --- a/SodaLive/Sources/App/AppState.swift +++ b/SodaLive/Sources/App/AppState.swift @@ -12,6 +12,7 @@ class AppState: ObservableObject { private var appStepBackStack = [AppStep]() + @Published var alreadyUpdatedMarketingInfo = false @Published private(set) var appStep: AppStep = .splash @Published var isShowPlayer = false { diff --git a/SodaLive/Sources/App/AppViewModel.swift b/SodaLive/Sources/App/AppViewModel.swift index 5fb0dfd..2d13d32 100644 --- a/SodaLive/Sources/App/AppViewModel.swift +++ b/SodaLive/Sources/App/AppViewModel.swift @@ -15,7 +15,7 @@ final class AppViewModel: ObservableObject { private let userRepository = UserRepository() func fetchAndUpdateIdfa() { - DEBUG_LOG("fetchAndUpdateIdfa") + AppState.shared.alreadyUpdatedMarketingInfo = true ATTrackingManager.requestTrackingAuthorization { [unowned self] status in if status == .authorized { if !UserDefaults.string(forKey: UserDefaultsKey.token).trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { diff --git a/SodaLive/Sources/App/SodaLiveApp.swift b/SodaLive/Sources/App/SodaLiveApp.swift index b9a6e09..203c19d 100644 --- a/SodaLive/Sources/App/SodaLiveApp.swift +++ b/SodaLive/Sources/App/SodaLiveApp.swift @@ -25,10 +25,12 @@ struct SodaLiveApp: App { } .onReceive(NotificationCenter.default.publisher(for: UIApplication.didBecomeActiveNotification)) { _ in UIApplication.shared.applicationIconBadgeNumber = 0 - AppsFlyerLib.shared().start() - viewModel.fetchAndUpdateIdfa() - viewModel.getMemberInfo() + + if !AppState.shared.alreadyUpdatedMarketingInfo { + viewModel.fetchAndUpdateIdfa() + viewModel.getMemberInfo() + } } .onOpenURL { url in DEBUG_LOG("I have received a URL through a custom scheme! \(url.absoluteString)") diff --git a/SodaLive/Sources/User/Login/LoginViewModel.swift b/SodaLive/Sources/User/Login/LoginViewModel.swift index 7750d08..0d0786a 100644 --- a/SodaLive/Sources/User/Login/LoginViewModel.swift +++ b/SodaLive/Sources/User/Login/LoginViewModel.swift @@ -10,6 +10,7 @@ import Moya import Combine final class LoginViewModel: ObservableObject { + private let appViewModel = AppViewModel() private let repository = UserRepository() private var subscription = Set() @@ -55,6 +56,7 @@ final class LoginViewModel: ObservableObject { UserDefaults.set(data.userId, forKey: .userId) UserDefaults.set(data.email, forKey: .email) UserDefaults.set(data.token, forKey: .token) + self.appViewModel.fetchAndUpdateIdfa() AppState.shared.isChangeAdultContentVisible = true AppState.shared.setAppStep(step: .splash) } else { diff --git a/SodaLive/Sources/User/SignUp/SignUpViewModel.swift b/SodaLive/Sources/User/SignUp/SignUpViewModel.swift index 63d06e6..9413995 100644 --- a/SodaLive/Sources/User/SignUp/SignUpViewModel.swift +++ b/SodaLive/Sources/User/SignUp/SignUpViewModel.swift @@ -11,6 +11,7 @@ import Combine import Moya final class SignUpViewModel: ObservableObject { + private let appViewModel = AppViewModel() private let repository = UserRepository() private var subscription = Set() @@ -58,6 +59,7 @@ final class SignUpViewModel: ObservableObject { UserDefaults.set(data.userId, forKey: .userId) UserDefaults.set(data.email, forKey: .email) UserDefaults.set(data.token, forKey: .token) + self.appViewModel.fetchAndUpdateIdfa() AppState.shared.isChangeAdultContentVisible = true AppState.shared.setAppStep(step: .splash) } else {