GithubHelp home page GithubHelp logo

josephnk / flutter_kakao_login Goto Github PK

View Code? Open in Web Editor NEW
35.0 35.0 15.0 296 KB

A Flutter plugin for using the native Kakao Login SDKs on Android and iOS.

License: BSD 2-Clause "Simplified" License

Ruby 12.18% Dart 84.52% Shell 3.31%

flutter_kakao_login's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

flutter_kakao_login's Issues

AUTHORIZATION_FAILED: Failed to get Authorization Code.

안드로이드쪽에서 발생하는 문제입니다.

final KakaoLoginResult result = await _kakaoSignIn.logIn();
카카오톡이 설치되어있고 로그인되어 있으면 이 코드가 제대로 실행되지만
아니라면
AUTHORIZATION_FAILED: Failed to get Authorization Code.
이 에러가 발생합니다.

Android studio의 Logcat에서는 아래의 오류가 발생합니다.
2020-02-07 16:35:19.106 22340-22340/? E/kakao init error: error
com.kakao.auth.KakaoSDK$AlreadyInitializedException
at com.kakao.auth.KakaoSDK.init(KakaoSDK.java:44)
at com.josephnk.flutterkakaologin.FlutterKakaoLoginHandler.(FlutterKakaoLoginHandler.java:65)
at com.josephnk.flutterkakaologin.FlutterKakaoLoginPlugin.onAttachedToActivity(FlutterKakaoLoginPlugin.java:101)
at com.josephnk.flutterkakaologin.FlutterKakaoLoginPlugin.onAttachedToActivity(FlutterKakaoLoginPlugin.java:91)
at io.flutter.embedding.engine.FlutterEnginePluginRegistry.add(FlutterEnginePluginRegistry.java:135)
at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:21)
at com.harftware.parasite.MainActivity.configureFlutterEngine(MainActivity.kt:21)
at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:185)
at io.flutter.embedding.android.FlutterActivity.onCreate(FlutterActivity.java:418)
at android.app.Activity.performCreate(Activity.java:7183)
... 생략

flutter_kakao_login 0.7.0버전입니다(0.6.0도 마찬가지입니다).

아래는 저의 개발환경입니다.
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.12.13+hotfix.7, on Mac OS X 10.15.2 19C57, locale ko-KR)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.3)
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.42.0)
[✓] Connected device (1 available)

늘 좋은기능 제공에 감사하고있습니다.

아이고 선생님 static frameworks: (KakaoOpenSDK) 여기에 문제가 발생합니다.

$ pod install Analyzing dependencies Fetching podspec forFlutterfrom.symlinks/flutter/iosFetching podspec forconnectivityfrom.symlinks/plugins/connectivity/iosFetching podspec fordevice_infofrom.symlinks/plugins/device_info/iosFetching podspec forfirebase_authfrom.symlinks/plugins/firebase_auth/iosFetching podspec forfirebase_corefrom.symlinks/plugins/firebase_core/iosFetching podspec forflutter_facebook_loginfrom.symlinks/plugins/flutter_facebook_login/iosFetching podspec forflutter_kakao_loginfrom.symlinks/plugins/flutter_kakao_login/iosFetching podspec forflutter_pedometerfrom.symlinks/plugins/flutter_pedometer/iosFetching podspec forfluttertoastfrom.symlinks/plugins/fluttertoast/iosFetching podspec forgoogle_sign_infrom.symlinks/plugins/google_sign_in/iosFetching podspec forpackage_infofrom.symlinks/plugins/package_info/iosFetching podspec forpermission_handlerfrom.symlinks/plugins/permission_handler/iosFetching podspec forsharefrom.symlinks/plugins/share/iosFetching podspec forshared_preferencesfrom.symlinks/plugins/shared_preferences/iosFetching podspec forvideo_playerfrom.symlinks/plugins/video_player/ios`
Downloading dependencies
Using Bolts (1.9.0)
Using FBSDKCoreKit (4.40.0)
Using FBSDKLoginKit (4.39.1)
Using Firebase (5.16.0)
Using FirebaseAnalytics (5.5.0)
Using FirebaseAuth (5.3.0)
Using FirebaseAuthInterop (1.0.0)
Using FirebaseCore (5.2.0)
Using FirebaseInstanceID (3.4.0)
Using Flutter (1.0.0)
Using GTMSessionFetcher (1.2.1)
Using GoogleAppMeasurement (5.5.0)
Using GoogleSignIn (4.4.0)
Using GoogleToolboxForMac (2.2.0)
Using GoogleUtilities (5.3.7)
Installing KakaoOpenSDK (1.11.1) <------------
Using Reachability (3.2)
Using connectivity (0.0.1)
Using device_info (0.0.1)
Using firebase_auth (0.0.1)
Using firebase_core (0.0.1)
Using flutter_facebook_login (0.0.1)
Installing flutter_kakao_login (0.0.6) <-----------------
Using flutter_pedometer (0.0.1)
Using fluttertoast (0.0.2)
Using google_sign_in (0.0.1)
Using nanopb (0.3.901)
Using package_info (0.0.1)
Using permission_handler (2.1.2)
Using share (0.5.2)
Using shared_preferences (0.0.1)
Using video_player (0.0.1)
[!] The 'Pods-Runner' target has transitive dependencies that include static frameworks: (KakaoOpenSDK)

[!] 'KakaoOpenSDK' uses the unencrypted http protocol to transfer the Pod. Please be sure you're in a safenetwork with only trusted hosts in there. Please reach out to the library author to notify them of this security issue.`

이게 문제드라구요.
[!] The 'Pods-Runner' target has transitive dependencies that include static frameworks: (KakaoOpenSDK)

use_frameworks! 요걸 제거 하고도 해봤는데 이걸 해버리면 다른것들이 전부 박살나드라구요...

이리 저리 많이 찾아 보고 있는데.. 도와주세요.

Error when used with Firebase

Error when used with Firebase
Errors only occur on Android.

It's okay to use it alone, but when using it with the Firebase, an error such as a picture occurs.

Screen Shot 2019-11-29 at 2 32 47 PM

카카오로그인시 crash 발생

flutter_kakao_login 버전 2.0.0 사용중이고 kakao 로그인 요청시 crash 발생하며 아래는 로그입니다.

첨부 로그 파일도 확인 부탁드립니다.

2021-05-09 11:14:13447 [💬][AuthController.swift 261:21] -> request:
url:https://kauth.kakao.com/oauth/authorize?client_id=6a9d527ad7be395e1ae764022fe8d78b&response_type=code&redirect_uri=kakao6a9d527ad7be395e1ae764022fe8d78b://oauth&ka=sdk/2.0.5%20sdk_type/swift%20os/ios-14.5%20lang/en-%20res/390x844%20device/iPhone%20origin/com.atop.AtopWallet%20app_ver/1.0.0
parameters: ["client_id": "6a9d527ad7be395e1ae764022fe8d78b", "response_type": "code", "redirect_uri": "kakao6a9d527ad7be395e1ae764022fe8d78b://oauth", "ka": "sdk/2.0.5 sdk_type/swift os/ios-14.5 lang/en- res/390x844 device/iPhone origin/com.atop.AtopWallet app_ver/1.0.0"]

