@chuseok22/capacitor-kakao-login 0.1.2 → 0.1.4

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/Package.swift ADDED
@@ -0,0 +1,33 @@
1
+ // swift-tools-version: 5.9
2
+ import PackageDescription
3
+
4
+ // Capacitor CLI는 npm 패키지명(@chuseok22/capacitor-kakao-login)을 PascalCase로 변환해
5
+ // SPM product 이름을 자동 파생합니다: Chuseok22CapacitorKakaoLogin
6
+ // 이 package/product/target 이름은 Capacitor CLI 변환 규칙과 반드시 일치해야 합니다.
7
+ let package = Package(
8
+ name: "Chuseok22CapacitorKakaoLogin",
9
+ platforms: [.iOS(.v13)],
10
+ products: [
11
+ .library(
12
+ name: "Chuseok22CapacitorKakaoLogin",
13
+ targets: ["Chuseok22CapacitorKakaoLogin"]
14
+ )
15
+ ],
16
+ dependencies: [
17
+ .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", from: "8.0.0"),
18
+ .package(url: "https://github.com/kakao/kakao-ios-sdk", from: "2.23.0"),
19
+ ],
20
+ targets: [
21
+ .target(
22
+ name: "Chuseok22CapacitorKakaoLogin",
23
+ dependencies: [
24
+ .product(name: "Capacitor", package: "capacitor-swift-pm"),
25
+ .product(name: "Cordova", package: "capacitor-swift-pm"),
26
+ .product(name: "KakaoSDKAuth", package: "kakao-ios-sdk"),
27
+ .product(name: "KakaoSDKUser", package: "kakao-ios-sdk"),
28
+ ],
29
+ // 루트 기준 상대 경로
30
+ path: "ios/Sources/Chuseok22CapacitorKakaoLogin"
31
+ )
32
+ ]
33
+ )
package/README.md CHANGED
@@ -83,6 +83,24 @@ func application(_ app: UIApplication, open url: URL,
83
83
 
84
84
  ## Android 설정
85
85
 
86
+ ### 0. Kotlin Gradle 플러그인 classpath 추가
87
+
88
+ `android/build.gradle`의 `buildscript` 블록에 Kotlin 플러그인 classpath를 추가합니다.
89
+
90
+ ```groovy
91
+ buildscript {
92
+ repositories {
93
+ google()
94
+ mavenCentral()
95
+ }
96
+ dependencies {
97
+ classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.21'
98
+ }
99
+ }
100
+ ```
101
+
102
+ > 이 단계가 없으면 `cap add android` 또는 `cap sync` 후 Gradle sync 오류가 발생합니다.
103
+
86
104
  ### 1. KakaoSDK 초기화 (`Application` 클래스)
87
105
 
88
106
  `Application` 서브클래스를 생성하고 KakaoSDK를 초기화합니다.
@@ -1,2 +1,2 @@
1
- export const APP_VERSION = '0.1.2';
1
+ export const APP_VERSION = '0.1.4';
2
2
  //# sourceMappingURL=version.js.map
package/ios/Package.swift CHANGED
@@ -1,29 +1,3 @@
1
- // swift-tools-version: 5.9
2
- import PackageDescription
3
-
4
- let package = Package(
5
- name: "KakaoLoginPlugin",
6
- platforms: [.iOS(.v13)],
7
- products: [
8
- .library(
9
- name: "KakaoLoginPlugin",
10
- targets: ["KakaoLoginPlugin"]
11
- )
12
- ],
13
- dependencies: [
14
- .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", from: "6.0.0"),
15
- .package(url: "https://github.com/kakao/kakao-ios-sdk", from: "2.23.0"),
16
- ],
17
- targets: [
18
- .target(
19
- name: "KakaoLoginPlugin",
20
- dependencies: [
21
- .product(name: "Capacitor", package: "capacitor-swift-pm"),
22
- .product(name: "Cordova", package: "capacitor-swift-pm"),
23
- .product(name: "KakaoSDKAuth", package: "kakao-ios-sdk"),
24
- .product(name: "KakaoSDKUser", package: "kakao-ios-sdk"),
25
- ],
26
- path: "Sources/KakaoLoginPlugin"
27
- )
28
- ]
29
- )
1
+ // 파일은 더 이상 사용되지 않습니다.
2
+ // SPM 패키지 매니페스트는 프로젝트 루트의 Package.swift를 사용합니다.
3
+ // This file is intentionally left empty. See Package.swift at the project root.
@@ -0,0 +1,58 @@
1
+ import Foundation
2
+ import Capacitor
3
+ import KakaoSDKAuth
4
+ import KakaoSDKUser
5
+
6
+ /// Capacitor 플러그인 — 카카오 소셜 로그인
7
+ /// @objc(KakaoLoginPlugin)과 identifier는 Capacitor JS 브릿지 식별자로 변경 불가.
8
+ /// SPM 모듈명은 Chuseok22CapacitorKakaoLogin이나, 플러그인 등록명은 KakaoLoginPlugin을 유지한다.
9
+ @objc(KakaoLoginPlugin)
10
+ public class KakaoLoginPlugin: CAPPlugin, CAPBridgedPlugin {
11
+
12
+ public let identifier = "KakaoLoginPlugin"
13
+ public let jsName = "KakaoLogin"
14
+ public let pluginMethods: [CAPPluginMethod] = [
15
+ CAPPluginMethod(name: "login", returnType: CAPPluginReturnPromise)
16
+ ]
17
+
18
+ @objc func login(_ call: CAPPluginCall) {
19
+ DispatchQueue.main.async {
20
+ if UserApi.isKakaoTalkLoginAvailable() {
21
+ // 카카오톡 앱 로그인
22
+ UserApi.shared.loginWithKakaoTalk { [weak self] oauthToken, error in
23
+ self?.handleLoginResult(call: call, oauthToken: oauthToken, error: error)
24
+ }
25
+ } else {
26
+ // 카카오 계정 웹뷰 로그인 (카카오톡 미설치 환경)
27
+ UserApi.shared.loginWithKakaoAccount { [weak self] oauthToken, error in
28
+ self?.handleLoginResult(call: call, oauthToken: oauthToken, error: error)
29
+ }
30
+ }
31
+ }
32
+ }
33
+
34
+ private func handleLoginResult(call: CAPPluginCall, oauthToken _: OAuthToken?, error: Error?) {
35
+ if let error = error {
36
+ DispatchQueue.main.async {
37
+ call.reject("카카오 로그인 실패", nil, error)
38
+ }
39
+ return
40
+ }
41
+
42
+ UserApi.shared.me { user, error in
43
+ DispatchQueue.main.async {
44
+ if let error = error {
45
+ call.reject("카카오 사용자 정보 조회 실패", nil, error)
46
+ return
47
+ }
48
+
49
+ guard let userId = user?.id else {
50
+ call.reject("카카오 사용자 ID를 가져올 수 없습니다")
51
+ return
52
+ }
53
+
54
+ call.resolve(["socialId": String(userId)])
55
+ }
56
+ }
57
+ }
58
+ }
@@ -1,57 +1,3 @@
1
- import Foundation
2
- import Capacitor
3
- import KakaoSDKAuth
4
- import KakaoSDKUser
5
-
6
- /// Capacitor 플러그인 — 카카오 소셜 로그인
7
- /// npx cap sync 시 @objc(KakaoLoginPlugin) 패턴으로 자동 탐색된다.
8
- @objc(KakaoLoginPlugin)
9
- public class KakaoLoginPlugin: CAPPlugin, CAPBridgedPlugin {
10
-
11
- public let identifier = "KakaoLoginPlugin"
12
- public let jsName = "KakaoLogin"
13
- public let pluginMethods: [CAPPluginMethod] = [
14
- CAPPluginMethod(name: "login", returnType: CAPPluginReturnPromise)
15
- ]
16
-
17
- @objc func login(_ call: CAPPluginCall) {
18
- DispatchQueue.main.async {
19
- if UserApi.isKakaoTalkLoginAvailable() {
20
- // 카카오톡 앱 로그인
21
- UserApi.shared.loginWithKakaoTalk { [weak self] oauthToken, error in
22
- self?.handleLoginResult(call: call, oauthToken: oauthToken, error: error)
23
- }
24
- } else {
25
- // 카카오 계정 웹뷰 로그인 (카카오톡 미설치 환경)
26
- UserApi.shared.loginWithKakaoAccount { [weak self] oauthToken, error in
27
- self?.handleLoginResult(call: call, oauthToken: oauthToken, error: error)
28
- }
29
- }
30
- }
31
- }
32
-
33
- private func handleLoginResult(call: CAPPluginCall, oauthToken _: OAuthToken?, error: Error?) {
34
- if let error = error {
35
- DispatchQueue.main.async {
36
- call.reject("카카오 로그인 실패", nil, error)
37
- }
38
- return
39
- }
40
-
41
- UserApi.shared.me { user, error in
42
- DispatchQueue.main.async {
43
- if let error = error {
44
- call.reject("카카오 사용자 정보 조회 실패", nil, error)
45
- return
46
- }
47
-
48
- guard let userId = user?.id else {
49
- call.reject("카카오 사용자 ID를 가져올 수 없습니다")
50
- return
51
- }
52
-
53
- call.resolve(["socialId": String(userId)])
54
- }
55
- }
56
- }
57
- }
1
+ // 이 파일은 더 이상 사용되지 않습니다.
2
+ // 소스는 ios/Sources/Chuseok22CapacitorKakaoLogin/KakaoLoginPlugin.swift 로 이동되었습니다.
3
+ // This file is intentionally left empty to prevent duplicate symbol compilation errors.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chuseok22/capacitor-kakao-login",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Capacitor plugin for Kakao social login (iOS & Android)",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/plugin.esm.mjs",
@@ -17,6 +17,7 @@
17
17
  "dist/",
18
18
  "ios/",
19
19
  "android/",
20
+ "Package.swift",
20
21
  "CapacitorKakaoLogin.podspec"
21
22
  ],
22
23
  "author": "Baek Jihoon",