iOS 원격 디버깅


199

iOS 용 Chrome의 최신 릴리스에서 Chrome iOS에 대한 원격 디버깅을 어떻게 활성화 할 수 있을지 궁금했습니다.

업데이트 : iOS 6 릴리스에서 Safari를 통해 원격 디버깅을 수행 할 수 있습니다 .


2
Mac에서 Safari를 사용하여 원격 디버깅을 수행 할 수 있습니다. 그러나 Linux 또는 Windows에서 개발하는 경우 여전히 (ingregor answer에 명시된 바와 같이) weinre를 사용해야합니다.
Dehalion

3
Safari를 사용한 원격 디버깅은 iOS Chrome이 아닌 Mobile Safari 만 지원합니다.
매트 젠슨

보고를하시기 바랍니다 medium.com/@nikoloza/...
마차도

답변:


111

최신 정보:

이 답변은 더 이상 최고의 답변 이 아닙니다 . 단체 의 조언을 따르십시오 .

새로운 답변 :

Weinre를 사용하십시오 .

이전 답변 :

이제 원격 디버깅에 Safari를 사용할 수 있습니다. 그러나 iOS 6이 필요합니다.

다음은 http://html5-mobile.de/blog/ios6-remote-debugging-web-inspector 의 빠른 번역입니다 .

  1. USB를 통해 iDevice를 Mac과 연결
  2. Mac에서 Safari를 열고 개발 도구를 활성화하십시오
  3. iDevice에서 : 설정> Safari> 고급으로 이동하여 웹 관리자를 활성화하십시오.
  4. iDevice가있는 웹 사이트로 이동
  5. Mac : 개발자 메뉴를 열고 iDevice에서 사이트를 선택하십시오 (위의 Safari 메뉴에 있음)

Simons가 지적한 것처럼 원격 디버깅 작업을 수행하려면 개인 탐색을 해제해야합니다.

설정> Safari> 개인 브라우징> 끄기


11
그렇습니다, 나는 이미 이것을 사용하고 있습니다. 드디어! Safari의 Windows 버전에는 그렇지 않습니다.
Hyangelo

5
Chrome이 곧 동일한 기능을 사용하여 모든 OS에서 작동하기를 바랍니다.
F Lekschas

49
그렇습니다-이것이 질문 된 질문에 대답하면 좋을 것입니다!
Irene Knapp

4
더 이상 개인 정보 보호 브라우징을 끄지 않아도됩니다.
Miles

3
공감 사유 : 질문은 Safari가 아닌 Chrome을 요구합니다 .
NickG

230

선택한 답변은 Safari에만 해당됩니다. 현재 iOS의 Chrome에서는 실제 원격 디버깅을 수행 할 수 없지만 대부분의 모바일 브라우저와 마찬가지로 간단한 디버깅을 위해 WeInRe 를 사용할 수 있습니다 . 설정하는 것은 약간의 작업이지만 DOM을 검사하고 스타일을 확인하고 DOM을 변경하고 콘솔을 사용할 수 있습니다.

여기에 이미지 설명을 입력하십시오

설정하기:

  • nodejs 설치
  • npm install -g weinre
  • weinre --boundHost -all-
  • http : // {wifi-ip-address} : 8080 /을 열고 대상 스크립트 코드를 복사하십시오.
  • 스크립트 태그를 페이지에 붙여 넣기 (또는 북마크릿 사용)
  • 디버그 클라이언트 사용자 인터페이스에 대한 링크를 클릭하십시오 (http : // {wifi-ip-address} : 8080 / client / # anonymous)
  • 클라이언트 아래에 녹색 선이 표시 되면 브라우저가 연결된 것입니다

북마크릿은 설치하기가 조금 더 번거 롭습니다. 데스크톱 및 모바일 Chrome 모두에서 북마크 동기화를 사용하는 것이 가장 쉽습니다. 로컬 weinre 서버에서 북마크릿 URL을 복사하십시오 (위와 동일). 불행히도 URL로 올바르게 인코딩되지 않아 작동하지 않습니다. JavaScript 콘솔을 열고 다음을 입력하십시오.

copy(encodeURI('')); // paste bookmarklet inside quotes

이제 클립 보드에 URL로 인코딩 된 책갈피가 있어야합니다. 모바일 북마크 아래에 새 북마크에 붙여 넣습니다 . 그것을 weinre 또는 간단한 입력이라고 부릅니다. 모바일과 매우 빠르게 동기화되어야하므로 검사하려는 페이지를로드하십시오. 그런 다음 url-bar에 책갈피 이름을 입력하면 책갈피가 자동 완성 제안으로 표시됩니다. 북마크 코드를 실행하려면 클릭하십시오 :)