2021-05-09 23:14:13.447439+0900 Runner[69952:365869] [AuthenticationSession] The provided scheme is not valid. A scheme should not include special characters such as ":" or "/".
2021-05-09 23:14:13.497287+0900 Runner[69952:365869] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'The provided scheme is not valid. A scheme should not include special characters such as ":" or "/".'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff20422fba __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007fff20193ff5 objc_exception_throw + 48
2 AuthenticationServices 0x00007fff4aae1b15 -[ASWebAuthenticationSession initWithURL:callbackURLScheme:usingEphemeralSession:completionHandler:] + 684
3 KakaoSDKAuth 0x000000010a558680 $sSo26ASWebAuthenticationSessionC3url17callbackURLScheme17completionHandlerAB10Foundation3URLV_SSSgyAHSg_s5Error_pSgtctcfcTO + 272
4 KakaoSDKAuth 0x000000010a55770a $sSo26ASWebAuthenticationSessionC3url17callbackURLScheme17completionHandlerAB10Foundation3URLV_SSSgyAHSg_s5Error_pSgtctcfC + 74
5 KakaoSDKAuth 0x000000010a555087 $s12KakaoSDKAuth14AuthControllerC34authorizeWithAuthenticationSession8authType8agtToken6scopes16channelPublicIds12serviceTerms10completionyAA0cJ0OSg_SSSgSaySSGSgA2PyAA05OAuthL0VSg_s5Error_pSgtctF + 5143
6 KakaoSDKAuth 0x000000010a553462 $s12KakaoSDKAuth14AuthControllerC34authorizeWithAuthenticationSession8authType10completionyAA0cJ0OSg_yAA10OAuthTokenVSg_s5Error_pSgtctF + 114
7 KakaoSDKAuth 0x000000010a54a18f $s12KakaoSDKAuth7AuthApiC09loginWithA7Account8authType10completionyAA0cI0OSg_yAA10OAuthTokenVSg_s5Error_pSgtctF + 159
8 Runner 0x0000000107a222d7 $s19flutter_kakao_login28SwiftFlutterKakaoLoginPluginC5logIn33_BCF6E7FF794984D6DB86164008F15FECLL6resultyyypSgc_tF + 455
9 Runner 0x0000000107a216f9 $s19flutter_kakao_login28SwiftFlutterKakaoLoginPluginC6handle_6resultySo0E10MethodCallC_yypSgctF + 1321
10 Runner 0x0000000107a21fee $s19flutter_kakao_login28SwiftFlutterKakaoLoginPluginC6handle_6resultySo0E10MethodCallC_yypSgctFTo + 142
11 Flutter 0x0000000108abe3be __45-[FlutterMethodChannel setMethodCallHandler:]_block_invoke + 104
12 Flutter 0x00000001082a4b26 _ZNK7flutter21PlatformMessageRouter21HandlePlatformMessageEN3fml6RefPtrINS_15PlatformMessageEEE + 166
13 Flutter 0x00000001082a9878 _ZN7flutter15PlatformViewIOS21HandlePlatformMessageEN3fml6RefPtrINS_15PlatformMessageEEE + 38
14 Flutter 0x00000001085f609f _ZNSt3__110__function6__funcIZN7flutter5Shell29OnEngineHandlePlatformMessageEN3fml6RefPtrINS2_15PlatformMessageEEEE4$_33NS_9allocatorIS8_EEFvvEEclEv + 83
15 Flutter 0x00000001082b17b6 _ZN3fml15MessageLoopImpl10FlushTasksENS_9FlushTypeE + 160
16 Flutter 0x00000001082b6526 ZN3fml17MessageLoopDarwin11OnTimerFireEP16__CFRunLoopTimerPS0 + 26
17 CoreFoundation 0x00007fff2039178a CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION + 20
18 CoreFoundation 0x00007fff2039127c __CFRunLoopDoTimer + 924
19 CoreFoundation 0x00007fff2039081a __CFRunLoopDoTimers + 265
20 CoreFoundation 0x00007fff2038ae69 __CFRunLoopRun + 2013
21 CoreFoundation 0x00007fff2038a1a7 CFRunLoopRunSpecific + 567
22 GraphicsServices 0x00007fff2b874d85 GSEventRunModal + 139
23 UIKitCore 0x00007fff246c14df -[UIApplication _run] + 912
24 UIKitCore 0x00007fff246c639c UIApplicationMain + 101
25 Runner 0x00000001079413e8 main + 72
26 libdyld.dylib 0x00007fff2025abbd start + 1
)
libc++abi: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'The provided scheme is not valid. A scheme should not include special characters such as ":" or "/".'
CoreSimulator 757.5 - Device: iPhone 12 (0A63FBF7-6EE7-42CE-96A1-AA8AAC0744E4) - Runtime: iOS 14.5 (18E182) - DeviceType: iPhone 12
terminating with uncaught exception of type NSException
(lldb) [
attachment.crashlog-3A2C2A85-CB45-4A38-A551-03EECA98F96E.txt
](url)

.logIn()이후 반응이 없습니다.

await 를 걸고 login을 할경우 ios 에서 응답이 오지 않습니다.

카카오 톡으로 넘어가지고 인증버튼을 누를뒤 앱으로 돌아오고 나서도 응답이 오지 않습니다.

스크린샷 2021-11-10 17 56 00

해당 코드의 48번 줄이 실행 안되는 것을 보아 ios 네이티브에서 반환을 못하는거 같습니다.

Android app crashes after pressing back/disagree button for two times in a row

Steps to reproduce:

  1. After pressing login button Kakao auth screen shows up, pressing back or disagree button returns user to initial screen
  2. After pressing login again and proceeding to Kakao screen again, when pressing back or disagree button for the second time, app crashes.

Log:
D/FlutterKakaoLogin(31494): onMethodCall logIn D/FlutterKakaoLogin(31494): onActivityResult D/FlutterKakaoLogin(31494): Pressed back button or disagree button during requesting auth code. I/zygote64(31494): Do partial code cache collection, code=23KB, data=29KB I/zygote64(31494): After code cache collection, code=23KB, data=29KB I/zygote64(31494): Increasing code cache capacity to 128KB D/FlutterKakaoLogin(31494): onMethodCall logIn D/FlutterKakaoLogin(31494): onActivityResult D/FlutterKakaoLogin(31494): Pressed back button or disagree button during requesting auth code. D/AndroidRuntime(31494): Shutting down VM E/AndroidRuntime(31494): FATAL EXCEPTION: main E/AndroidRuntime(31494): Process: com.josephnk.flutter_kakao_login_example, PID: 31494 **E/AndroidRuntime(31494): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1001, result=0, data=null} to activity {com.josephnk.flutter_kakao_login_example/com.josephnk.flutter_kakao_login_example.MainActivity}: java.lang.IllegalStateException: Reply already submitted** E/AndroidRuntime(31494): at android.app.ActivityThread.deliverResults(ActivityThread.java:4268) E/AndroidRuntime(31494): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4312) E/AndroidRuntime(31494): at android.app.ActivityThread.-wrap19(Unknown Source:0) E/AndroidRuntime(31494): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1644) E/AndroidRuntime(31494): at android.os.Handler.dispatchMessage(Handler.java:106) E/AndroidRuntime(31494): at android.os.Looper.loop(Looper.java:164) E/AndroidRuntime(31494): at android.app.ActivityThread.main(ActivityThread.java:6494) E/AndroidRuntime(31494): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(31494): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) E/AndroidRuntime(31494): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) E/AndroidRuntime(31494): Caused by: java.lang.IllegalStateException: Reply already submitted E/AndroidRuntime(31494): at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:139) E/AndroidRuntime(31494): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.error(MethodChannel.java:236) E/AndroidRuntime(31494): at com.josephnk.flutter_kakao_login.FlutterKakaoLoginPlugin$KakaoSessionCallback.onSessionOpenFailed(FlutterKakaoLoginPlugin.kt:211) E/AndroidRuntime(31494): at com.kakao.auth.Session.internalClose(Session.java:693) E/AndroidRuntime(31494): at com.kakao.auth.Session.onAuthCodeFailure(Session.java:727) E/AndroidRuntime(31494): at com.kakao.auth.Session.access$900(Session.java:55) E/AndroidRuntime(31494): at com.kakao.auth.Session$4.onAuthCodeFailure(Session.java:637) E/AndroidRuntime(31494): at com.kakao.auth.authorization.authcode.KakaoAuthCodeManager.onAuthCodeReceived(KakaoAuthCodeManager.java:281) E/AndroidRuntime(31494): at com.kakao.auth.authorization.authcode.TalkAuthCodeService.handleActivityResult(TalkAuthCodeService.java:56) E/AndroidRuntime(31494): at com.kakao.auth.authorization.authcode.KakaoAuthCodeManager.handleActivityResult(KakaoAuthCodeManager.java:164) E/AndroidRuntime(31494): at com.kakao.auth.Session.handleActivityResult(Session.java:578) E/AndroidRuntime(31494): at com.josephnk.flutter_kakao_login.FlutterKakaoLoginPlugin.onActivityResult(FlutterKakaoLoginPlugin.kt:140) E/AndroidRuntime(31494): at io.flutter.embedding.engine.FlutterEnginePluginRegistry$FlutterEngineActivityPluginBinding.onActivityResult(FlutterEnginePluginRegistry.java:691) E/AndroidRuntime(31494): at io.flutter.embedding.engine.FlutterEnginePluginRegistry.onActivityResult(FlutterEnginePluginRegistry.java:378) E/AndroidRuntime(31494): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onActivityResult(FlutterActivityAndFragmentDelegate.java:597) E/AndroidRuntime(31494): at io.flutter.embedding.android.FlutterActivity.onActivityResult(FlutterActivity.java:582) E/AndroidRuntime(31494): at android.app.Activity.dispatchActivityResult(Activity.java:7276) E/AndroidRuntime(31494): at android.app.ActivityThread.deliverResults(ActivityThread.java:4264) E/AndroidRuntime(31494): ... 9 more

