NRE 원격 디버깅

NRE 원격 디버깅

NRE 실행 시 크롬, Edge 브라우저의 Devices inspect 기능을 사용해 실행 중인 앱 디버깅을 할 수 있습니다. 윈도우, macOS 운영체제를 지원합니다.

개발한 스크립트와 자바스크립트 라이브러리까지 디버깅을 할 수 있습니다. DeviceAdaptors로 설치한 모듈이나 엔진 내부 코드 디버깅은 지원하지 않습니다.

안드로이드 운영체제 NRE는 WebView 디버깅 기능을 사용합니다. 아래 문서를 참고해주세요.

https://developer.android.com/reference/android/webkit/WebView#setWebContentsDebuggingEnabled(boolean)

프로젝트 설정

Environment의 enableinspector 속성값을 true로 변경합니다.

실행 설정

윈도우

nexacro.exe 실행 옵션으로 -RPP 옵션을 아래와 같이 추가하고 실행합니다.

nexacro.exe -K "INSPECTOR_TEST" -S "http://localhost:8080/start.json" -RPP 127.0.0.1:9223
nexacro.exe -K "INSPECTOR_TEST" -S "http://localhost:8080/start.json" -RPP 9223

RPP 옵션 설정 시 PORT만 설정한 경우에는 localhost 로 동작합니다.

macOS

터미널에서 실행 시 -RPP 옵션을 아래와 같이 추가하고 실행합니다.

open nexaApp.app --args -K INSPECTOR_TEST -S http://localhost:8080/start_macos.json -RPP "127.0.0.1:9223"
open nexaApp.app --args -K INSPECTOR_TEST -S http://localhost:8080/start_macos.json -RPP "9223"

RPP 옵션 설정 시 PORT만 설정한 경우에는 localhost 로 동작합니다.

Devices inspect 기능 실행

1

크롬 브라우저를 실행하고 주소창에 "chrome://inspect" 을 입력합니다.

chrome://inspect

2

Configure 버튼을 클릭하고 Target discovery settings 창을 띄웁니다.

Discover network targets 항목이 체크되어 있지 않다면 해당 항목을 체크해줍니다.

3

Target discovery settings 창에 앞에서 설정한 RPP 주소값을 추가합니다.

4

앱을 실행하면 Remote Target 항목에 실행된 앱 key 값이 표시됩니다.

5

Target 항목 아래에 있는 inspect 링크를 클릭하면 콘솔창으로 이동하며 trace 메소드 실행 결과나 오류 발생 시 메시지를 확인할 수 있습니다.

6

open dedicated devtools for node 링크를 클릭하면 서버 리소스를 탐색할 수 있는 창을 띄울 수 있습니다.

[Sourcs > Node] 탭에서 원하는 파일을 선택하고 중단점을 추가하거나 추가적인 디버깅 작업을 수행할 수 있습니다.

Remote Target 항목에 앱이 보이지 않을때

앱 실행 후 20초 이상 앱이 표시되지 않는다면 아래와 같이 조치합니다.

1

브라우저 종료 후 다시 접속합니다.

2

앱에서 inspect 기능이 정상 실행되고 있는지 확인합니다.

앱 실행 후 브라우저에서 아래 URL로 접속하면 정보가 표시되어야 합니다. 응답이 없다면 프로젝트 설정에 문제가 있거나 다른 문제가 있을 수 있습니다.

[Target discovery settings RPP Address]/json/list
http://127.0.0.1:9223/json/list

로딩 중 멈춤 기능 옵션 설정

NRE 원격 디버깅은 실행중인 앱을 접속해서 디버깅을 실행하기 때문에 로딩 중 발생하는 오류나 현상을 디버깅할 수 없습니다. 아래와 같이 추가적인 옵션을 통해 로딩 시점에 강제적으로 멈추는 설정을 추가할 수 있습니다.

로딩 중 멈춤 기능은 테마 파일(theme.map.js) 수신 완료 시점에서 멈춘 상태로 Devices inspect 연결을 기다립니다. 프로젝트 로딩 방식이나 네트워크 상태에 따라 해당 시점에 일부 파일을 내려받지 않은 상태일 수 있으며 내려받지 않은 파일은 디버깅을 처리할 수 없습니다.

윈도우, macOS

nexacro.exe 실행 옵션으로 -brk "true" 옵션을 아래와 같이 추가하고 실행합니다.

nexacro.exe -K "INSPECTOR_TEST" -S "http://localhost:8080/start.json" -RPP 127.0.0.1:9223 -brk "true"
nexacro.exe -K "INSPECTOR_TEST" -S "http://localhost:8080/start.json" -RPP 9223 -brk "true"

macOS

터미널에서 실행 시 -brk "true" 옵션을 아래와 같이 추가하고 실행합니다.

open nexaApp.app --args -K INSPECTOR_TEST -S http://localhost:8080/start_macos.json -RPP "127.0.0.1:9223" -brk "true"
open nexaApp.app --args -K INSPECTOR_TEST -S http://localhost:8080/start_macos.json -RPP "9223" -brk "true"