여기에 이미지 설명을 입력하십시오


27
이것은 정답입니다. 다른 모든 사파리와 관련이 있습니다 (공원에서 걷기)
Mars Robertson

2
매우 유용한 지침! 복사를하는 대신 북마크릿을 설치하기 위해 제공된 "wetre target debug"북마크릿 링크를 북마크 툴바로 드래그하면됩니다 (툴바가 보이지 Ctrl-Shift-B않는 경우 툴바가 보이 도록).
Kai Carver

북마크릿을 설치 한 후 브라우저를 새로 고침해야 작동합니다.
ooolala

npm install -g weinre나를 위해 일하지 않았다. 그래서 나는 버전으로 실행해야했다 npm install -g weinre@2.0.0-pre-I0Z7U9OV. 최신 버전은 여기 npmjs.com/package/weinre에서 확인하십시오 .
vinesh

1
FWIW, weinre는 현재 shadow dom을 지원하지 않습니다. 최상위 요소와 light dom 만 보여줍니다. 또한 최상위 요소 및 그늘진 돔 (및 가벼운 돔)을 제외하고 그늘진 돔에는 작동하지 않습니다.
Max Waterman

52

현재 iOS에서 Chrome을 직접 원격으로 디버깅 할 수 없습니다. Mobile Safari와는 미묘하게 다르게 작동하는 uiWebView를 사용합니다.

몇 가지 옵션이 있습니다.

옵션 1 : Safari 검사기를 사용하여 원격 디버그 모바일 Safari. 문제가 Mobile Safari에서 재생산되는 경우 가장 좋은 방법입니다. 실제로 iOS 시뮬레이터를 사용하는 것이 훨씬 쉽습니다.

옵션 2 : 디버깅을 줄이려면 Weinre를 사용하십시오 . Weinre에는 많은 기능이 없지만 때로는 충분합니다.

옵션 3 : 동일한 기능을하는 적절한 uiWebView를 원격 디버그하십시오.

가장 좋은 방법은 다음과 같습니다. XCode설치 해야합니다 .

  1. github.com/paulirish/iOS-WebView-App으로 이동하여 "Zip 다운로드"또는 복제하십시오.
  2. XCode를 열고 기존 프로젝트를 연 다음 방금 다운로드 한 프로젝트를 선택하십시오.
  3. WebViewAppDelegate.m을 열고 urlString를 테스트하려는 URL로 변경하십시오 .
  4. iOS 시뮬레이터에서 앱을 실행하십시오.
  5. Safari를 열고 개발 메뉴를 열고 iOS 시뮬레이터 를 선택한 다음 웹뷰를 선택하십시오.
  6. Safari Inspector가 이제 uiWebView를 검사합니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


7
크롬을 사용하여 Windows에서 iOS (iPhone / iPad)를 검사하는 방법은 무엇입니까? 그 방법이 있습니까?
Surjith SM

@SurjithSM이 답변은 Windows에 XCode를 설치하고 iOS 앱을 만들 수없는 동안 Windows에 도움이되지 않습니다. 이 대신에 시도 stackoverflow.com/a/22047495/1737158
루카스 Liesis