flutter doctor:

`Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.17.5, on Mac OS X 10.15.6 19G73, locale en-KR)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[✓] Android Studio (version 4.0)
[✓] VS Code (version 1.47.2)
[✓] Connected device (3 available)

• No issues found!`

Started having this issue after updating to flutter_kakao_login: ^1.0.0

iOS works as expected.

Seems like key here is

E/AndroidRuntime(31494): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1001, result=0, data=null} to activity {com.josephnk.flutter_kakao_login_example/com.josephnk.flutter_kakao_login_example.MainActivity}: java.lang.IllegalStateException: Reply already submitted

FirebaseAuth와의 연동

FirebaseAuth로 사용하려고 하는데 구글로그인과 같이 하는 방법은 없을까요?
AuthCredential을 알아야 하는데 특별한 방법이 있나요?

혹시 성별 정보 update 계획이 있으신지요?

혹시 userme 에서 gender 정보를 받아오는 부분에 대한 업데이트 계획은 없으실까요?

소스를 받아서 kakaosdk 업데이트 후 수정하려했는데 정보를 받아오는데 어려움이 있네요 ㅠ

When I run the Android app, it just dies.

iOS에서는 정상적으로 동작하는데 안드로이드에서
flutter_kakao_login: ^0.0.4
를 추가하면, 앱 설치되는 과정에서 죽습니다.

<!-- The INTERNET permission is required for development. Specifically,
     flutter needs it to communicate with the running application
     to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>



<!-- io.flutter.app.FlutterApplication is an android.app.Application that
     calls FlutterMain.startInitialization(this); in its onCreate method.
     In most cases you can leave this as-is, but you if you want to provide
     additional functionality it is fine to subclass or reimplement
     FlutterApplication and put your custom class here. -->
<application
    android:name="io.flutter.app.FlutterApplication"
    android:label="testapp"
    android:icon="@mipmap/ic_launcher">

    <!--<uses-permission android:name="android.permission.INTERNET"/>-->

    <activity
        android:name=".MainActivity"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
        <!-- This keeps the window background of the activity showing
             until Flutter renders its first frame. It can be removed if
             there is no splash screen (such as the default splash screen
             defined in @style/LaunchTheme). -->
        <meta-data
            android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
            android:value="true" />
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>


    <!-- Kakaotal login Configuration -->
    <meta-data
        android:name="com.kakao.sdk.AppKey"
        android:value="@string/kakao_app_key" />
    <activity
        android:name="com.kakao.auth.authorization.authcode.KakaoWebViewActivity"
        android:launchMode="singleTop"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>

</application>

In ios device kakaoSignIn.login() doesn't end

Thank you for making this plugin
i'm using flutter_kakao_login 0.5.0
in android everything is ok
but iphone x and any ios device(installed kakao app) dont get any response after call kakaoSignIn.login() even i dont get any error
//my code

Future<List> kakaoAuth() async {
result = await kakaoSignIn.logIn();
print("login") . <--------------------- ---------------- this print never call;
switch (result.status) {
case KakaoLoginStatus.loggedIn:
try {
KakaoAccessToken accessToken = await (kakaoSignIn.currentAccessToken);

      if (accessToken != null) {
        return [result.account.userID, accessToken.token];
      }
    } catch (err) {
      FlutterCrashlytics().log(err.toString(), tag: "currentAccessToken");
      throw err.toString();
    }

    break;
  case KakaoLoginStatus.loggedOut:
    logger.e("loggedOut");
    break;
  case KakaoLoginStatus.error:
    logger.e("error : ${result.errorMessage}");
    FlutterCrashlytics().log(result.errorMessage, tag: "kakaoAuth");
    throw result.errorMessage;
    break;
}

}

구글 로그인 플러그인과 충돌

샘플 pubspec.yaml에 google_sign_in: ^3.2.4 를 추가하면 앱이 죽습니다.

카카오로그인과 구글 버전 충돌이 나 빌드가 안되서, project level의 build.gradle에 아래와 같이 추가하니,
빌드 오류는 나지 않습니다.
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "27.0.1"
}
}
}
}

아래와 같은 노트가 나타나기는 하지만, 샘플만 돌렸을때 잘 동작합니다.
Note: /.../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_kakao_login-0.0.5/android/src/main/java/com/josephnk/flutterkakaologin/FlutterKakaoLoginPlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

왜 앱이 죽는지 원인을 모르겠네요?

Got an error in android release mode

안녕하세요. 유용한 패키지 만들어주셔서 잘 쓰고 있습니다. 카카오 로그인을 시도하는데, ios, android dev, android profile 모드에서는 로그인이 되지만 android release 로 apk 파일을 빌드해서 설치한 뒤 adb log를 찍어보면, 카카오 로그인 시도 후에 카카오 웹 페이지 열린 뒤에 다음과 같은 에러가 나옵니다.

flutter : LOGIN_ERR 로그인 실패

빌드를 하기 위해 사용하는 명령어는 다음과 같습니다.

flutter build apk --release --flavor production --dart-define=ENV=prd

flutter doctor 결과는 다음과 같습니다.

[✓] Flutter (Channel stable, 2.5.1, on macOS 11.6 20G165 darwin-x64, locale ko-KR)
    • Flutter version 2.5.1 at /Users/parkinpum/dev/mobile/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ffb2ecea52 (13 days ago), 2021-09-17 15:26:33 -0400
    • Engine revision b3af521a05
    • Dart version 2.14.2

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/parkinpum/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/parkinpum/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 13.0, Build version 13A233
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.60.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.26.0

[✓] Connected device (2 available)
    • SM G955N (mobile) • ce0417145cfa18a70c • android-arm64  • Android 9 (API 28)
    • Chrome (web)      • chrome             • web-javascript • Google Chrome 94.0.4606.61

• No issues found!

build.gradle 은 다음과 같습니다.

       release {
           keyAlias keystoreProperties['keyAlias']
           keyPassword keystoreProperties['keyPassword']
           storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
           storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
           # 이 부분을 proguardFiles 'proguard-kakao.pro' 로도 해 보았으나 동일한 문제가 발생합니다.
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-kakao.pro'
        }
    }

