From 39d25399d593efecbcc7ec06585f28269464dd2d Mon Sep 17 00:00:00 2001 From: kkosang Date: Tue, 15 Apr 2025 21:50:57 +0900 Subject: [PATCH 1/5] =?UTF-8?q?chore:=20firebase=20google-service=20ignore?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ffc7cf7..afa86de 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ render.experimental.xml # Google Services (e.g. APIs or Firebase) google-services.json +ios/Runner/GoogleService-Info.plist # Android Profiling *.hprof From 77b261a478f2722af3841da0afa69bff265867f0 Mon Sep 17 00:00:00 2001 From: kkosang Date: Tue, 15 Apr 2025 21:51:55 +0900 Subject: [PATCH 2/5] =?UTF-8?q?chore:=20=EC=8A=A4=ED=81=AC=EB=A6=B0?= =?UTF-8?q?=EB=B0=A9=EC=A7=80=20yaml=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pubspec.lock | 8 ++++++++ pubspec.yaml | 1 + 2 files changed, 9 insertions(+) diff --git a/pubspec.lock b/pubspec.lock index 686e683..3f6ba92 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -520,6 +520,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.6.1" + screen_protector: + dependency: "direct main" + description: + name: screen_protector + sha256: "305fd157f6f0b210afe216e790022bfe469c3b1d1f2e0d3dcc5906cc9c49c3e9" + url: "https://pub.dev" + source: hosted + version: "1.4.2+1" shared_preferences: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index ae90ec4..d867a8a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,6 +43,7 @@ dependencies: http: ^1.3.0 kakao_flutter_sdk_user: ^1.9.7+3 flutter_dotenv: ^5.2.1 + screen_protector: ^1.4.2+1 dev_dependencies: flutter_test: From 21bc5f38141ebc4aa58ea4c7b59641887af5a9cc Mon Sep 17 00:00:00 2001 From: kkosang Date: Tue, 15 Apr 2025 21:53:15 +0900 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20=ED=99=94=EB=A9=B4=EC=BA=A1?= =?UTF-8?q?=EC=B3=90=20=EB=B0=A9=EC=A7=80=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/Podfile.lock | 10 ++++++++++ lib/main.dart | 6 +++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index f3a2b75..55d7bf5 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -56,6 +56,10 @@ PODS: - kakao_flutter_sdk_common (1.9.7-3): - Flutter - RecaptchaInterop (101.0.0) + - screen_protector (1.2.1): + - Flutter + - ScreenProtectorKit (~> 1.3.1) + - ScreenProtectorKit (1.3.1) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS @@ -65,6 +69,7 @@ DEPENDENCIES: - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - Flutter (from `Flutter`) - kakao_flutter_sdk_common (from `.symlinks/plugins/kakao_flutter_sdk_common/ios`) + - screen_protector (from `.symlinks/plugins/screen_protector/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) SPEC REPOS: @@ -79,6 +84,7 @@ SPEC REPOS: - GoogleUtilities - GTMSessionFetcher - RecaptchaInterop + - ScreenProtectorKit EXTERNAL SOURCES: firebase_auth: @@ -89,6 +95,8 @@ EXTERNAL SOURCES: :path: Flutter kakao_flutter_sdk_common: :path: ".symlinks/plugins/kakao_flutter_sdk_common/ios" + screen_protector: + :path: ".symlinks/plugins/screen_protector/ios" shared_preferences_foundation: :path: ".symlinks/plugins/shared_preferences_foundation/darwin" @@ -107,6 +115,8 @@ SPEC CHECKSUMS: GTMSessionFetcher: 75b671f9e551e4c49153d4c4f8659ef4f559b970 kakao_flutter_sdk_common: 3dc8492c202af7853585d151490b1c5c6b7576cb RecaptchaInterop: 11e0b637842dfb48308d242afc3f448062325aba + screen_protector: 6f92086bd2f2f4b54f54913289b9d1310610140b + ScreenProtectorKit: 83a6281b02c7a5902ee6eac4f5045f674e902ae4 shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 PODFILE CHECKSUM: f8c2dcdfb50bb67645580d28a6bf814fca30bdec diff --git a/lib/main.dart b/lib/main.dart index b379d4e..aa99b42 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,10 +1,10 @@ import 'package:code_l/auth/presentation/pages/login/login_page.dart'; -import 'package:code_l/sign_up/presentation/pages/code_age/code_age_page.dart'; -import 'package:code_l/sign_up/presentation/pages/code_job/code_job_page.dart'; +import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:screen_protector/screen_protector.dart'; main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -12,6 +12,7 @@ main() async { await dotenv.load(fileName: ".env"); KakaoSdk.init(nativeAppKey: dotenv.env['KAKAO_NATIVE_APP_KEY']); + await ScreenProtector.preventScreenshotOn(); runApp(const ProviderScope(child: MyApp())); } @@ -23,7 +24,6 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MaterialApp( title: 'Kakao Login Demo', - theme: ThemeData(primarySwatch: Colors.blue), home: const LoginPage(), theme: ThemeData(primarySwatch: Colors.blue, scaffoldBackgroundColor: Colors.white, From ce1c83c3630cfe5b2be107472e3e41c0109d9215 Mon Sep 17 00:00:00 2001 From: kkosang Date: Tue, 15 Apr 2025 21:55:22 +0900 Subject: [PATCH 4/5] =?UTF-8?q?chore:=20firebase=20=EC=9D=98=EC=A1=B4?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle.kts | 5 ++++- android/settings.gradle.kts | 1 + ios/Runner.xcodeproj/project.pbxproj | 20 +++++++++++++++++++- ios/Runner/AppDelegate.swift | 2 ++ lib/main.dart | 1 + 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 0e91a87..31a38a8 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -3,6 +3,7 @@ import java.util.Properties plugins { id("com.android.application") id("kotlin-android") + id("com.google.gms.google-services") // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id("dev.flutter.flutter-gradle-plugin") } @@ -15,7 +16,7 @@ val properties = android { namespace = "com.codel.code_l" compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion + ndkVersion = "27.0.12077973" compileOptions { sourceCompatibility = JavaVersion.VERSION_11 @@ -52,3 +53,5 @@ android { flutter { source = "../.." } + +apply(plugin = "com.google.gms.google-services") diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts index a439442..6d4ae12 100644 --- a/android/settings.gradle.kts +++ b/android/settings.gradle.kts @@ -20,6 +20,7 @@ plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" id("com.android.application") version "8.7.0" apply false id("org.jetbrains.kotlin.android") version "1.8.22" apply false + id("com.google.gms.google-services") version "4.4.2" apply false } include(":app") diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 9371dda..d7b0228 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; A95C5CF9F58E465261D3D523 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6228E8708160B7145026049 /* Pods_Runner.framework */; }; + E1FBF0C12DAE7C460017C51F /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = E1FBF0C02DAE7C460017C51F /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -63,6 +64,7 @@ A0C3D7BA37E297BF670F5764 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; B955AE8AC425CE69815F5900 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C7F447F3DE684CF75971C579 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + E1FBF0C02DAE7C460017C51F /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; E6228E8708160B7145026049 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E771DCC6EFA21C1573E7EC1E /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -105,7 +107,6 @@ 70F87F2E741779C30B5DB63A /* Pods-RunnerTests.release.xcconfig */, A0C3D7BA37E297BF670F5764 /* Pods-RunnerTests.profile.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -144,6 +145,7 @@ 97C146F01CF9000F007C117D /* Runner */ = { isa = PBXGroup; children = ( + E1FBF0C02DAE7C460017C51F /* GoogleService-Info.plist */, 97C146FA1CF9000F007C117D /* Main.storyboard */, 97C146FD1CF9000F007C117D /* Assets.xcassets */, 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, @@ -262,6 +264,7 @@ files = ( 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + E1FBF0C12DAE7C460017C51F /* GoogleService-Info.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, ); @@ -470,15 +473,20 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = LRG496B3VQ; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.codel.codel; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; @@ -652,15 +660,20 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = LRG496B3VQ; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.codel.codel; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -674,15 +687,20 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = LRG496B3VQ; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.codel.codel; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 6266644..f6f1b9b 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -1,5 +1,6 @@ import Flutter import UIKit +import Firebase @main @objc class AppDelegate: FlutterAppDelegate { @@ -7,6 +8,7 @@ import UIKit _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { + FirebaseApp.configure() GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } diff --git a/lib/main.dart b/lib/main.dart index aa99b42..d2dee9d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -8,6 +8,7 @@ import 'package:screen_protector/screen_protector.dart'; main() async { WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp(); await dotenv.load(fileName: ".env"); From fdda655a8fb9ad0f122030f212609467c0f40ba1 Mon Sep 17 00:00:00 2001 From: kkosang Date: Tue, 15 Apr 2025 22:10:17 +0900 Subject: [PATCH 5/5] =?UTF-8?q?chore:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 31a38a8..a0a7822 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -53,5 +53,3 @@ android { flutter { source = "../.." } - -apply(plugin = "com.google.gms.google-services")