나는 이미 훌륭한 도구 인 github.com/google/ios-webkit-debug-proxy에 대한 경험이 있었고 어제 iOS 에뮬레이터로 Chrome을 디버깅하려고 시도했습니다. 가장 멋진 경험입니다. # 3 주셔서 감사합니다
Oleg Andreyev

10

내가 이해 한 바에 따르면 Chrome은 Android와 같은 Chrome을 완전히 구현하는 대신 iOS의 UIWebView를 사용합니다.


1
네, 제가이 질문을 한 후에 그것을 알아 냈습니다. 그것은 사과에 대한 수치입니다. 누군가가 그것을 할 수있는 방법을 알아 냈을 가능성에 대해이 질문을 열어 두었습니다.
Hyangelo

4

많은 원격 콘솔이 제대로 작동합니다. http://farjs.com 은 내 프로젝트이며 Crome iOS와 관련된 문제를 성공적으로 디버깅 할 수 있었으며 사파리에서는 사용하지 않습니다. (아마도 다른 모든 모바일 브라우저)

문제는 Chrome에서 북마크를 설치할 수 없기 때문에 디버깅 코드를 삽입하는 것이 약간 까다 롭다는 것입니다.

대신 페이지에서 디버깅 할 탭 하나와 farjs.com에서 탭 하나를 열고 "bookmarklet"을 클릭하면됩니다.

bookmarklet JS 코드를 복사하고 디버깅해야 할 페이지가있는 첫 번째 탭으로 돌아간 다음 위치 표시 줄에 bookmarklet 코드를 붙여 넣습니다.

마지막 단계는 Chrome에서 위치 표시 줄의 시작 부분으로 스크롤하여 "javascript :"를 추가하는 것입니다.


4

나는 와인 처럼 추천합니다. 나는 Vorlon의 UI를 좋아하고 SSL 을 지원 하고 내 응용 프로그램은 HTTPS에 있으며 ngrok, ghostlab 및 vorlon으로 weinre를 시도했지만 vorlon 만 제대로 작동합니다.


3

나는 그것을 시도하지 않았지만 iOS WebKit 디버그 프록시 (ios_webkit_debug_proxy / iwdp)를 사용하면 UIWebView를 원격으로 디버깅 할 수 있습니다. README.md에서

개발자는 ios_webkit_debug_proxy (일명 iwdp)를 사용 하여 Chrome DevTools UI 및 Chrome 원격 디버깅 프로토콜을 통해 실제 및 시뮬레이션 된 iOS 기기 에서 MobileSafari 및 UIWebViews 를 검사 할 수 있습니다 . DevTools 요청은 Apple의 Remote Web Inspector 서비스 호출로 변환됩니다.


1
Chrome 웹뷰 지원은 이론적 으로 iOS 웹킷 디버그 프록시 위에 구축 된 github.com/RemoteDebug/remotedebug-ios-webkit-adapter 를 통해 구현됩니다 . 나는 지금까지 그 프로젝트로 제한된 성공을 거두었지만 더 나아질 것으로 기대합니다.
매트 젠슨

3

볼론 .JS 는 iOS 또는 다른 클라이언트의 원격 디버깅에 사용할 수 있습니다.

  1. 다음을 사용하여 전역으로 설치하십시오. npm i -g vorlon
  2. 서버를 사용하여 시작 vorlon
  3. 서버가 실행 중이면 http : // localhost : 1337을 엽니 다 . 에서 브라우저에서 을 열어 Vorlon.JS 대시 보드를 확인하십시오.
  4. 마지막 단계는이 스크립트 태그를 앱에 추가하여 Vorlon.JS를 활성화하는 것입니다.
    <script src="http://<yourExternalIP>:1337/vorlon.js"></script>
  5. 연결된 모든 클라이언트 (예 : iPhone, Android)는 Vorlon.JS 대시 보드의 클라이언트 목록에서 사용할 수있게됩니다. 여기에 이미지 설명을 입력하십시오

