InitializeFail 오류 문의드립니다

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.11.1
  • 프로젝트명 : Spintapmasters
  • 스테이터스 코드 : 400
  • 에러 코드 : InitializeFail
  • 에러 메시지 : hashString is empty

Keystore로 해시키 생성해서 넣고 빌드했고, 프로가드나 R8이 따로 체크되어 있지 않은 상황인데도 안드로이드 빌드 시에 이런 오류가 뜨는 상황입니다. 윈도우에서는 정상 작동되고 있습니다. 어떻게 해결할 수 있을까요?

안녕하세요 개발자님,
해당 에러는 해시 함수나 암호화 알고리즘을 사용할 때 입력값으로 빈 문자열이 전달될 경우 발생합니다.
프로가드와 같은 난독화/암호화가 적용되는 기능이 있는지 확인해 주시고, 그에 맞는 예외 처리를 적용해주셔야 합니다.

프로젝트 설정에는 따로 그런 기능 설정이 안 되어 있는 것 같은데, 이 이외에 적용되는 난독화나 암호화 기능이 추가적으로 있을 가능성이 있을까요?

외부 빌드 스크립트를 사용, 커스텀 Gradle 스크립트 사용, 서드파티 플러그인 사용 등 다양한 경우에 적용되는 상황이 발생할 수 있습니다.

이용 환경을 정확하게 확인할 수 없기에 명쾌한 답변을 드리지 못해 죄송합니다.
사용하지 않더라도 안내되어있는 예외 적용 방법대로 예외 적용을 진행해 시도해봐주시고,
계속 문제가 발생된다면 빌드 로그, apk 디컴파일 등을 통해 실제 난독화가 적용되어 있는지 확인하여 주시면 감사하겠습니다.

Fail To Load TheBackend aar : UnityEngine.AndroidJavaException: java.lang.ClassNotFoundException: io.thebackend.unity.Utils.OfferDeviceInfo
at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.AndroidJNISafe.FindClass (System.String name) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.AndroidJavaClass._AndroidJavaClass (System.String className) [0x00000] in <00000000000000000000000000000000>:0
at BackEnd.NativeInstance.AndroidInstance…ctor () [0x00000] in <00000000000000000000000000000000>:0
at System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) [0x00000] in <00000000000000000000000000000000>:0
at System.Activator.CreateInstance[T] () [0x00000] in <00000000000000000000000000000000>:0
at System.Lazy1[T].ViaFactory (System.Threading.LazyThreadSafetyMode mode) [0x00000] in <00000000000000000000000000000000>:0 at System.Lazy1[T]
2024-05-29 15:56:48.482 24110-24160 Unity com.capstone_42.Spintapmasters E System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> UnityEngine.AndroidJavaException: java.lang.ClassNotFoundException: io.thebackend.unity.Utils.OfferDeviceInfo
at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.AndroidJNISafe.FindClass (System.String name) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.AndroidJavaClass._AndroidJavaClass (System.String className) [0x00000] in <00000000000000000000000000000000>:0
at BackEnd.NativeInstance.AndroidInstance…ctor () [0x00000] in <00000000000000000000000000000000>:0
at System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) [0x00000] in <00000000000000000000000000000000>:0
at System.Activator.CreateInstance[T] () [0x00000] in <00000000000000000000000000000000>:0
at System.Lazy`1[T].ViaFactory (System.Threading.LazyThreadSafetyMode
2024-05-29 15:56:48.495 24110-24160 Unity com.capstone_42.Spintapmasters E Fail To Check OS Setting
System.Exception: AndroidInstance is not Created
at BackEnd.Backend.q4mF0YyWf () [0x00000] in <00000000000000000000000000000000>:0
at BackEnd.Backend.X0O88iDih () [0x00000] in <00000000000000000000000000000000>:0
at BackEnd.Backend.Nk1sKBSbT (System.Boolean , BackEnd.BackendCustomSetting , BackEnd.BackendReturnObject& ) [0x00000] in <00000000000000000000000000000000>:0
at BackEnd.Backend.Initialize (System.Boolean useAsyncPoll, System.Boolean autoLocationToAsync) [0x00000] in <00000000000000000000000000000000>:0
at BackendManager.BackendSetup () [0x00000] in <00000000000000000000000000000000>:0
UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
BackEnd.Backend:X0O88iDih()
BackEnd.Backend:Nk1sKBSbT(Boolean, BackendCustomSetting, BackendReturnObject&)
BackEnd.Backend:Initialize(Boolean, Boolean)
BackendManager:BackendSetup()
2024-05-29 15:56:48.496 24110-24160 Unity com.capstone_42.Spintapmasters E Initialize err: hashString is empty
UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
BackEnd.Backend:Nk1sKBSbT(Boolean, BackendCustomSetting, BackendReturnObject&)
BackEnd.Backend:Initialize(Boolean, Boolean)
BackendManager:BackendSetup()
2024-05-29 15:56:48.497 1597-4597 TaskPersister system_server E File error accessing recents directory (directory doesn’t exist?).
2024-05-29 15:56:48.498 24110-24160 Unity com.capstone_42.Spintapmasters E 초기화 실패 : statusCode : 400
errorCode : InitializeFail
message : hashString is empty
UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
BackendManager:BackendSetup()

확인해보았으나 해결방법을 찾지 못해 일단 현재 오류 로그를 보내드립니다. TheBackend.aar를 불러오는 것에 문제가 있어보이는데, 혹시 이것도 동일하게 난독화나 암호화 기능의 문제일까요? 바쁘시겠지만 확인해주시면 감사하겠습니다.

오류 로그 전문 공유 감사합니다.
아래 안내드리는 사항을 확인 부탁드립니다.

  1. 빌드 후 생성되는 프로젝트 폴더 > Temp > StagingArea > aar에 Backend.aar 존재 확인
    유니티에서 제대로 빌드가 이루어지지 않는 경우 해당 파일이 없으며, 해당 플러그인으로 접근이 불가능하여 에러가 발생할 수 있습니다.

  2. 뒤끝 초기화 스크립트만 추가된 유니티 프로젝트 빌드
    다른 플러그인의 충돌, 설정 에러등 정확한 에러 구분을 위해 새로운 유니티 프로젝트 생성 후,
    초기화 스크립트만을 이용한 유니티 프로젝트를 빌드한 후 에러가 발생하는지 확인해 주세요.

  3. 다른 버전의 유니티 설치
    유니티 설치 중 문제가 생기거나 JDK, Android SDK 설치중 문제가 발생하여 빌드가 원활히 되지 않을 수 있거나, 단순 빌드 중 낮은 확률로 에러가 발생할 수 있으므로 다른 버전의 유니티 버전을 재설치 후 빌드를 시도해 주세요.

안내드린 방법으로도 해결되지 않는 경우 사용하고 계신 초기화 관련 코드를 공유하여 주시면 감사하겠습니다.