2023. 8. 21. 20:55ㆍ언리얼이 리얼보다 쉬웠어요
UE5에서 안드로이드 앱을 대상으로 인사이트를 돌리는 건 UE4때와 큰 차이는 없다. UE4CommandLine.txt가 UECommandLine.txt로 바뀐 정도의 미세한 차이다. 예나 지금이나 PC 프로세스 캡처보다 모바일이 약간 더 번거로운 절차를 거칠 뿐이다.
인사이트를 통한 안드로이드 앱 프로파일링 A to Z
우선 인사이트 모듈 빌드, adb, 기기 디버그 허용 등의 기본적인 세팅은 되어 있다는 전제하에서 시작한다.
adb reverse tcp:1980 tcp:1980
인사이트는 tcp 포트 1980를 수신하기 때문에 우선 adb revese 명령으로 포트를 돌려준다.
UECommandLine.txt 파일을 준비한다.
-tracehsot=[로컬 아이피 주소] -trace=[추적할 채널 목록]
이 두 가지가 기입되어 있으면 된다. 추적 채널 목록에 관해서는 공식 문서에 정리된 목록이 있어 참고용으로 올려둔다. 참고 링크
기기의 [패키지 저장 경로] > files > UnrealGame > [프로젝트명]에 준비해둔 UECommandLine.txt 파일을 심어준다.
모든 과정이 정상적으로 완료되었다면 인사이트를 실행 후 앱을 실행했을 때 캡처가 진행되는 모습을 확인할 수 있다.
한번 모든 과정을 뚫어두고 나면 그 이후 반복은 어렵지 않다. 단순히 매번 테스트를 위해 새로운 빌드를 뽑아낼 때마다 이 과정을 기계적으로 되풀이하는 것이 미묘하게 번거로울 뿐이다.
여기부터 뱀발
그래서 위의 과정을 자동화해주는 툴을 만들었다. 엄청 거창한 건 아니지만 혹여나 필요한 사람이 있을까 싶어 배포해둔다.
사용 방법도 간단하다. 앱이 설치된 상황에서 디버깅할 기기를 연결해둔 뒤, 칸을 다 채우고 실행을 누르면 자동으로 포트를 돌리고 커맨드파일을 앱 경로에 넣어준 후 인사이트와 앱을 실행시킨다. 실행 파일 경로의 Files 폴더에 있는 배치파일들만 분실되지 않으면 된다.
그리고 이 모든 과정은 루팅되지 않은 기기에서도 정상적으로 작동한다. 앱을 실행시킬 때 adb shell am start 커맨드가 permission denied로 막히길래 adb shell monkey로 우회해서 처리했다.
실제 실행 영상도 같이 첨부해둔다. ↓
'언리얼이 리얼보다 쉬웠어요' 카테고리의 다른 글
[UE5] Garbage Collection (0) | 2023.08.31 |
---|---|
[UE5] Octahedral Impostors (0) | 2023.08.18 |
[UE4/UE5] Replication Graph - GridSpatialization2D Node (0) | 2023.08.08 |
[UE4/UE5] Replication Graph (0) | 2023.07.22 |