출시 임박한 상황에서 gpgs 관련 문제가 있습니다

  • 프로젝트명 : IOSinect2
  • 뒤끝SDK 버전 : 4.0.3
  • 에러 코드 : Returning an error code.

안녕하세요 프로그래밍 지식이 얕아서 구글링을 통해 얻은 지식으로 개발한 개발자입니다.
유니티에서 apk를 빌드하고 폰에 바로 실행하면 높은 확률로 Play 게임에 접속중… 의 무한로딩에 걸립니다. 가끔가다 구글 로그인에 성공할 때가 있지만, 어떨땐 별에 별 방법을 동원해도 결국 실패할때도 있습니다.
하지만 더 혼란스럽게, 스토어에 올린걸 실행해서 할땐 대부분 정상적으로 로그인이 성공합니다. 그러다 이제 [빌드apk 폰에 즉시실행 / 스토어 설치 실행] 의 작업을 반복하다보면 다시 Play 게임에 접속중 무한로딩에 걸립니다.

위의 방법을 해결해보려고 [Play 게임 계정 삭제], Oauth동의화면 체크, 인증서 여부 확인, 불법 복제 방지 사용 등등은 체크했지만 여전히 저렇게 무한로딩의 늪에 걸렸습니다.

(로그캣을 통해 얻은 정보 2개 첨부합니다.)
[1]먼저 발동한 로그(빨간 느낌표 경고 아이콘)
ArgumentNullException: Value cannot be null.
Parameter name: str