해결책이 있을지 문의드립니다. 감사합니다.

in English: My flutter app with your package works well in iOS, Android debug and Android profile environment but not working in Android release mode and got one a line of error message.

Crash when login with release apk

In debug mode, it works but when i login with release mode and it crashes. This is log:
FATAL EXCEPTION: main
Process: com..., PID: 24644
ClientError(reason=TokenNotFound, msg=Client-side error)
at com.kakao.sdk.auth.k.c$a.a(Unknown Source:138)
at com.kakao.sdk.auth.k.c$a.b(Unknown Source:5)
at com.kakao.sdk.auth.b$d.a(Unknown Source:33)
at n.g$b$a$a.run(Unknown Source:37)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:226)
at android.app.ActivityThread.main(ActivityThread.java:7592)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

이메일 사용 설정을 안했을때 NullPointerException 발생

@JosephNK

이메일 사용 설정을 안했을때 다음과 같이 에러가 여전히 발생 합니다.

java final String userEmail = (resultKakao.getKakaoAccount().getEmail() == null) ? "" : resultKakao.getKakaoAccount().getEmail();

getKakaoAccount() 가 null 이라 에러가 발생합니다.

이해를 돕기 위해 로그켓 내용도 같이 첨부합니다.

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.kakao.usermgmt.response.model.UserAccount.getEmail()' on a null object reference
at com.josephnk.flutterkakaologin.FlutterKakaoLoginPlugin$SessionCallback$1.onSuccess(FlutterKakaoLoginPlugin.java:240)
at com.josephnk.flutterkakaologin.FlutterKakaoLoginPlugin$SessionCallback$1.onSuccess(FlutterKakaoLoginPlugin.java:220)
at com.kakao.network.callback.ResponseCallback.onSuccessForUiThread(ResponseCallback.java:76)
at com.kakao.network.tasks.KakaoResultTask$1$1.run(KakaoResultTask.java:78)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:209)
at android.app.ActivityThread.main(ActivityThread.java:7021)

E/AndroidRuntime(18898): at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:486)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:872)

Originally posted by @GwonHyeok in #7 (comment)

사용자 관리 - 개인 정보 보호 항목에 '카카오계정(이메일)'이 선택되지 않았을 경우 Exception이 발생합니다.

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.kakao.usermgmt.response.model.UserAccount.getEmail()' on a null object reference
E/AndroidRuntime(17048): at com.josephnk.flutterkakaologin.FlutterKakaoLoginPlugin$SessionCallback$1.onSuccess(FlutterKakaoLoginPlugin.java:240)
E/AndroidRuntime(17048): at com.josephnk.flutterkakaologin.FlutterKakaoLoginPlugin$SessionCallback$1.onSuccess(FlutterKakaoLoginPlugin.java:220)
E/AndroidRuntime(17048): at com.kakao.network.callback.ResponseCallback.onSuccessForUiThread(ResponseCallback.java:76)
E/AndroidRuntime(17048): at com.kakao.network.tasks.KakaoResultTask$1$1.run(KakaoResultTask.java:78)
E/AndroidRuntime(17048): at android.os.Handler.handleCallback(Handler.java:789)
E/AndroidRuntime(17048): at android.os.Handler.dispatchMessage(Handler.java:98)
E/AndroidRuntime(17048): at android.os.Looper.loop(Looper.java:164)
E/AndroidRuntime(17048): at android.app.ActivityThread.main(ActivityThread.java:6940)
E/AndroidRuntime(17048): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(17048): at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
E/AndroidRuntime(17048): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

unlink 버튼을 누르면 에러가 나네요.

예제 올라온데로 돌렸는데 로그인 및 다른 기능은 문제가 없는데 unlink만 에러가 뜨네요.

java.lang.IllegalStateException: Reply already submitted 이렇게 나오는데 무슨 문제일까요?

(android)실행시 오류가 발생합니다.

실행하면 아래와 같이 플러그인을 로드하지 못하는 것 처럼 보이는 오류를 내고 앱이 죽습니다.

Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'io.flutter.plugin.common.PluginRegistry$Registrar io.flutter.plugin.common.PluginRegistry$Registrar.addActivityResultListener(io.flutter.plugin.common.PluginRegistry$ActivityResultListener)' on a null object reference
at com.josephnk.flutterkakaologin.FlutterKakaoLoginPlugin.onAttachedToActivity(FlutterKakaoLoginPlugin.java:104)
at com.josephnk.flutterkakaologin.FlutterKakaoLoginPlugin.onAttachedToActivity(FlutterKakaoLoginPlugin.java:94)
at io.flutter.embedding.engine.FlutterEnginePluginRegistry.add(FlutterEnginePluginRegistry.java:143)
at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:19)
at com.benife.amfit.MainActivity.configureFlutterEngine(MainActivity.kt:12)

flutter clean, flutter pub get, 재부팅, flutter 재설치 등 시도해 보았습니다. ㅠㅠ

도움부탁드립니다.

[√] Flutter (Channel stable, v1.17.1, on Microsoft Windows [Version 10.0.18363.778], locale ko-KR)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[√] Android Studio (version 3.5)
[√] Connected device (1 available)

ios 로그인 창에서 키보드 올라 올때 에러가 발생합니다.

