@package-kr/react-native-kakao-signin 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +313 -0
- package/android/build.gradle +60 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/packagekr/kakao/RNKakaoLoginModule.kt +347 -0
- package/android/src/main/java/com/packagekr/kakao/RNKakaoLoginPackage.kt +46 -0
- package/ios/RNKakaoError.swift +100 -0
- package/ios/RNKakaoLogin-Bridging-Header.h +1 -0
- package/ios/RNKakaoLogin.h +8 -0
- package/ios/RNKakaoLogin.mm +13 -0
- package/ios/RNKakaoLogin.swift +256 -0
- package/ios/RNKakaoLoginHelper.swift +25 -0
- package/ios/RNKakaoLoginLoader.m +148 -0
- package/kakao-login.podspec +36 -0
- package/package.json +54 -0
- package/src/NativeKakaoLogin.ts +15 -0
- package/src/index.ts +45 -0
- package/src/types/index.ts +90 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Package.kr
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# @package-kr/react-native-kakao-signin
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@package-kr/react-native-kakao-signin)
|
|
6
|
+
[](https://www.npmjs.com/package/@package-kr/react-native-kakao-signin)
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+

|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
React Native 전용 카카오 로그인 라이브러리 입니다.
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<img src="./docs/images/kakao-console/preview1.png" width="45%" />
|
|
16
|
+
|
|
17
|
+
<img src="./docs/images/kakao-console/preview2.png" width="45%" />
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
## Getting started
|
|
23
|
+
|
|
24
|
+
해당 라이브러리는 React Native `0.68` 이상을 지원합니다.<br/><br/>
|
|
25
|
+
`TurboModule` 기반으로 구현되어 있어 `New Architecture`를 지원하며,<br/>
|
|
26
|
+
`Auto Linking`이 적용되어 있어 별도 네이티브 모듈 연결 작업이 필요 없습니다.<br/>
|
|
27
|
+
|
|
28
|
+
RN Expo와 v0.68 미만은 추후 지원 예정입니다.
|
|
29
|
+
|
|
30
|
+
## Prerequisites
|
|
31
|
+
|
|
32
|
+
라이브러리를 사용하려면 먼저 [카카오 개발자 콘솔](./docs/KAKAO_CONSOLE_SETUP.md)에서 앱 등록과 플랫폼 설정을 완료해야 합니다.
|
|
33
|
+
|
|
34
|
+
## Installation
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
npm install @package-kr/react-native-kakao-signin
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## iOS
|
|
41
|
+
|
|
42
|
+
### 1. Info.plist 설정
|
|
43
|
+
|
|
44
|
+
`ios/{ProjectName}/Info.plist`에서 `{KAKAO_APP_KEY}` 부분을 카카오 네이티브 앱 키로 교체해주세요.
|
|
45
|
+
|
|
46
|
+
<details>
|
|
47
|
+
<summary>복사용</summary>
|
|
48
|
+
|
|
49
|
+
```xml
|
|
50
|
+
<key>CFBundleURLTypes</key>
|
|
51
|
+
<array>
|
|
52
|
+
<dict>
|
|
53
|
+
<key>CFBundleTypeRole</key>
|
|
54
|
+
<string>Editor</string>
|
|
55
|
+
<key>CFBundleURLName</key>
|
|
56
|
+
<string>KAKAO</string>
|
|
57
|
+
<key>CFBundleURLSchemes</key>
|
|
58
|
+
<array>
|
|
59
|
+
<string>kakao{KAKAO_APP_KEY}</string>
|
|
60
|
+
</array>
|
|
61
|
+
</dict>
|
|
62
|
+
</array>
|
|
63
|
+
<key>CFBundleVersion</key>
|
|
64
|
+
<string>$(CURRENT_PROJECT_VERSION)</string>
|
|
65
|
+
<key>KAKAO_APP_KEY</key>
|
|
66
|
+
<string>{KAKAO_APP_KEY}</string>
|
|
67
|
+
<key>LSApplicationQueriesSchemes</key>
|
|
68
|
+
<array>
|
|
69
|
+
<string>kakao{KAKAO_APP_KEY}</string>
|
|
70
|
+
<string>kakaokompassauth</string>
|
|
71
|
+
<string>kakaotalk</string>
|
|
72
|
+
</array>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
</details>
|
|
76
|
+
|
|
77
|
+
```diff
|
|
78
|
+
<!-- Info.plist -->
|
|
79
|
+
<key>CFBundleURLTypes</key>
|
|
80
|
+
<array>
|
|
81
|
+
+ <dict>
|
|
82
|
+
+ <key>CFBundleTypeRole</key>
|
|
83
|
+
+ <string>Editor</string>
|
|
84
|
+
+ <key>CFBundleURLName</key>
|
|
85
|
+
+ <string>KAKAO</string>
|
|
86
|
+
+ <key>CFBundleURLSchemes</key>
|
|
87
|
+
+ <array>
|
|
88
|
+
+ <string>kakao{KAKAO_APP_KEY}</string>
|
|
89
|
+
+ </array>
|
|
90
|
+
+ </dict>
|
|
91
|
+
</array>
|
|
92
|
+
<key>CFBundleVersion</key>
|
|
93
|
+
<string>$(CURRENT_PROJECT_VERSION)</string>
|
|
94
|
+
+ <key>KAKAO_APP_KEY</key>
|
|
95
|
+
+ <string>{KAKAO_APP_KEY}</string>
|
|
96
|
+
+ <key>LSApplicationQueriesSchemes</key>
|
|
97
|
+
+ <array>
|
|
98
|
+
+ <string>kakaoa{KAKAO_APP_KEY}</string>
|
|
99
|
+
+ <string>kakaokompassauth</string>
|
|
100
|
+
+ <string>kakaotalk</string>
|
|
101
|
+
+ </array>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 2. CocoaPods 설치
|
|
105
|
+
|
|
106
|
+
```sh
|
|
107
|
+
cd ios && pod install
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Android
|
|
111
|
+
|
|
112
|
+
### 1. Redirect URI 설정
|
|
113
|
+
|
|
114
|
+
`app/src/main/AndroidManifest.xml`에 카카오 리다이렉트 액티비티를 추가합니다.<br/>
|
|
115
|
+
`{KAKAO_APP_KEY}` 부분을 카카오 네이티브 앱 키로 교체해주세요.
|
|
116
|
+
|
|
117
|
+
사용자 휴대폰에 카카오 앱이 설치되어 있을 경우 로그인 후 앱으로 돌아오기 위한 설정입니다.<br/>
|
|
118
|
+
Android 12(API 31) 이상을 타깃하는 경우 `android:exported="true"` 를 반드시 선언해주셔야 합니다.
|
|
119
|
+
|
|
120
|
+
```xml
|
|
121
|
+
<!-- AndroidManifest.xml -->
|
|
122
|
+
<activity
|
|
123
|
+
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
|
|
124
|
+
android:exported="true">
|
|
125
|
+
<intent-filter>
|
|
126
|
+
<action android:name="android.intent.action.VIEW" />
|
|
127
|
+
<category android:name="android.intent.category.DEFAULT" />
|
|
128
|
+
<category android:name="android.intent.category.BROWSABLE" />
|
|
129
|
+
<data android:host="oauth" android:scheme="kakao{KAKAO_APP_KEY}" />
|
|
130
|
+
</intent-filter>
|
|
131
|
+
</activity>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 2. 카카오 앱 키 설정
|
|
135
|
+
|
|
136
|
+
`app/src/main/res/values/strings.xml`에 카카오 앱 키를 추가합니다.<br/>
|
|
137
|
+
카카오 SDK가 앱 키를 자동으로 읽어오기 위한 설정입니다.
|
|
138
|
+
|
|
139
|
+
```diff
|
|
140
|
+
<resources>
|
|
141
|
+
<string name="app_name">YourAppName</string>
|
|
142
|
+
+ <string name="kakao_app_key">{KAKAO_APP_KEY}</string>
|
|
143
|
+
</resources>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Usage
|
|
147
|
+
|
|
148
|
+
더 많은 사용 예제는 [KakaoLoginExample](https://github.com/Package-KR/react-native-kakao-signin/tree/main/KakaoLoginExample) 프로젝트를 참고해주세요.
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
import {
|
|
152
|
+
login,
|
|
153
|
+
loginWithKakaoAccount,
|
|
154
|
+
logout,
|
|
155
|
+
unlink,
|
|
156
|
+
getProfile,
|
|
157
|
+
getAccessToken,
|
|
158
|
+
shippingAddresses,
|
|
159
|
+
serviceTerms,
|
|
160
|
+
} from '@package-kr/react-native-kakao-signin';
|
|
161
|
+
|
|
162
|
+
// 카카오톡으로 로그인 (카카오톡 미설치 시 카카오계정으로 자동 전환)
|
|
163
|
+
const token = await login();
|
|
164
|
+
|
|
165
|
+
// 카카오계정으로 로그인
|
|
166
|
+
const token = await loginWithKakaoAccount();
|
|
167
|
+
|
|
168
|
+
// 로그아웃
|
|
169
|
+
await logout();
|
|
170
|
+
|
|
171
|
+
// 연결 해제
|
|
172
|
+
await unlink();
|
|
173
|
+
|
|
174
|
+
// 프로필 조회
|
|
175
|
+
const profile = await getProfile();
|
|
176
|
+
|
|
177
|
+
// 토큰 조회
|
|
178
|
+
const token = await getAccessToken();
|
|
179
|
+
|
|
180
|
+
// 배송주소 조회
|
|
181
|
+
const addresses = await shippingAddresses();
|
|
182
|
+
|
|
183
|
+
// 서비스 약관 조회
|
|
184
|
+
const terms = await serviceTerms();
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Methods
|
|
190
|
+
|
|
191
|
+
| 메서드 | 설명 | Returns |
|
|
192
|
+
| ------------------------- | ------------------------------------------------------------------------------------ | --------------------------------- |
|
|
193
|
+
| `login()` | 카카오톡으로 로그인합니다. 카카오톡 미설치 시 카카오계정 로그인으로 자동 전환됩니다. | `Promise<KakaoOAuthToken>` |
|
|
194
|
+
| `loginWithKakaoAccount()` | 카카오계정으로 로그인합니다. | `Promise<KakaoOAuthToken>` |
|
|
195
|
+
| `logout()` | 로그아웃합니다. | `Promise<string>` |
|
|
196
|
+
| `unlink()` | 카카오 계정 연결을 해제합니다. | `Promise<string>` |
|
|
197
|
+
| `getProfile()` | 사용자 프로필을 조회합니다. | `Promise<KakaoProfile>` |
|
|
198
|
+
| `getAccessToken()` | 현재 저장된 액세스 토큰을 조회합니다. | `Promise<KakaoAccessTokenInfo>` |
|
|
199
|
+
| `shippingAddresses()` | 사용자 배송주소 목록을 조회합니다. | `Promise<KakaoShippingAddresses>` |
|
|
200
|
+
| `serviceTerms()` | 서비스 약관 동의 내역을 조회합니다. | `Promise<KakaoServiceTerms>` |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Types
|
|
205
|
+
|
|
206
|
+
### `KakaoOAuthToken`
|
|
207
|
+
|
|
208
|
+
| 필드 | 타입 | 설명 |
|
|
209
|
+
| ----------------------- | ------------------ | ------------------------ |
|
|
210
|
+
| `accessToken` | `string` | 액세스 토큰 |
|
|
211
|
+
| `refreshToken` | `string` | 리프레시 토큰 |
|
|
212
|
+
| `idToken` | `string \| null` | ID 토큰 (OpenID Connect) |
|
|
213
|
+
| `accessTokenExpiresAt` | `string` | 액세스 토큰 만료 시각 |
|
|
214
|
+
| `refreshTokenExpiresAt` | `string` | 리프레시 토큰 만료 시각 |
|
|
215
|
+
| `scopes` | `string[] \| null` | 인증된 스코프 목록 |
|
|
216
|
+
|
|
217
|
+
### `KakaoProfile`
|
|
218
|
+
|
|
219
|
+
| 필드 | 타입 | 설명 |
|
|
220
|
+
| ------------------------------- | ----------------- | --------------------------------- |
|
|
221
|
+
| `id` | `number \| null` | 사용자 ID |
|
|
222
|
+
| `nickname` | `string \| null` | 닉네임 |
|
|
223
|
+
| `name` | `string \| null` | 이름 |
|
|
224
|
+
| `email` | `string \| null` | 이메일 |
|
|
225
|
+
| `profileImageUrl` | `string \| null` | 프로필 이미지 URL |
|
|
226
|
+
| `thumbnailImageUrl` | `string \| null` | 프로필 썸네일 이미지 URL |
|
|
227
|
+
| `gender` | `string \| null` | 성별 |
|
|
228
|
+
| `ageRange` | `string \| null` | 연령대 |
|
|
229
|
+
| `birthday` | `string \| null` | 생일 (MMDD) |
|
|
230
|
+
| `birthdayType` | `string \| null` | 생일 타입 (SOLAR/LUNAR) |
|
|
231
|
+
| `birthyear` | `string \| null` | 출생 연도 |
|
|
232
|
+
| `phoneNumber` | `string \| null` | 전화번호 |
|
|
233
|
+
| `isEmailValid` | `boolean \| null` | 이메일 유효 여부 |
|
|
234
|
+
| `isEmailVerified` | `boolean \| null` | 이메일 인증 여부 |
|
|
235
|
+
| `isKorean` | `boolean \| null` | 한국인 여부 |
|
|
236
|
+
| `hasEmail` | `boolean \| null` | 이메일 보유 여부 |
|
|
237
|
+
| `hasPhoneNumber` | `boolean \| null` | 전화번호 보유 여부 |
|
|
238
|
+
| `hasBirthday` | `boolean \| null` | 생일 보유 여부 |
|
|
239
|
+
| `hasBirthyear` | `boolean \| null` | 출생 연도 보유 여부 |
|
|
240
|
+
| `hasAgeRange` | `boolean \| null` | 연령대 보유 여부 |
|
|
241
|
+
| `hasGender` | `boolean \| null` | 성별 보유 여부 |
|
|
242
|
+
| `isDefaultImage` | `boolean \| null` | 기본 프로필 이미지 여부 |
|
|
243
|
+
| `isDefaultNickname` | `boolean \| null` | 기본 닉네임 여부 |
|
|
244
|
+
| `connectedAt` | `string \| null` | 서비스 연결 시각 |
|
|
245
|
+
| `synchedAt` | `string \| null` | 카카오싱크 로그인 시각 |
|
|
246
|
+
| `isLeapMonth` | `boolean \| null` | 생일 윤달 여부 |
|
|
247
|
+
| `ci` | `string \| null` | 연계정보 |
|
|
248
|
+
| `ciAuthenticatedAt` | `string \| null` | CI 발급 시각 |
|
|
249
|
+
| `emailNeedsAgreement` | `boolean \| null` | 이메일 제공 동의 필요 여부 |
|
|
250
|
+
| `profileNeedsAgreement` | `boolean \| null` | 프로필 제공 동의 필요 여부 |
|
|
251
|
+
| `phoneNumberNeedsAgreement` | `boolean \| null` | 전화번호 제공 동의 필요 여부 |
|
|
252
|
+
| `genderNeedsAgreement` | `boolean \| null` | 성별 제공 동의 필요 여부 |
|
|
253
|
+
| `ageRangeNeedsAgreement` | `boolean \| null` | 연령대 제공 동의 필요 여부 |
|
|
254
|
+
| `birthdayNeedsAgreement` | `boolean \| null` | 생일 제공 동의 필요 여부 |
|
|
255
|
+
| `birthyearNeedsAgreement` | `boolean \| null` | 출생 연도 제공 동의 필요 여부 |
|
|
256
|
+
| `isKoreanNeedsAgreement` | `boolean \| null` | 한국인 여부 제공 동의 필요 여부 |
|
|
257
|
+
| `profileNicknameNeedsAgreement` | `boolean \| null` | 닉네임 제공 동의 필요 여부 |
|
|
258
|
+
| `profileImageNeedsAgreement` | `boolean \| null` | 프로필 이미지 제공 동의 필요 여부 |
|
|
259
|
+
| `nameNeedsAgreement` | `boolean \| null` | 이름 제공 동의 필요 여부 |
|
|
260
|
+
| `ciNeedsAgreement` | `boolean \| null` | CI 제공 동의 필요 여부 |
|
|
261
|
+
|
|
262
|
+
### `KakaoAccessTokenInfo`
|
|
263
|
+
|
|
264
|
+
| 필드 | 타입 | 설명 |
|
|
265
|
+
| ------------- | -------- | ----------------------- |
|
|
266
|
+
| `accessToken` | `string` | 액세스 토큰 |
|
|
267
|
+
| `expiresIn` | `string` | 만료까지 남은 시간 (초) |
|
|
268
|
+
|
|
269
|
+
### `KakaoShippingAddresses`
|
|
270
|
+
|
|
271
|
+
| 필드 | 타입 | 설명 |
|
|
272
|
+
| ------------------- | ------------------------ | -------------- |
|
|
273
|
+
| `userId` | `string` | 사용자 ID |
|
|
274
|
+
| `needsAgreement` | `boolean` | 동의 필요 여부 |
|
|
275
|
+
| `shippingAddresses` | `KakaoShippingAddress[]` | 배송주소 목록 |
|
|
276
|
+
|
|
277
|
+
### `KakaoShippingAddress`
|
|
278
|
+
|
|
279
|
+
| 필드 | 타입 | 설명 |
|
|
280
|
+
| ---------------------- | --------- | ----------------- |
|
|
281
|
+
| `id` | `string` | 배송주소 ID |
|
|
282
|
+
| `name` | `string` | 배송지명 |
|
|
283
|
+
| `isDefault` | `boolean` | 기본 배송지 여부 |
|
|
284
|
+
| `updatedAt` | `string` | 수정 시각 |
|
|
285
|
+
| `type` | `string` | 배송지 타입 |
|
|
286
|
+
| `baseAddress` | `string` | 기본 주소 |
|
|
287
|
+
| `detailAddress` | `string` | 상세 주소 |
|
|
288
|
+
| `receiverName` | `string` | 수령인 이름 |
|
|
289
|
+
| `receiverPhoneNumber1` | `string` | 수령인 전화번호 1 |
|
|
290
|
+
| `receiverPhoneNumber2` | `string` | 수령인 전화번호 2 |
|
|
291
|
+
| `zoneNumber` | `string` | 우편번호 |
|
|
292
|
+
| `zipCode` | `string` | 구 우편번호 |
|
|
293
|
+
|
|
294
|
+
### `KakaoServiceTerms`
|
|
295
|
+
|
|
296
|
+
| 필드 | 타입 | 설명 |
|
|
297
|
+
| -------------- | -------------------- | ---------------- |
|
|
298
|
+
| `userId` | `string` | 사용자 ID |
|
|
299
|
+
| `serviceTerms` | `KakaoServiceTerm[]` | 서비스 약관 목록 |
|
|
300
|
+
|
|
301
|
+
### `KakaoServiceTerm`
|
|
302
|
+
|
|
303
|
+
| 필드 | 타입 | 설명 |
|
|
304
|
+
| ----------- | --------------------- | -------------- |
|
|
305
|
+
| `tag` | `string` | 약관 태그 |
|
|
306
|
+
| `agreed` | `boolean` | 동의 여부 |
|
|
307
|
+
| `required` | `boolean` | 필수 여부 |
|
|
308
|
+
| `revocable` | `boolean` | 철회 가능 여부 |
|
|
309
|
+
| `agreedAt` | `string \| undefined` | 동의 시각 |
|
|
310
|
+
|
|
311
|
+
## 라이선스
|
|
312
|
+
|
|
313
|
+
MIT
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// 호스트 앱 설정값 조회 (없으면 기본값 사용)
|
|
2
|
+
def getExtOrDefault(name, defaultValue) {
|
|
3
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : defaultValue
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
// Android 라이브러리 플러그인 (TurboModule 포함)
|
|
7
|
+
apply plugin: "com.android.library"
|
|
8
|
+
apply plugin: "org.jetbrains.kotlin.android"
|
|
9
|
+
apply plugin: "com.facebook.react"
|
|
10
|
+
|
|
11
|
+
// TurboModule 코드젠 설정
|
|
12
|
+
react {
|
|
13
|
+
jsRootDir = file("../src")
|
|
14
|
+
libraryName = "RNKakaoSigninSpec"
|
|
15
|
+
codegenJavaPackageName = "com.packagekr.kakao"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Android 빌드 설정
|
|
19
|
+
android {
|
|
20
|
+
namespace "com.packagekr.kakao"
|
|
21
|
+
compileSdkVersion getExtOrDefault("compileSdkVersion", 36)
|
|
22
|
+
|
|
23
|
+
defaultConfig {
|
|
24
|
+
minSdkVersion getExtOrDefault("minSdkVersion", 24)
|
|
25
|
+
targetSdkVersion getExtOrDefault("targetSdkVersion", 36)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
compileOptions {
|
|
29
|
+
sourceCompatibility JavaVersion.VERSION_17
|
|
30
|
+
targetCompatibility JavaVersion.VERSION_17
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
kotlinOptions {
|
|
34
|
+
jvmTarget = "17"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// 기본 저장소
|
|
39
|
+
repositories {
|
|
40
|
+
google()
|
|
41
|
+
mavenCentral()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// 카카오 SDK 저장소
|
|
45
|
+
rootProject.allprojects {
|
|
46
|
+
repositories {
|
|
47
|
+
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// 의존성
|
|
52
|
+
dependencies {
|
|
53
|
+
def kakaoVersion = getExtOrDefault("kakaoSdkVersion", "2.22.0")
|
|
54
|
+
|
|
55
|
+
implementation "com.facebook.react:react-native:+"
|
|
56
|
+
implementation "org.jetbrains.kotlin:kotlin-stdlib:${getExtOrDefault("kotlinVersion", "2.1.20")}"
|
|
57
|
+
|
|
58
|
+
implementation "com.kakao.sdk:v2-user:${kakaoVersion}"
|
|
59
|
+
implementation "com.kakao.sdk:v2-talk:${kakaoVersion}"
|
|
60
|
+
}
|