From a905fdc4461044a4a64434fbe87a899c2e97fae8 Mon Sep 17 00:00:00 2001 From: giljihun Date: Mon, 9 Feb 2026 19:00:42 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20FirebaseAppCheck=20=EB=9D=BC=EC=9D=B4?= =?UTF-8?q?=EB=B8=8C=EB=9F=AC=EB=A6=AC=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20?= =?UTF-8?q?=EC=95=B1=20=EC=8B=9C=EC=9E=91=20=EC=8B=9C,=20AppCheck=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Keychy/Keychy.xcodeproj/project.pbxproj | 7 +++++++ Keychy/Keychy/App/AppDelegate.swift | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Keychy/Keychy.xcodeproj/project.pbxproj b/Keychy/Keychy.xcodeproj/project.pbxproj index 6053b661d..e07422126 100644 --- a/Keychy/Keychy.xcodeproj/project.pbxproj +++ b/Keychy/Keychy.xcodeproj/project.pbxproj @@ -111,6 +111,7 @@ 4C25259D2F3037CD003CC5AD /* WidgetBundleModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C25259B2F303745003CC5AD /* WidgetBundleModel.swift */; }; 4C25259E2F3037D6003CC5AD /* BundleImageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6B5707E2EC206CD0049F969 /* BundleImageCache.swift */; }; 4C2525DA2F35B2A7003CC5AD /* BundleSheetFilterBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2525D92F35B2A7003CC5AD /* BundleSheetFilterBar.swift */; }; + 4C2525DD2F39E38C003CC5AD /* FirebaseAppCheck in Frameworks */ = {isa = PBXBuildFile; productRef = 4C2525DC2F39E38C003CC5AD /* FirebaseAppCheck */; }; 4C3687F72EBFA87800C64E75 /* Pretendard-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3687F62EBFA87800C64E75 /* Pretendard-Medium.ttf */; }; 4C3687FA2EBFC0FB00C64E75 /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3687F82EBFC0FB00C64E75 /* NotificationManager.swift */; }; 4C3687FC2EC05E6800C64E75 /* AccountAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3687FB2EC05E6800C64E75 /* AccountAlert.swift */; }; @@ -920,6 +921,7 @@ 38A5943C2EAE4EE20003D712 /* FirebaseAnalytics in Frameworks */, 38A5943E2EAE4EE20003D712 /* FirebaseAuth in Frameworks */, 38A594462EAE4EE20003D712 /* FirebaseMessaging in Frameworks */, + 4C2525DD2F39E38C003CC5AD /* FirebaseAppCheck in Frameworks */, 38A594422EAE4EE20003D712 /* FirebaseCrashlytics in Frameworks */, 38A594402EAE4EE20003D712 /* FirebaseCore in Frameworks */, 38A594482EAE4EE20003D712 /* FirebaseStorage in Frameworks */, @@ -2367,6 +2369,7 @@ 38A594472EAE4EE20003D712 /* FirebaseStorage */, 4CBBEF192EB2565900252590 /* Nuke */, 4CBBEF1B2EB2565900252590 /* NukeUI */, + 4C2525DC2F39E38C003CC5AD /* FirebaseAppCheck */, ); productName = Keychy; productReference = 4CEC61B12EAE071B0099ECEE /* Keychy.app */; @@ -3299,6 +3302,10 @@ package = 38A5943A2EAE4EE20003D712 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; productName = FirebaseStorage; }; + 4C2525DC2F39E38C003CC5AD /* FirebaseAppCheck */ = { + isa = XCSwiftPackageProductDependency; + productName = FirebaseAppCheck; + }; 4C6621DA2EAE0D93001760B5 /* Lottie */ = { isa = XCSwiftPackageProductDependency; package = 4C6621D92EAE0D93001760B5 /* XCRemoteSwiftPackageReference "lottie-ios" */; diff --git a/Keychy/Keychy/App/AppDelegate.swift b/Keychy/Keychy/App/AppDelegate.swift index 936923739..a41d1bbae 100644 --- a/Keychy/Keychy/App/AppDelegate.swift +++ b/Keychy/Keychy/App/AppDelegate.swift @@ -9,6 +9,7 @@ import SwiftUI import FirebaseCore import FirebaseAuth import FirebaseMessaging +import FirebaseAppCheck import UserNotifications /// UIKit AppDelegate를 SwiftUI 앱에 통합 @@ -42,7 +43,15 @@ class AppDelegate: NSObject, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { - + + // App Check 설정 (Firebase 초기화 전에 해야 함) + #if DEBUG + let providerFactory = AppCheckDebugProviderFactory() + #else + let providerFactory = DeviceCheckProviderFactory() + #endif + AppCheck.setAppCheckProviderFactory(providerFactory) + // Firebase 초기화 FirebaseApp.configure()