ios 에서 로그인 창에서 키보드가 올라올 때 에러가 발생합니다.
iphone 8 에서는 에러가 발생해도 로그인 버튼을 클릭하면 정상 작동하는데,
iPhone 11 pro max 에서는 같은 에러가 발생하고 로그인 버튼을 눌렀을 떄 먹통이 되버리네요.
왜그럴까요?

	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600001e2e580 h=--& v=--& _UIToolbarContentView:0x7fd5a37128e0.width == 0   (active)>",
    "<NSLayoutConstraint:0x600001e36bc0 H:|-(0)-[_UIButtonBarStackView:0x7fd5a375cd30]   (active, names: '|':_UIToolbarContentView:0x7fd5a37128e0 )>",
    "<NSLayoutConstraint:0x600001e36c10 _UIButtonBarStackView:0x7fd5a375cd30.trailing == _UIToolbarContentView:0x7fd5a37128e0.trailing   (active)>",
    "<NSLayoutConstraint:0x600001e27020 'IB_Leading_Leading' H:|-(0)-[_UIModernBarButton:0x7fd5a365b4d0]   (active, names: '|':_UIButtonBarButton:0x7fd5a365b0f0 )>",
    "<NSLayoutConstraint:0x600001e2c730 'IB_Leading_Leading' H:|-(>=5)-[_UIModernBarButton:0x7fd5a6041470]   (active, names: '|':_UIButtonBarButton:0x7fd5a60412a0 )>",
    "<NSLayoutConstraint:0x600001e27070 'IB_Trailing_Trailing' H:[_UIModernBarButton:0x7fd5a365b4d0]-(>=8)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a365b0f0 )>",
    "<NSLayoutConstraint:0x600001e2c780 'IB_Trailing_Trailing' H:[_UIModernBarButton:0x7fd5a6041470]-(>=5)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a60412a0 )>",
    "<NSLayoutConstraint:0x600001e2d4f0 'TB_Leading_Leading' H:|-(8)-[_UIModernBarButton:0x7fd5a6042c70'Done']   (active, names: '|':_UIButtonBarButton:0x7fd5a60428b0 )>",
    "<NSLayoutConstraint:0x600001e2d540 'TB_Trailing_Trailing' H:[_UIModernBarButton:0x7fd5a6042c70'Done']-(0)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a60428b0 )>",
    "<NSLayoutConstraint:0x600001e2d900 'UISV-canvas-connection' UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'.leading == _UIButtonBarButton:0x7fd5a365b0f0.leading   (active)>",
    "<NSLayoutConstraint:0x600001e2db80 'UISV-canvas-connection' UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'.trailing == _UIButtonBarButton:0x7fd5a60428b0.trailing   (active)>",
    "<NSLayoutConstraint:0x600001e2dbd0 'UISV-spacing' H:[_UIButtonBarButton:0x7fd5a365b0f0]-(0)-[UIView:0x7fd5a60410e0]   (active)>",
    "<NSLayoutConstraint:0x600001e2dc20 'UISV-spacing' H:[UIView:0x7fd5a60410e0]-(0)-[_UIButtonBarButton:0x7fd5a60412a0]   (active)>",
    "<NSLayoutConstraint:0x600001e2dc70 'UISV-spacing' H:[_UIButtonBarButton:0x7fd5a60412a0]-(0)-[UIView:0x7fd5a6042750]   (active)>",
    "<NSLayoutConstraint:0x600001e2dcc0 'UISV-spacing' H:[UIView:0x7fd5a6042750]-(0)-[_UIButtonBarButton:0x7fd5a60428b0]   (active)>",
    "<NSLayoutConstraint:0x600001e36a30 'UIView-leftMargin-guide-constraint' H:|-(0)-[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'](LTR)   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>",
    "<NSLayoutConstraint:0x600001e36ad0 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide']-(0)-|(LTR)   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600001e27070 'IB_Trailing_Trailing' H:[_UIModernBarButton:0x7fd5a365b4d0]-(>=8)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a365b0f0 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600001e2e580 h=--& v=--& _UIToolbarContentView:0x7fd5a37128e0.width == 0   (active)>",
    "<NSLayoutConstraint:0x600001e36bc0 H:|-(0)-[_UIButtonBarStackView:0x7fd5a375cd30]   (active, names: '|':_UIToolbarContentView:0x7fd5a37128e0 )>",
    "<NSLayoutConstraint:0x600001e36c10 _UIButtonBarStackView:0x7fd5a375cd30.trailing == _UIToolbarContentView:0x7fd5a37128e0.trailing   (active)>",
    "<NSLayoutConstraint:0x600001e2c730 'IB_Leading_Leading' H:|-(>=5)-[_UIModernBarButton:0x7fd5a6041470]   (active, names: '|':_UIButtonBarButton:0x7fd5a60412a0 )>",
    "<NSLayoutConstraint:0x600001e2c780 'IB_Trailing_Trailing' H:[_UIModernBarButton:0x7fd5a6041470]-(>=5)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a60412a0 )>",
    "<NSLayoutConstraint:0x600001e2d4f0 'TB_Leading_Leading' H:|-(8)-[_UIModernBarButton:0x7fd5a6042c70'Done']   (active, names: '|':_UIButtonBarButton:0x7fd5a60428b0 )>",
    "<NSLayoutConstraint:0x600001e2d540 'TB_Trailing_Trailing' H:[_UIModernBarButton:0x7fd5a6042c70'Done']-(0)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a60428b0 )>",
    "<NSLayoutConstraint:0x600001e2d900 'UISV-canvas-connection' UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'.leading == _UIButtonBarButton:0x7fd5a365b0f0.leading   (active)>",
    "<NSLayoutConstraint:0x600001e2db80 'UISV-canvas-connection' UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'.trailing == _UIButtonBarButton:0x7fd5a60428b0.trailing   (active)>",
    "<NSLayoutConstraint:0x600001e2dbd0 'UISV-spacing' H:[_UIButtonBarButton:0x7fd5a365b0f0]-(0)-[UIView:0x7fd5a60410e0]   (active)>",
    "<NSLayoutConstraint:0x600001e2dc20 'UISV-spacing' H:[UIView:0x7fd5a60410e0]-(0)-[_UIButtonBarButton:0x7fd5a60412a0]   (active)>",
    "<NSLayoutConstraint:0x600001e2dc70 'UISV-spacing' H:[_UIButtonBarButton:0x7fd5a60412a0]-(0)-[UIView:0x7fd5a6042750]   (active)>",
    "<NSLayoutConstraint:0x600001e2dcc0 'UISV-spacing' H:[UIView:0x7fd5a6042750]-(0)-[_UIButtonBarButton:0x7fd5a60428b0]   (active)>",
    "<NSLayoutConstraint:0x600001e36a30 'UIView-leftMargin-guide-constraint' H:|-(0)-[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'](LTR)   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>",
    "<NSLayoutConstraint:0x600001e36ad0 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide']-(0)-|(LTR)   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600001e2c780 'IB_Trailing_Trailing' H:[_UIModernBarButton:0x7fd5a6041470]-(>=5)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a60412a0 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600001e2e580 h=--& v=--& _UIToolbarContentView:0x7fd5a37128e0.width == 0   (active)>",
    "<NSLayoutConstraint:0x600001e36bc0 H:|-(0)-[_UIButtonBarStackView:0x7fd5a375cd30]   (active, names: '|':_UIToolbarContentView:0x7fd5a37128e0 )>",
    "<NSLayoutConstraint:0x600001e36c10 _UIButtonBarStackView:0x7fd5a375cd30.trailing == _UIToolbarContentView:0x7fd5a37128e0.trailing   (active)>",
    "<NSLayoutConstraint:0x600001e2d4f0 'TB_Leading_Leading' H:|-(8)-[_UIModernBarButton:0x7fd5a6042c70'Done']   (active, names: '|':_UIButtonBarButton:0x7fd5a60428b0 )>",
    "<NSLayoutConstraint:0x600001e2d540 'TB_Trailing_Trailing' H:[_UIModernBarButton:0x7fd5a6042c70'Done']-(0)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a60428b0 )>",
    "<NSLayoutConstraint:0x600001e2d900 'UISV-canvas-connection' UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'.leading == _UIButtonBarButton:0x7fd5a365b0f0.leading   (active)>",
    "<NSLayoutConstraint:0x600001e2db80 'UISV-canvas-connection' UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'.trailing == _UIButtonBarButton:0x7fd5a60428b0.trailing   (active)>",
    "<NSLayoutConstraint:0x600001e2dbd0 'UISV-spacing' H:[_UIButtonBarButton:0x7fd5a365b0f0]-(0)-[UIView:0x7fd5a60410e0]   (active)>",
    "<NSLayoutConstraint:0x600001e2dc20 'UISV-spacing' H:[UIView:0x7fd5a60410e0]-(0)-[_UIButtonBarButton:0x7fd5a60412a0]   (active)>",
    "<NSLayoutConstraint:0x600001e2dc70 'UISV-spacing' H:[_UIButtonBarButton:0x7fd5a60412a0]-(0)-[UIView:0x7fd5a6042750]   (active)>",
    "<NSLayoutConstraint:0x600001e2dcc0 'UISV-spacing' H:[UIView:0x7fd5a6042750]-(0)-[_UIButtonBarButton:0x7fd5a60428b0]   (active)>",
    "<NSLayoutConstraint:0x600001e36a30 'UIView-leftMargin-guide-constraint' H:|-(0)-[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'](LTR)   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>",
    "<NSLayoutConstraint:0x600001e36ad0 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide']-(0)-|(LTR)   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600001e2d540 'TB_Trailing_Trailing' H:[_UIModernBarButton:0x7fd5a6042c70'Done']-(0)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a60428b0 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600001e2e620 h=--& v=--& _UIToolbarContentView:0x7fd5a37128e0.height == 0   (active)>",
    "<NSLayoutConstraint:0x600001e36c60 V:|-(0)-[_UIButtonBarStackView:0x7fd5a375cd30]   (active, names: '|':_UIToolbarContentView:0x7fd5a37128e0 )>",
    "<NSLayoutConstraint:0x600001e36cb0 _UIButtonBarStackView:0x7fd5a375cd30.bottom == _UIToolbarContentView:0x7fd5a37128e0.bottom   (active)>",
    "<NSLayoutConstraint:0x600001e2f750 UIImageView:0x7fd5a6040f20.centerY == _UIModernBarButton:0x7fd5a365b4d0.centerY   (active)>",
    "<NSLayoutConstraint:0x600001e272f0 'IB_Baseline_Baseline' _UIModernBarButton:0x7fd5a365b4d0.lastBaseline == UILayoutGuide:0x6000004f8700'UIViewLayoutMarginsGuide'.bottom   (active)>",
    "<NSLayoutConstraint:0x600001e27340 'IB_Top_Top' V:|-(>=0)-[_UIModernBarButton:0x7fd5a365b4d0]   (active, names: '|':_UIButtonBarButton:0x7fd5a365b0f0 )>",
    "<NSLayoutConstraint:0x600001e2c550 'UIButtonBar.maximumAlignmentSize' _UIButtonBarButton:0x7fd5a365b0f0.height == UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'.height   (active)>",
    "<NSLayoutConstraint:0x600001e36a80 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide']-(0)-|   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>",
    "<NSLayoutConstraint:0x600001e27250 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide:0x6000004f8700'UIViewLayoutMarginsGuide']-(16)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a365b0f0 )>",
    "<NSLayoutConstraint:0x600001e369e0 'UIView-topMargin-guide-constraint' V:|-(0)-[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide']   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600001e2f750 UIImageView:0x7fd5a6040f20.centerY == _UIModernBarButton:0x7fd5a365b4d0.centerY   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600001e2e620 h=--& v=--& _UIToolbarContentView:0x7fd5a37128e0.height == 0   (active)>",
    "<NSLayoutConstraint:0x600001e36c60 V:|-(0)-[_UIButtonBarStackView:0x7fd5a375cd30]   (active, names: '|':_UIToolbarContentView:0x7fd5a37128e0 )>",
    "<NSLayoutConstraint:0x600001e36cb0 _UIButtonBarStackView:0x7fd5a375cd30.bottom == _UIToolbarContentView:0x7fd5a37128e0.bottom   (active)>",
    "<NSLayoutConstraint:0x600001e2fed0 UIImageView:0x7fd5a6042460.centerY == _UIModernBarButton:0x7fd5a6041470.centerY   (active)>",
    "<NSLayoutConstraint:0x600001e2ca00 'IB_Baseline_Baseline' _UIModernBarButton:0x7fd5a6041470.lastBaseline == UILayoutGuide:0x600000479ea0'UIViewLayoutMarginsGuide'.bottom   (active)>",
    "<NSLayoutConstraint:0x600001e2ca50 'IB_Top_Top' V:|-(>=0)-[_UIModernBarButton:0x7fd5a6041470]   (active, names: '|':_UIButtonBarButton:0x7fd5a60412a0 )>",
    "<NSLayoutConstraint:0x600001e2cff0 'UIButtonBar.maximumAlignmentSize' _UIButtonBarButton:0x7fd5a60412a0.height == UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'.height   (active)>",
    "<NSLayoutConstraint:0x600001e36a80 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide']-(0)-|   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>",
    "<NSLayoutConstraint:0x600001e2c960 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide:0x600000479ea0'UIViewLayoutMarginsGuide']-(16)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a60412a0 )>",
    "<NSLayoutConstraint:0x600001e369e0 'UIView-topMargin-guide-constraint' V:|-(0)-[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide']   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600001e2fed0 UIImageView:0x7fd5a6042460.centerY == _UIModernBarButton:0x7fd5a6041470.centerY   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600001e2e620 h=--& v=--& _UIToolbarContentView:0x7fd5a37128e0.height == 0   (active)>",
    "<NSLayoutConstraint:0x600001e36c60 V:|-(0)-[_UIButtonBarStackView:0x7fd5a375cd30]   (active, names: '|':_UIToolbarContentView:0x7fd5a37128e0 )>",
    "<NSLayoutConstraint:0x600001e36cb0 _UIButtonBarStackView:0x7fd5a375cd30.bottom == _UIToolbarContentView:0x7fd5a37128e0.bottom   (active)>",
    "<NSLayoutConstraint:0x600001e21130 UIButtonLabel:0x7fd5a60448e0'Done'.centerY == _UIModernBarButton:0x7fd5a6042c70'Done'.centerY + 0.5   (active)>",
    "<NSLayoutConstraint:0x600001e2d6d0 'TB_Baseline_Baseline' _UIModernBarButton:0x7fd5a6042c70'Done'.lastBaseline == UILayoutGuide:0x60000047a140'UIViewLayoutMarginsGuide'.bottom   (active)>",
    "<NSLayoutConstraint:0x600001e2d720 'TB_Top_Top' V:|-(>=0)-[_UIModernBarButton:0x7fd5a6042c70'Done']   (active, names: '|':_UIButtonBarButton:0x7fd5a60428b0 )>",
    "<NSLayoutConstraint:0x600001e2d860 'UIButtonBar.maximumAlignmentSize' _UIButtonBarButton:0x7fd5a60428b0.height == UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide'.height   (active)>",
    "<NSLayoutConstraint:0x600001e36a80 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide']-(0)-|   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>",
    "<NSLayoutConstraint:0x600001e2d630 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide:0x60000047a140'UIViewLayoutMarginsGuide']-(16)-|   (active, names: '|':_UIButtonBarButton:0x7fd5a60428b0 )>",
    "<NSLayoutConstraint:0x600001e369e0 'UIView-topMargin-guide-constraint' V:|-(0)-[UILayoutGuide:0x600000472220'UIViewLayoutMarginsGuide']   (active, names: '|':_UIButtonBarStackView:0x7fd5a375cd30 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600001e21130 UIButtonLabel:0x7fd5a60448e0'Done'.centerY == _UIModernBarButton:0x7fd5a6042c70'Done'.centerY + 0.5   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.

