iOS 구글 로그인 시도할 경우 il2CPP 오류

문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족한 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.5.2
  • 프로젝트명 : 30일

뒤끝에서 제공하는 SDK를 다운로드 후, 구글 로그인을 시도할 경우 Xcode에서 아래 이미지와 같은 오류가 발생하면서 앱이 멈춰버립니다. 종료 후 실행해도, 다시 설치하지 않는 이상 앱을 구동할 수 없습니다. 구글링을 통해서도 명확한 해답을 얻지 못하여 문의 드립니다.

libc++abi.dylib: terminating with uncaught exception of type Il2CppExceptionWrapper
terminating with uncaught exception of type Il2CppExceptionWrapper

감사합니다.

안녕하세요 개발자님.

뒤끝에서 제공하는 SDK는 뒤끝 구글 로그인 SDK를 말씀하시는 것일까요?

맞으시다면 SDK 임포트 후 빌드를 한 후에 XCode에 대한 설정이 올바른지 확인해주시면 감사하겠습니다.

  • pod으로 GoogleSignIn 설치
  • URL Schema 입력

넵넵 맞습니다!
pod file에 pod ‘GoogleSignIn’, ‘~> 5.0’ 한 줄을 추가하여 pod install을 하였고,
말씀해 주신 URL Schema도 올바르게 입력하였습니다.

구글 로그인이 완료되고 콘솔에까지 등록된 것을 확인하였는데,
콜백함수와 로그인 함수 내의 코드 순서가 잘못되어서 둘을 수정하였더니
이러한 오류가 발생합니다 :cry:

혹시 뒤끝 구글로그인 SDK로 작성하신 스크립트와 로직 보여주실 수 있으실까요?

private void Start()
    {
        if (AppleAuthManager.IsCurrentPlatformSupported)
        {
            // Creates a default JSON deserializer, to transform JSON Native responses to C# instances
            var deserializer = new PayloadDeserializer();
            // Creates an Apple Authentication manager with the deserializer
            _appleAuthManager = new AppleAuthManager(deserializer);


            BackendFederation.iOS.OnGoogleLogin += (bool isSuccess, string errorMessage, string token) =>
            {
                if (isSuccess == false)
                {
                    UpdateAlarmPopup.Instance.ActiveToastPopup(errorMessage);
                    TitleSaveNLoad.Instance.LoginFailed();
                }
                else
                {
                    LoginSucceed();
                    TitleSaveNLoad.Instance.SetUIDText(UserDataManager.Instance.uId = GetUserIDFromBackEnd());
                }

                var googleLoginBro = Backend.BMember.AuthorizeFederation(token, FederationType.Google);
            };
        }
    }
public void SignInBackEndWithGoogleLogin()
    {
        string message;
        Debug.Log("구글 로그인 시작");
        var result = BackendFederation.iOS.GoogleLogin("89153415433-7acbrqmvtnv2nis0gvrmratd2707k0o3.apps.googleusercontent.com", out message);

        if (result == false)
        {
            UpdateAlarmPopup.Instance.ActiveToastPopup(message);
            TitleSaveNLoad.Instance.LoginFailed();
        }
    }

[구글 로그인 버튼]을 클릭 시 아래 함수가 호출됩니다…!

코드에는 이상한 점이 없는 것으로 확인이 되는데요.

이 전에 구글 로그인 완료 및 콘솔에 구글 유저 등록했을 때의 코드는 어떠했는지 알려주실 수 있으실까요?

그때는 콜백함수에 있는 이 부분을 아래 SignInBackEndWithGoogleLogin() 함수의 조건문에 넣어서 로그인이 완료되기 전에 호출되어버렸습니다…!

네 그럼 이전 로그인 로직에는 정상적으로 작동하지 않았을 것입니다.

해당 에러 로그 전체 공유 부탁드리겠으며, 유니티 빌드 혹은 pod install에서 에러 사항이 발생했을 수 있으므로 가능하다면 재 빌드 후 한번 더 시도해주시면 감사하겠습니다.

좋아요 1
-> applicationWillResignActive()
2021-11-25 13:27:43.231906+0900 ThirtyDays[444:21334] [core] Authorization failed: Error Domain=AKAuthenticationError Code=-7003 "(null)" UserInfo={AKClientBundleID=com.TheBricks.ThirtyDays}
-> applicationDidBecomeActive()
구글 로그인 시작
LoginManager:SignInBackEndWithGoogleLogin()
UnityEngine.Events.UnityAction:Invoke()
UnityEngine.Events.UnityEvent:Invoke()
UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean)
UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchEvents()
UnityEngine.EventSystems.StandaloneInputModule:Process()
 
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2021-11-25 13:27:44.704362+0900 ThirtyDays[444:20990] BackendGoogleAuth was created
-> applicationWillResignActive()
2021-11-25 13:27:45.403794+0900 ThirtyDays[444:21470] [tcp] tcp_output [C24.1:3] flags=[R.] seq=491876074, ack=1192168695, win=4094 state=CLOSED rcv_nxt=1192168695, snd_una=491875980
-> applicationDidBecomeActive()
2021-11-25 13:27:46.457534+0900 ThirtyDays[444:21191] 8.9.1 - <AppMeasurement>[I-ACS036000] Found unknown associated object: APMScreen
libc++abi.dylib: terminating with uncaught exception of type Il2CppExceptionWrapper
terminating with uncaught exception of type Il2CppExceptionWrapper
(lldb) 

Xcode 로그입니다.
유니티부터 빌드를 다시 해도 여전히 똑같은 오류가 발생하고 있습니다 ㅠㅠ

으아악 해결하였습니다!!
Xcode로 디버깅을 해보니 유저 아이디를 받아오기 위해 데이터에 접근할 때 오류가 생기는 것을 확인하였습니다.

뜯어봤더니 코드 순서가… 로그인이 완료되기 전에 먼저 유저 데이터에 접근하려고 해서 오류가 발생한 것이었습니다 :sob::weary::disappointed:

별 것도 아닌 일로 며칠동안 계속 고생하고 뒤끝 팀도 고생시켰네요 흑흑
친절한 답변 감사합니다~!!!

좋아요 3