이 방법은 ngrok를 사용하여 localhost에서 실행되지 않는 앱을 ​​디버깅하는 데에도 사용될 수 있습니다 . 참조 https://stackoverflow.com/a/45443203/2073920를 을 참조하십시오.

부인 성명

나는 단지 사용자이고 Vorlon.JS 및 ngrok와 제휴하지 않습니다


나는 모든 단계를 따라하지만 내 아이폰의 전망은 맥에서 실행되는 VorlonJS에서 검출지고 있지 않습니다
Amarjit 싱

2

또한 '개인 정보 보호 브라우징'을 사용 중지해야합니다.

설정> Safari> 개인 브라우징> 끄기


왜 ppl 이이 답변을 다운 투표했는지 확실하지 않습니다. 원격 디버깅을 허용하려면 비공개 브라우징 기능을 해제해야합니다.
기본 코드

14
@basecode 주석에 포함되어야하는 보완적인 답변이기 때문입니다.
GusDeCooL

2
@GusDeCooL 감사합니다! 이를 설명하는 downvoter의 의견이 도움이되었을 것입니다.
기본 코드

0

심지어 동일한 기능을 찾고 있으며 현재로서는 아직 구현되지 않았습니다. 그러나 두 가지 옵션을 생각할 수 있지만

  1. Chrome과 Safari의 동작이 상당히 동일하다는 것을 알았습니다. Chrome은 Safari에서 지원하는 자이로 스코프 및 기타 관련 이벤트도 지원합니다. 현재 Safari에서 디버그 콘솔을 사용하여 웹 응용 프로그램을 디버깅하고 있습니다 (설정-> Safari).

  2. 또한 원격 디버깅 / 검사 및 동기화가 가능한 Adobe Shadow를 사용해보십시오.

HTH.


0