onActivityResult 에러

다른 플러그인이 PluginRegistry.ActivityResultListener 를 사용할때 Exception 발생합니다.

@Override
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
  Log.v(LOG_TAG, "onActivityResult requestCode: " + requestCode + " resultCode: " + resultCode + " data: " + data);
  if (Session.getCurrentSession().handleActivityResult(requestCode, resultCode, data)){
    return false;
  }
  return false;
}

이렇게 작성해 놓으신 부분이 있는데 아래와 같이 변경되어야 할 것 같습니다.

@Override
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
  Log.v(LOG_TAG, "onActivityResult requestCode: " + requestCode + " resultCode: " + resultCode + " data: " + data);
  if (Session.getCurrentSession().handleActivityResult(requestCode, resultCode, data)){
    return true; // 이부분 변경
  }
  return false;
}

문서를 봐보시면 아시겠지만 onActivityResult가 handle이 되었을때 true 를 반환해야합니다.

boolean onActivityResult(int requestCode,
                         int resultCode,
                         Intent data)
Returns:
true if the result has been handled.

참조 문서 링크

감사합니다.

build failed with use google maps plugin

hi
Thank you for your effort.
I recently tried to build it for use with the google map plugin but it failed.
Help me.

=environment=======================================================
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v1.10.14, on Mac OS X 10.14.4 18E226, locale ko-KR)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 10.2.1)
[✓] Android Studio (version 3.4)
[✓] VS Code (version 1.39.2)
[✓] Connected device (1 available)

[pubspec.yaml]
dev_dependencies:
flutter_test:
sdk: flutter
google_maps_flutter: ^0.5.21+8
flutter_kakao_login: ^0.5.0

