오늘은 프로젝트 마감이 가까워짐에 따라 테스트하며 알게 된 내용을 적어볼까 합니다.
테스트 배포를 위해 Android로 빌드했더니 정상적으로 데이터가 안 불러와지는 오류가 있었습니다.
Unity 에디터에서는 정상 동작 했는데 말이죠. ;;
처음엔 당황했으나 원인을 파악하고자
모바일에서도 로그를 확인 할 수 있는 방법을 찾았습니다.
진행한 과정
찾아본 내용 중 모바일 환경에서 로그를 찍고 확인 할 수 있는 방법에
안드로이드 스튜디오를 활용하여 콘솔 창에서 보는 방식 등 여러 가지가 있었지만
저는 기존부터 블루 스택을 사용하고 있어서
유니티 블루 스택 디버깅이라고 검색하여 다음 과정을 찾았습니다.
1.
블루스택 설정 창에서 ADB(Android Debug Bridge) 기능을 활성화해 주었습니다.
기본적으로 유니티에서는 USB 디버깅이랑 ADB(Android Debug Bridge) 두 방식을 권장하고 있습니다.
https://docs.unity3d.com/kr/2022.3/Manual/android-debugging-on-an-android-device.html
2.
Android logcat을 설치해 준 후
3.
빌드한 파일을 블루스택으로 실행한 후, Android Logcat을 실행하여 로그를 확인 할 수 있었습니다.
아마 자동으로 연결이 될 겁니다.
(정상 연결되었다면 그림과 같이 아래 초록으로 Connect라고 뜹니다)
만약 연결이 안 되었다면 수동으로 연결하면 됩니다.
수동 연결 방법은 No device - Other Connection options 눌러
IP에 블루스택 ADB 아래 나왔던 IP 주소를 입력해주면 연결이 됩니다.
파악한 원인
JSON으로 데이터를 저장하고 불러오는 과정 중
Application.dataPath를 사용하고 있었는데,
이 방식은 모바일에서는 동작하지 않는다는 걸 알게 되었습니다.
그래서 다음과 같이 에디터와 빌드 모두에서 동작하도록 코드를 수정했습니다.
private string GetJsonFilePath()
{
#if UNITY_EDITOR
// 에디터에서는 Assets 폴더에 저장
return Path.Combine(Application.dataPath, "playerData.json");
#else
// 빌드에서는 persistentDataPath 사용
return Path.Combine(Application.persistentDataPath, "playerData.json");
#endif
}
모바일로 빌드해본 경험이 별로 없어서 이런 경우를 처음 알았네요.
다행히도 간단한 문제여서 금방 해결할 수 있었습니다.
마무리
오늘은 Android에서 로그를 확인하는 방법(블루 스택 + 로그캣)에 대해서 알아보았고,
진행하면서 겪었던 내용을 간단하게 정리해 봤습니다.
참고한 자료
https://ongamedev.tistory.com/449
Unity/Android 개발 시 손쉬운 로그 확인 방법
예전에 터미널에서 adb로 직접 연결해 결과를 확인했지만 unity package manager에서 logcat 지원하고 나서는 더 편리해 졌네요. 이 글에서는 logcat 설치 및 사용법을 간단히 정리해 보았습니다. 1. 우선 bl
ongamedev.tistory.com