Skip to content

Commit a6db0ef

Browse files
committed
feat: fcm 적용
1 parent 950fe31 commit a6db0ef

File tree

14 files changed

+1323
-55
lines changed

14 files changed

+1323
-55
lines changed

.gitignore

+8-1
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,11 @@ yarn-error.log
7777
.env*
7878

7979
# react-native-config codegen
80-
ios/tmp.xcconfig
80+
ios/tmp.xcconfig
81+
82+
# Firebase configuration files
83+
GoogleService-Info.plist
84+
google-services.json
85+
86+
# iOS entitlements
87+
ClientApp.entitlements

android/app/build.gradle

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ apply plugin: "com.android.application"
22
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
33
apply plugin: "org.jetbrains.kotlin.android"
44
apply plugin: "com.facebook.react"
5+
apply plugin: 'com.google.gms.google-services'
56

67
/**
78
* This is the configuration block to customize your React Native Android app.
@@ -123,6 +124,8 @@ dependencies {
123124
implementation("com.facebook.react:react-android")
124125
implementation project(':react-native-config')
125126
implementation("com.kakao.sdk:v2-user:2.20.6")
127+
implementation platform('com.google.firebase:firebase-bom:33.5.1')
128+
implementation 'com.google.firebase:firebase-analytics'
126129
if (hermesEnabled.toBoolean()) {
127130
implementation("com.facebook.react:hermes-android")
128131
} else {

android/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ buildscript {
1717
classpath("com.android.tools.build:gradle")
1818
classpath("com.facebook.react:react-native-gradle-plugin")
1919
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
20+
classpath 'com.google.gms:google-services:4.4.2'
2021
}
2122
}
2223

ios/ClientApp.xcodeproj/project.pbxproj

+54-10
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
{
2+
"originHash" : "c63c63846d9c539229e96de38d6af51417e28c0ee9a0bc48bd0f0f19d923c329",
3+
"pins" : [
4+
{
5+
"identity" : "abseil-cpp-binary",
6+
"kind" : "remoteSourceControl",
7+
"location" : "https://github.com/google/abseil-cpp-binary.git",
8+
"state" : {
9+
"revision" : "194a6706acbd25e4ef639bcaddea16e8758a3e27",
10+
"version" : "1.2024011602.0"
11+
}
12+
},
13+
{
14+
"identity" : "app-check",
15+
"kind" : "remoteSourceControl",
16+
"location" : "https://github.com/google/app-check.git",
17+
"state" : {
18+
"revision" : "61b85103a1aeed8218f17c794687781505fbbef5",
19+
"version" : "11.2.0"
20+
}
21+
},
22+
{
23+
"identity" : "firebase-ios-sdk",
24+
"kind" : "remoteSourceControl",
25+
"location" : "https://github.com/firebase/firebase-ios-sdk",
26+
"state" : {
27+
"revision" : "8328630971a8fdd8072b36bb22bef732eb15e1f0",
28+
"version" : "11.4.0"
29+
}
30+
},
31+
{
32+
"identity" : "googleappmeasurement",
33+
"kind" : "remoteSourceControl",
34+
"location" : "https://github.com/google/GoogleAppMeasurement.git",
35+
"state" : {
36+
"revision" : "4f234bcbdae841d7015258fbbf8e7743a39b8200",
37+
"version" : "11.4.0"
38+
}
39+
},
40+
{
41+
"identity" : "googledatatransport",
42+
"kind" : "remoteSourceControl",
43+
"location" : "https://github.com/google/GoogleDataTransport.git",
44+
"state" : {
45+
"revision" : "617af071af9aa1d6a091d59a202910ac482128f9",
46+
"version" : "10.1.0"
47+
}
48+
},
49+
{
50+
"identity" : "googleutilities",
51+
"kind" : "remoteSourceControl",
52+
"location" : "https://github.com/google/GoogleUtilities.git",
53+
"state" : {
54+
"revision" : "53156c7ec267db846e6b64c9f4c4e31ba4cf75eb",
55+
"version" : "8.0.2"
56+
}
57+
},
58+
{
59+
"identity" : "grpc-binary",
60+
"kind" : "remoteSourceControl",
61+
"location" : "https://github.com/google/grpc-binary.git",
62+
"state" : {
63+
"revision" : "f56d8fc3162de9a498377c7b6cea43431f4f5083",
64+
"version" : "1.65.1"
65+
}
66+
},
67+
{
68+
"identity" : "gtm-session-fetcher",
69+
"kind" : "remoteSourceControl",
70+
"location" : "https://github.com/google/gtm-session-fetcher.git",
71+
"state" : {
72+
"revision" : "5cfe5f090c982de9c58605d2a82a4fc77b774fbd",
73+
"version" : "4.1.0"
74+
}
75+
},
76+
{
77+
"identity" : "interop-ios-for-google-sdks",
78+
"kind" : "remoteSourceControl",
79+
"location" : "https://github.com/google/interop-ios-for-google-sdks.git",
80+
"state" : {
81+
"revision" : "2d12673670417654f08f5f90fdd62926dc3a2648",
82+
"version" : "100.0.0"
83+
}
84+
},
85+
{
86+
"identity" : "leveldb",
87+
"kind" : "remoteSourceControl",
88+
"location" : "https://github.com/firebase/leveldb.git",
89+
"state" : {
90+
"revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1",
91+
"version" : "1.22.5"
92+
}
93+
},
94+
{
95+
"identity" : "nanopb",
96+
"kind" : "remoteSourceControl",
97+
"location" : "https://github.com/firebase/nanopb.git",
98+
"state" : {
99+
"revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1",
100+
"version" : "2.30910.0"
101+
}
102+
},
103+
{
104+
"identity" : "promises",
105+
"kind" : "remoteSourceControl",
106+
"location" : "https://github.com/google/promises.git",
107+
"state" : {
108+
"revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac",
109+
"version" : "2.4.0"
110+
}
111+
},
112+
{
113+
"identity" : "swift-protobuf",
114+
"kind" : "remoteSourceControl",
115+
"location" : "https://github.com/apple/swift-protobuf.git",
116+
"state" : {
117+
"revision" : "ebc7251dd5b37f627c93698e4374084d98409633",
118+
"version" : "1.28.2"
119+
}
120+
}
121+
],
122+
"version" : 3
123+
}

ios/ClientApp/AppDelegate.mm

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
#import "AppDelegate.h"
22
#import <React/RCTBundleURLProvider.h>
33
#import <RNKakaoLogins.h>
4+
#import "RNCConfig.h"
45
#import <NaverThirdPartyLogin/NaverThirdPartyLogin.h> // Naver SDK 헤더 추가
5-
#import "RNCConfig.h" // RNCConfig 헤더 추가
6+
#import <Firebase.h> // FirebaseCore 추가
67

78
@implementation AppDelegate
89

@@ -26,6 +27,8 @@ - (BOOL)application:(UIApplication *)application
2627

2728
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
2829
{
30+
[FIRApp configure]; // Firebase 초기화 추가
31+
2932
self.moduleName = @"ClientApp";
3033
// 초기 props 설정
3134
self.initialProps = @{};

ios/ClientApp/Info.plist

+18
Original file line numberDiff line numberDiff line change
@@ -109,5 +109,23 @@
109109
<string>Zocial.ttf</string>
110110
<string>Fontisto.ttf</string>
111111
</array>
112+
<key>UIBackgroundModes</key>
113+
<array>
114+
<string>remote-notification</string>
115+
</array>
116+
<key>UILaunchStoryboardName</key>
117+
<string>LaunchScreen</string>
118+
<key>UIRequiredDeviceCapabilities</key>
119+
<array>
120+
<string>arm64</string>
121+
</array>
122+
<key>UISupportedInterfaceOrientations</key>
123+
<array>
124+
<string>UIInterfaceOrientationPortrait</string>
125+
<string>UIInterfaceOrientationLandscapeLeft</string>
126+
<string>UIInterfaceOrientationLandscapeRight</string>
127+
</array>
128+
<key>UIViewControllerBasedStatusBarAppearance</key>
129+
<false/>
112130
</dict>
113131
</plist>

ios/ClientApp/PrivacyInfo.xcprivacy

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
<key>NSPrivacyAccessedAPITypeReasons</key>
1919
<array>
2020
<string>CA92.1</string>
21+
<string>1C8F.1</string>
22+
<string>C56D.1</string>
2123
</array>
2224
</dict>
2325
<dict>

ios/Podfile

+5
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,22 @@ require Pod::Executable.execute_command('node', ['-p',
66
)', __dir__]).strip
77

88
platform :ios, min_ios_version_supported
9+
910
prepare_react_native_project!
1011

1112
linkage = ENV['USE_FRAMEWORKS']
1213
if linkage != nil
1314
Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
1415
use_frameworks! :linkage => linkage.to_sym
16+
1517
end
1618

1719
target 'ClientApp' do
1820
config = use_native_modules!
1921

22+
use_frameworks! :linkage => :static
23+
$RNFirebaseAsStaticFramework = true
24+
2025
use_react_native!(
2126
:path => config[:reactNativePath],
2227
# An absolute path to your application root.

0 commit comments

Comments
 (0)