=error=============================================================
You are building a fat APK that includes binaries for android-arm, android-arm64.
If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to reduce the APK size.
To generate an app bundle, run:
flutter build appbundle --target-platform android-arm,android-arm64
Learn more on: https://developer.android.com/guide/app-bundle
To split the APKs per ABI, run:
flutter build apk --target-platform android-arm,android-arm64 --split-per-abi
Learn more on: https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split
Initializing gradle... 1.1s
Resolving dependencies... 2.3s
Note: /Users/dongjinkim/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_kakao_login-0.5.0/android/src/main/java/com/josephnk/flutterkakaologin/FlutterKakaoLoginPlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
R8: Type com.google.android.gms.common.internal.zzf is referenced as an interface from com.google.android.gms.internal.zzcms.

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformClassesAndResourcesWithR8ForRelease'.

com.android.tools.r8.CompilationFailedException: Compilation failed to complete

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 55s
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done 56.5s
[!] The shrinker may have failed to optimize the Java bytecode.
To disable the shrinker, pass the --no-shrink flag to this command.
To learn more, see: https://developer.android.com/studio/build/shrink-code
Gradle task assembleRelease failed with exit code 1

Null-safety support

Thanks for your awesome package.
Is there any plan in migrating to null-safety for Flutter 2.0.0?

Here's a kind guide about migrating. (dart.dev)

KakaoAccountResult.account 의 값이 null입니다..

KakaoLoginResult result = await kakaoSignIn.logIn();
final KakaoAccountResult account = result.account;

를 하였을 때, account.userID를 제외한 모든 값들이 null입니다..

혹시 추가적으로 설정해야 할 부분이 있을까요??
#15

Session is not initialized.

가이드대로 모든 절차를 다 했는데도
logIn() 함수 호출 시 아래와 같은 에러가 발생합니다.

2020-01-14 15:07:11.964 814-938/com.hyperitycorp.app.inside E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, Session is not initialized. Call KakaoSDK#init first., null)

테스트 단말은 안드로이드구요

빠진 설정이 있을까요?

실제 배포된 버전에서 카카오톡앱 인증후 반응이 없습니다.

Google Play 에 배포하기 전 로컬 버전에서는 카카오톡앱을 통한 인증 후에 잘 진행이 됩니다.
하지만 배포한 후에 해당 버전을 Play Store 를 통해 설치하면 카카오톡 앱을 통해 인증한 후에 반환을 받지 못하는 것인지 진행이 안됩니다.
카카오톡 앱이 없는 경우 인증을 위한 카카오톡 로그인 페이지로 넘어가는데 이런 경우에는 인증이 진행됩니다.
이 부분 혹시 챙겨서 업데이트하실 수 있을까요?

관련 버전 정보도 추가합니다.

Flutter version 1.22.2
Platform android-30, build-tools 29.0.2
Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
VS Code (version 1.50.1)

I've problem

Dear JosephNK.
I have some problem.

It's my development environment.
flutter : 0.9.4
ide : Android studio

Also this is build console message.

Launching lib/main.dart on k7p in debug mode...
Automatically signing iOS for device deployment using specified development team in Xcode project:
Running pod install...
CocoaPods' output:

Preparing

Analyzing dependencies

Inspecting targets to integrate
  Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

Finding Podfile changes
  A flutter_kakao_login
  - Flutter
  - flutter_facebook_login
  - shared_preferences
  - video_player

Fetching external sources
-> Fetching podspec for `Flutter` from `.symlinks/flutter/ios`
-> Fetching podspec for `flutter_facebook_login` from `.symlinks/plugins/flutter_facebook_login/ios`
-> Fetching podspec for `flutter_kakao_login` from `.symlinks/plugins/flutter_kakao_login/ios`
-> Fetching podspec for `shared_preferences` from `.symlinks/plugins/shared_preferences/ios`
-> Fetching podspec for `video_player` from `.symlinks/plugins/video_player/ios`

Resolving dependencies of `Podfile`

Comparing resolved specification to the sandbox manifest
  A KakaoOpenSDK
  A flutter_kakao_login
  - Bolts
  - FBSDKCoreKit
  - FBSDKLoginKit
  - Flutter
  - flutter_facebook_login
  - shared_preferences
  - video_player

Downloading dependencies

-> Using Bolts (1.9.0)

-> Using FBSDKCoreKit (4.36.0)

-> Using FBSDKLoginKit (4.36.0)

-> Using Flutter (1.0.0)

-> Installing KakaoOpenSDK (1.8.2)
  > Copying KakaoOpenSDK from `/Users/mbp2018/Library/Caches/CocoaPods/Pods/Release/KakaoOpenSDK/1.8.2-c09b1` to `Pods/KakaoOpenSDK`

-> Using flutter_facebook_login (0.0.1)

-> Installing flutter_kakao_login (0.0.1)

-> Using shared_preferences (0.0.1)

-> Using video_player (0.0.1)
  - Running pre install hooks
[!] The 'Pods-Runner' target has transitive dependencies that include static frameworks: (KakaoOpenSDK)

/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:87:in `block (2 levels) in verify_no_static_framework_transitive_dependencies'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:73:in `each'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:73:in `block in verify_no_static_framework_transitive_dependencies'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:70:in `each'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:70:in `verify_no_static_framework_transitive_dependencies'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:36:in `validate!'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/lib/cocoapods/installer.rb:415:in `validate_targets'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/lib/cocoapods/installer.rb:118:in `install!'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/lib/cocoapods/command/install.rb:41:in `run'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:52:in `run'
/usr/local/Cellar/cocoapods/1.5.3/libexec/gems/cocoapods-1.5.3/bin/pod:55:in `<top (required)>'
/usr/local/Cellar/cocoapods/1.5.3/libexec/bin/pod:22:in `load'
/usr/local/Cellar/cocoapods/1.5.3/libexec/bin/pod:22:in `<main>'

Error output from CocoaPods:

[!] 'KakaoOpenSDK' uses the unencrypted http protocol to transfer the Pod. Please be sure you're in a safe network with only trusted hosts in there. Please reach out to the library author to notify them of this security issue.

Finished with error: Error running pod install