Adobe Edge Inspect ( https://creative.adobe.com/products/inspect )는 모든 모바일 장치 IOS 및 Android (Windows Phone은 아님)를 디버깅하는 또 다른 방법입니다. 원격 DOM 검사 / 변경에 weinre를 사용합니다. 가장 빠른 방법은 아니지만 Windows에서 작동합니다.


Adobe Edge Inspect는 더 이상 Adobe Creative Cloud에 나열되지 않습니다. adobe.com/products/edge-inspect.html을 참조하십시오 .
Ron Inbar

그러나 더 이상 개발 중이 아니더라도 현재 구독으로 다운로드 할 수 있습니다. 방법 알아보기 : helpx.adobe.com/creative-cloud/kb/…
HumbleBeginnings

그러나 iOS 앱은 더 이상 사용할 수 없습니다. 여전히 안드로이드에서 작업하고 있지만 더 이상 iOS는 없습니다 : itunes.apple.com/app/id498621426
bg17aw


0

remotedebug-ios-webkit-adapter를 사용하고 있으며 Windows 10의 Chrome에서 열린 IOS 및 디버거에서 잘 작동합니다.

그것이 하나의 링크를 돕는다면 기쁠 것입니다


0

참고 : Ghostlab 제작자 Vanamco와는 아무런 관련이 없습니다.

Chrome 관련 문제를 디버깅 할 수 있어야했기 때문에 도움이 될만한 것을 찾기 시작했습니다. 나는 Ghostlab 3 에서 행복하게 돈을 버렸습니다 . 마치 데스크톱에서보고있는 것처럼 Chrome 및 Safari 모바일 브라우저를 테스트 할 수 있습니다. 디버깅하려는 모든 장치에 사용할 LAN 주소 만 제공합니다. 해당 주소를 사용하는 각 응용 프로그램은 Ghostlab의 목록에 나타납니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

추천.


-2

Safari Desktop iOS 열기

개발-> 반응 형 디자인 모드

기기에서 "기타"를 클릭하십시오

붙여 넣기 : Mozilla / 5.0 (iPad, Mac OS X와 ​​같은 CPU OS 10_2_1) AppleWebKit / 602.1.50 (Gcko와 같은 KHTML) CriOS / 56.0.2924.79 Mobile / 14D27 Safari / 602.1

Safari 검사 도구를 사용하십시오.


-3

면책 조항 : BrowserStack에서 일합니다. [확인] 게시 가능 여부 ( 회사에서 근무중인 제품을 제안 할 수 있습니까? )


iOS에서 Safari를 디버깅하십시오 (현재 Chrome은 아님). 자세한 내용은 미리 읽으십시오.

어떻게 작동합니까?

  • BrowserStack에서 실제 장치 (에뮬레이터가 있지만 실제 장치에서 세션을 시작해야 함)에서 세션을 시작해야합니다. 예 : iPhone 6S-Safari / Chrome (Chrome 용 devtools는 없지만 로드맵에 있음)
  • URL을 입력하십시오
  • DevTools를 트리거하여 BrowserStacks 원격 장치에서 열린 웹 페이지를 검사 할 수 있습니다. 아래에서 같은 화면을 공유했습니다.

실제 전화에서 DevTools 사용

데스크톱 브라우저 devtools가 작동하는 것처럼 요소 위에 마우스를 올려 놓고 HTML을 편집하고 CSS를 편집하십시오.

실제 전화의 DevTools, 반응 형 웹 사이트 디버깅


DevTools를 사용하여 실제 전화에서 JavaScript 실행

Console탭으로 전환하고 JavaScript 코드를 실행 console.log()하고 출력을 확인하십시오 .

devtools를 사용하여 실제 전화에서 JavaScript를 실행하십시오.


네트워크 탭, 요청 헤더, 응답 등 확인 ...

요청을 확인하는 네트워크 탭


BrowserStack에서 DevTools를 지원합니까?

  • DevTools는 다음에서 사용할 수 있습니다.

    • 실제 기기-iOS-Safari (iOS Chrome 용 DevTools는 로드맵에 있습니다)
    • 실제 기기-Android-Chrome (현재 Android 기기에서만 Chrome 만 사용 가능)
  • 클라이언트 브라우저는 Chrome 또는 Firefox 여야합니다. 즉, BrowserStack Real Device DevTools를 사용하려면 MacOSX 또는 Windows에서 Chrome 또는 Firefox 브라우저를 사용해야합니다.

참고 : 모든 실제 장치에서 테스트 할 계획을 무료로 구입해야합니다. 무료 사용자에게는 몇 가지 Real Android 장치 (태블릿 포함) 및 몇 가지 Real iOS 장치 (태블릿 포함)가 제공됩니다. 또한 Real Devices 라는 단어 는 에뮬레이터를 제공하기 때문에 강조 합니다.

이에 대한 자세한 내용은 모바일 기능 페이지의 DevTools 섹션을 참조하십시오 .


3
그는 iOS에서 크롬 디버깅을 요청했습니다. 나는 browserstack 고객을 오전 iOS에서 Safari를 디버깅하는 것이 가능하므로 Mac을 소유하고 있지만, 크롬 원격 디버그 할 수있는 가능성을 지연하지

@fabs 로드맵에 있습니다. 또한 Safari-iOS 기기 및 Android 기기 용 Chrome에서만 작동한다고 언급했습니다. :)
Mr. Alien

레이아웃 문제의 경우 두 브라우저의 레이아웃 엔진이 웹킷이므로 문제가되지 않습니다. 로컬 서버 테스트 기능 과 함께 사용하면 로컬 호스트를 디버깅하기 위해 추가 설정이 필요하지 않습니다.
Tim Vermaelen

1
대답은 어쨌든 질문을 다루지 않습니다. Browserstack은 훌륭한 서비스를 제공하지만이 답변은 완전히 다른 주제입니다.
매트 젠슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.