System.Text.RegularExpressions.Regex.Unescape (System.String str) (at <00000000000000000000000000000000>:0)
BackEnd.Param.Add (System.String key, System.String keyValue) (at <00000000000000000000000000000000>:0)
BackEnd.Game.Back_Member.„ (System.String „, BackEnd.FederationType , System.String †) (at <00000000000000000000000000000000>:0)
BackEnd.Game.Back_Member.AuthorizeFederation (System.String accessToken, BackEnd.FederationType type, System.String etc) (at <00000000000000000000000000000000>:0)
BackEndFederationAuth.OnClickGPGSLogin () (at <00000000000000000000000000000000>:0)
UnityEngine.Events.UnityAction.Invoke () (at <00000000000000000000000000000000>:0)
UnityEngine.Events.UnityEvent.Invoke () (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.ExecuteEvents+EventFunction1[T1].Invoke (T1 handler, UnityEngine.EventSystems.BaseEventData eventData) (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction1[T1] functor) (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchPress (UnityEngine.EventSystems.PointerEventData pointerEvent, System.Boolean pressed, System.Boolean released) (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchEvents () (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule.Process () (at <00000000000000000000000000000000>:0)
UnityEngine.EventSystems.StandaloneInputModule:Process()
(복호화 off했는데 뭔가 0이 많이나오네요 ;ㅅ;)

==========================

[2]위 경고 이후 출력된 로그(하얀 느낌표 아이콘)
Returning an error code.

GooglePlayGames.Android.<>c__DisplayClass18_0:b__0(Int32)
UnityEngine._AndroidJNIHelper:InvokeJavaProxyMethod(AndroidJavaProxy, IntPtr, IntPtr)

가장 유력한 후보가 뒤끝5.0.0버전 이상 설치하기 일거같긴 한데, 혹시 그 외 다른 가능성도 있을까요? 뒤끝 최신버전 설치는 지금 하기엔 시간이 늦어서… 자고 일어난뒤 하게될것같습니다!

2021.02.14추가, 뒤끝 sdk를 최신버전인 5.2.0 설치 이후에도 같은 현상입니다.
유니티에서 에러 찍어보니

BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, “gpgs로 만든계정”);

이부분에서 경고가 떴습니다. 방식은 구글토큰으로 뒤끝서버 로그인하기 - 동기 방식 입니다.

2021.02.15추가, 스토어에서 받은걸 실행했을 경우엔 잘 되는것 같은데, 빌드한 apk를 직접 폰에 설치 후 시도하면 알 수 없는 이유로 에러가 발생하는것 같습니다. 궁금해서 말씀드리는 질문인데, 이 여부가 차이가 있을까요? 스토어에서 정식으로 받을 때와, 빌드한 apk를 직접 설치-실행했을 때 차이가 있나요? 후자의 경우 gpgs무한로딩 현상이 간헐적으로 발생합니다.

안녕하세요. 개발자님

GPGS 무한 로딩 현상의 경우, 테스트 아아디가 올바르게 등록되어있지 않거나 Play 게임 서비스 세팅중 일부가 잘못되어 발생하는 것으로 추정됩니다.(특히 테스트 아이디 부분)

해당 개발자문서의 테스터 등록 부분과 기타 설정 부분을 한번만 더 체크해주시면 감사하겠습니다.

value can not be null의 경우, 2월 8일 월요일에 로그인 관련 서버 오류가 발생하였기에 해당 이슈로 발생한 에러일 수도 있습니다.
혹시 현재도 발생하신다면 확인을 위해 GetTokens() 내부 코드 공유해주시면 감사하겠습니다.

저도 새로운 프로젝트를 진행하며 같은 문제가 발생하고있습니다.

gpgs의 저장된게임을 사용하며 OAuth 인증화면에서 무한로딩 발생하는 증상이 있습니다.
이부분은 테스트 계정을 등록해도 발생하며 OAuth 인증의 테스트 상태를 출시상태로 변경할경우 무한로딩은 해결됩니다.
하지만 그렇게해서 인증무한로딩이 끝나도 뒤끝 AuthorizeFederation 에서 에러가발생합니다.
에러는 아래와같습니다.
ArgumentNullException: Value cannot be null.
Parameter name: str

해결방법을 주시면 감사하겠습니다.

로그를 좀더 자세히찍으니
public string GetTokens()
{
#if UNITY_ANDROID
if (PlayGamesPlatform.Instance.localUser.authenticated)
{
// 유저 토큰 받기 첫번째 방법
string _IDtoken = PlayGamesPlatform.Instance.GetIdToken();
// 두번째 방법
// string _IDtoken = ((PlayGamesLocalUser)Social.localUser).GetIdToken();
return _IDtoken;
}
else
{
Debug.Log(“접속되어있지 않습니다. PlayGamesPlatform.Instance.localUser.authenticated : fail”);
}
#endif
return null;
}
해당 코드에서 아래 접속되어있지 않습니다가 타고 토큰값이 null이나오면서 문제가 발생합니다.

GPGS로그인 자체가 되지 않아
gettokens 의 리턴값이 null이라 발생하는 현상입니다.

아래 개발자 문서를 통해 GPGS 설정을 다시한번 확인 부탁드리며
출시 이전인 경우 GPGS 테스트를 시도한 계정이 구글 콘솔에 테스터로 등록이 되어있는지 확인을 부탁드리겠습니다.

또한 SDK 문서의 순서가 안맞는 부분이 있습니다.
웹클라이언트 추가부분은 갑자기 아래에있고
안드로이드 추가는 위에있고 복잡도가 높습니다.

문서정리가 필요해보입니다.

웹 클라이언트 ID의 경우 유니티 GPGS 설정시에 필요한 부분이여 하단에 첨부되었는데
말씀해주신 바와 같이 보는 관점에따라 혼동될 수 있으리라 생각됩니다.

이부분은 고려하여 개발자분들께서 더욱 편리한 진행방향으로 개선될 수 있도록 수정해줄것을 전달하겠습니다.
소중한 말씀 감사드립니다.

아 위에 문제해결한게 저거때문이 아닌거같네요.
다른부분인거같아 삭제하겠습니다.

저도 해결된줄알았는데 안되네요 이게 될때가있고 안될때가있어요.
안될때는 제보하신분이랑 동일한 에러가 나옵니다.
가이드문서 토시하나 안틀리고 똑같이 진행했습니다.

지금은 아무것도안건드렸는데 또 잘되네요…
뭐지… 일단 해결된거같습니다.