please help me. ;(

"Access token does not exist" issue

After retrieving access token via final KakaoAccessToken accessToken = await (kakaoSignIn.currentAccessToken); ... I check it at https://kapi.kakao.com/v2/user/me and the response is "this access token does not exist"

What can be the reason?

화면 겹침 현상

이게 제 문제인지 모르겠는데, 카카오 연동만 시키면 로그인 하는 순간 화면이 한번 더 나타나는데 원래 그런건가요?

How setting in iOS ?

Do i need to add the KakaoSDK Library to Frameworks?

It's always show this warring:

2020-02-15 15:10:49.795316+0900 Runner[46400:444180] -canOpenURL: failed for URL: "kakaob1e2350ebdbc0ea2b9a5dfcf577b1333://oauth" - error: "This app is not allowed to query for scheme kakaob1e2350ebdbc0ea2b9a5dfcf577b1333"
2020-02-15 15:10:49.795440+0900 Runner[46400:444180] URL scheme for KakaoOpenSDK is not set properly in plist.

Not getting continue with Kakao account

Screenshot_20210401-121510

@JosephNK when click on continue button I am not getting any response from Kakao and I am stuck on this page, I tried different accounts but same problem

NOTE:-- If KakaoTalk app installed in my device this page wont show up and I directly login with my KakaoTalk app it's only works on android version 10 or lower wont works on android version 11

@JosephNK please let me know how to fix this problem, have a nice day.

flutter_kakao_login conflict with multi_image_picker

i got issue with https://pub.dev/packages/multi_image_picker and flutter_kakao_login.
the function onActivityResult in multi_image_picker override so that function in flutter_kakao_login not working and that make crash app in android.
error in line => https://github.com/Sh1d0w/multi_image_picker/blob/master/android/src/main/java/com/vitanov/multiimagepicker/MultiImagePickerPlugin.java#L575
because photos value is null.
i have change that and it working for me

`public class FlutterKakaoLoginPlugin implements FlutterPlugin, ActivityAware {

private static final String CHANNEL_NAME = "flutter_kakao_login";

private static final String LOG_TAG = "KakaoTalkPlugin";

private static Registrar registrar;

private Activity activity;
private MethodChannel channel;
private FlutterKakaoLoginHandler handler;

/**

  • Plugin registration. for legacy Embedding API
    */
    public static void registerWith(Registrar registrar) {
    Activity activity = registrar.activity();
    if (activity == null) {
    return;
    }
    FlutterKakaoLoginPlugin.registrar = registrar;
final FlutterKakaoLoginPlugin instance = new FlutterKakaoLoginPlugin();
instance.onAttachedToEngine(registrar.messenger());
instance.onAttachedToActivity(activity);

}

@OverRide
public void onAttachedToEngine(FlutterPluginBinding flutterPluginBinding) {
onAttachedToEngine(flutterPluginBinding.getBinaryMessenger());
}

private void onAttachedToEngine(BinaryMessenger messenger) {
channel = new MethodChannel(messenger, CHANNEL_NAME);

}

@OverRide
public void onDetachedFromEngine(FlutterPluginBinding binding) {
channel.setMethodCallHandler(null);
channel = null;
handler = null;
}

@OverRide
public void onAttachedToActivity(ActivityPluginBinding activityPluginBinding) {
onAttachedToActivity(activityPluginBinding.getActivity());
if(handler != null) {
activityPluginBinding.addActivityResultListener(handler);
}
}

private void onAttachedToActivity(Activity _activity) {
activity = _activity;
if (activity != null && channel != null) {
handler = new FlutterKakaoLoginHandler(activity, channel);
FlutterKakaoLoginPlugin.registrar.addActivityResultListener(handler);
channel.setMethodCallHandler(handler);
}
}

@OverRide
public void onDetachedFromActivityForConfigChanges() {
onDetachedFromActivity();
}

@OverRide
public void onReattachedToActivityForConfigChanges(ActivityPluginBinding activityPluginBinding) {
onAttachedToActivity(activityPluginBinding.getActivity());
// after a configuration change.
}

@OverRide
public void onDetachedFromActivity() {
channel.setMethodCallHandler(null);
activity = null;
handler = null;
}

}`

안녕하세요. 구글 브라우저에서 사이트 첫 접속 시 메인슬라이드 배너가 나타나지 않는 오류가 발생하고 있습니다.

https://songsuelah.github.io/Diones/ <문제의 사이트 주소입니다.

마이크로소프트 웨일에서는 정상적으로 출력되는 메인슬라이드배너가 구글에서는 첫접속 후 한번의 새로고침을 거쳐야 제대로 출력되고 있는 현상이 발생하고 있습니다. 쿠키 삭제 후 재접속 시에도 똑같은 현상이 발생하고 있습니다.

오류메세지를 다 처리하고 남은 에러메세지는 아래와 같습니다.
< Error with Permissions-Policy header: Origin trial controlled feature not enabled: 'interest-cohort'. >
구글브라우저로 첫 접속 시에는 해당 오류메세지가 없지만, 새로고침 후에는 해당 메세지가 출력됩니다.

그 외에는 기본적으로 아래의 메세지가 있는데, 연관이 있는 건지 잘 몰라서 같이 올립니다.
jquery-migrate-1.1.1.js:21 JQMIGRATE: Logging is active

첫 사이트 제작이다보니 아직 모르는 점이 많아 고민하는 와중에 다른 브라우저에서는 해당 문제가 정상 출력되는 것을 확인하고 도움을 구하고자 글을 올립니다.
같은 JQ를 쓰는 슬라이드는 동일현상이 발생하고 있지 않습니다. 배너 이미지의 크기는 2mb를 넘지 않습니다. 확장자도 제대로 웹브라우저에 맞춰 저장하였습니다.

Android kakao sdk version issue due to SSL certificate substitution

좋은 라이브러리 만들어 주셔서 감사합니다. 카카오 인증서 이슈에 대해 말씀드릴 내용이 있습니다.

신뢰의 고리 문제로 인해, 애플이 카카오가 사용하고 있는 시만텍 발 인증서를 루트 저장소에서 삭제할 예정입니다. 이에 따라 카카오는 자사 도메인 일부의 SSL 인증서를 변경하기로 결정했습니다. 영향을 받는 도메인은 다음과 같습니다:

  • kauth.kaka.com
  • kapi.kakao.com
  • dapi.kakao.com

카카오는 2021/10/1에 인증서를 교체할 예정입니다. 이후 지원되는 카카오 SDK 버전은 다음과 같습니다:

  • iOS SDK 2.x
  • Android SDK 2.7.0+

문제가 되는 부분이 있는지 확인 부탁드립니다. 감사합니다!

본 이슈에 대한 최대한 많은 유저의 접근성을 위해, 영어로 다시 질문을 첨부하겠습니다.

Thank you for creating a great library! I want to discuss Kakao's recent certificate issue.

Due to a chain of trust problem, Apple will delete Symantec certificate Kakao corp is currently using, so Kakao corp will substitute their domains' SSL certificate. Following domains will be effected:

kauth.kakao.com
kapi.kakao.com
dapi.kakao.com
They will change the certificate on 10/1/2021. And here's the supported Kakao SDK version after then:

iOS SDK 2.x
Android SDK 2.7.0+
Please check if there would be an issue. Thank you!

accessToken 관련 안내문

좋은 package 제작 감사합니다
잘 작동하네요

로그인 후 토큰을 서버로 보내 인증이 필요한데
토큰을 가져올수있도록 구현을 해 두시고
관련 안내가 없네요

var accessToken = (await kakaoSignIn.currentAccessToken).token;

이렇게 진행하면 맞나요

KakaoAccountResult returning null except for userId

First of all thank you @JosephNK for creating this, I find it much better than the other package out there since it's much easier to use 👍

My issue is that final KakaoLoginResult result = await kakaoSignIn.getUserMe(); returns null except for userId.

When I debugged kakaoSignIn.getUserMe() method, the result seems to be there.

login_page.dart

final KakaoLoginResult result = await kakaoSignIn.getUserMe();
print('userName: ${result.account.userNickname}');

flutter: userNickname: null
flutter_kakao_login.dart

// Get UserMe Method
Future<KakaoLoginResult> getUserMe() async {
    final Map<dynamic, dynamic> result =
        await _channel.invokeMethod('getUserMe');

        print('debug: ${result.toString()}');

        return _delayedToResult(
            new KakaoLoginResult._(result.cast<String, dynamic>()));
 }

flutter: debug: {status: loggedIn, userID: xxxxxxxxxx, userNickname: xxxxxxxx}

Not sure why it won't return the value.

xcode update 후 에러가 뜨네요

[!] 'KakaoOpenSDK' uses the unencrypted 'http' protocol to transfer the Pod. Please be sure you're in a safe network with only trusted hosts.
Otherwise, please reach out to the library author to notify them of this security issue.

Login Form UI 형태/색/한글

로그인 화면 한글로 변경하려면 어떻게 하나요?
화면 UI가 기본적으로 아래 UI인(첫번째 이미지) 것인가요?
아래 두번째 화면 처럼 나오게 하려면 어떻게 하나요?
제목도 logIn이 아닌 두번째 처럼 카카오 로그인 으로 변경하려면 어떻게 하나요?

스크린샷 2020-01-12 오전 12 35 38

스크린샷 2020-01-12 오전 12 49 29

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.