유니티 6 애플로그인

  • 뒤끝 SDK 버전 : 5.11.7

안녕하세요.
주말에 유니티 6 으로 마이그레이션을 진행했습니다.

마이그레이션 이후 애플로그인이 작동하지 않아 문의 드립니다.
마이그레이션 전후로 로그인 코드를 수정한 일은 없으며 마이그레이션 이전 버전으로 앱 설치후 접속하면 잘 작동됩니다.

증상은 애플로그인 버튼을 누르면 아무런 액션 없이 로그만 띄웁니다.

아래는 애플 로그에서 찍힌 에러 로그들 입니다.

  1. Authorization failed: Error Domain=AKAuthenticationError Code=-7026 UserInfo={AKClientBundleID=<private>}

  2. LaunchServices: store <private> or url <private> was nil: Error Domain=NSOSStatusErrorDomain Code=-54 "process may not map database" UserInfo={NSDebugDescription=process may not map database, _LSLine=68, _LSFunction=_LSServer_GetServerStoreForConnectionWithCompletionHandler}

  3. Attempt to map database failed: permission was denied. This attempt will not be retried.

  4. Failed to initialize client context with error Error Domain=NSOSStatusErrorDomain Code=-54 "process may not map database" UserInfo={NSDebugDescription=process may not map database, _LSLine=68, _LSFunction=_LSServer_GetServerStoreForConnectionWithCompletionHandler}

  5. Failed to get application extension record: Error Domain=NSOSStatusErrorDomain Code=-54 "(null)"

  6. ASAuthorizationController credential request failed with error: Error Domain=com.apple.AuthenticationServices.AuthorizationError Code=1000 "(null)"

빌드 과정상에 이전과 다른점은 전혀 없었어서 저희가 세팅하는 과정에서 실수한 것인지 버전 때문이지 확실치 않아 문의드립니다!

안녕하세요 개발자님,
문의해주신 내용은 확인 후 안내드릴 수 있도록 하겠습니다.
다소 시일이 소요될 수 있는 점 양해 부탁드립니다.

좋아요 1

애플로그인은 안드로이드에서 웹뷰 형식으로만 제공하는데 전달해주신 코드에서는 ios관련 로그가 확인됩니다.
내부 테스트 시 유니티6에서 빌드한 안드로이드에서도 애플로그인은 정상적으로 작동 되는 것을 확인했습니다.

개발자님께서 적용하신 애플 로그인과 관련하여 보다 정확한 정보가 필요하여 아래 정보를 요청드립니다.

  • 시도한 플랫폼 (안드로이드 or ios)
  • 로그인 타입(구글 로그인 or facebook or 커스텀로그인 or 애플로그인 etc)
  • 로그인을 시도하는 로직

시도 플랫폼 : iOS
로그인 타입 : 애플 로그인

관련 로직

IAppleAuthManager m_AppleAuthManager;
private string Token { get; set; }

private void Initialize()
    {
#if UNITY_IOS
        PayloadDeserializer deserializer = new PayloadDeserializer();
        m_AppleAuthManager = new AppleAuthManager(deserializer);
#endif
    }

    public void Update()
    {
#if UNITY_IOS
        m_AppleAuthManager?.Update();
#endif
    }

public void StartAppleLogin()
    {
#if UNITY_IOS
        // Initialize the Apple Auth Manager
        if (m_AppleAuthManager == null)
        {
            Initialize();
        }

        // Set the login arguments
        AppleAuthLoginArgs loginArgs = new AppleAuthLoginArgs(LoginOptions.IncludeEmail | LoginOptions.IncludeFullName);

        // Perform the login
        m_AppleAuthManager?.LoginWithAppleId(
            loginArgs,
            credential =>
            {
                if (credential is IAppleIDCredential appleIDCredential)
                {
                    string idToken = Encoding.UTF8.GetString(
                        appleIDCredential.IdentityToken,
                        0,
                        appleIDCredential.IdentityToken.Length
                    );
                    Token = idToken;
                    Backend.BMember.AuthorizeFederation(
                        Token, FederationType.Apple,
                        (BackendReturnObject loginBro) =>
                        {
                            bool isSignUp = loginBro.GetStatusCode() == "201";
                            OnLoginResponse?.Invoke(loginBro, FederationType.Apple, isSignUp);
                        }
                    );
                }
                else
                {
                    Debug.Log("[UNITY] Sign-in with Apple error. Message: appleIDCredential is null");
                    Error = "Retrieving Apple Id Token failed.";
                }
            },
            error =>
            {
                Debug.Log("[UNITY] Sign-in with Apple error. Message: " + error);
                Error = "Retrieving Apple Id Token failed.";
            }
        );
#endif
    }

입니다!

현재 애플로그인은 iOS에서만 제공하고 있으며 두 플랫폼 모두 구글 로그인은 잘 작동하는 상태입니다!

@Ransiee
해결 됐습니다! 마이그레이션 과정에서 Xcode 애플 로그인 설정이 빠져있었습니다!

좋아요 1