iOS 원격 디버깅
iOS 용 Chrome의 최신 릴리스에서 Chrome iOS에 대한 원격 디버깅을 어떻게 활성화 할 수 있을지 궁금했습니다.
업데이트 : iOS 6 릴리스에서 Safari를 통해 원격 디버깅을 수행 할 수 있습니다 .
최신 정보:
이 답변은 더 이상 최고의 답변 이 아닙니다 . 단체 의 조언을 따르십시오 .
새로운 답변 :
Weinre를 사용하십시오 .
이전 답변 :
이제 원격 디버깅에 Safari를 사용할 수 있습니다. 그러나 iOS 6이 필요합니다.
다음은 http://html5-mobile.de/blog/ios6-remote-debugging-web-inspector 의 빠른 번역입니다 .
- USB를 통해 iDevice를 Mac과 연결
- Mac에서 Safari를 열고 개발 도구를 활성화하십시오
- iDevice에서 : 설정> Safari> 고급으로 이동하여 웹 관리자를 활성화하십시오.
- iDevice가있는 웹 사이트로 이동
- Mac : 개발자 메뉴를 열고 iDevice에서 사이트를 선택하십시오 (위의 Safari 메뉴에 있음)
Simons가 지적한 것처럼 원격 디버깅 작업을 수행하려면 개인 탐색을 해제해야합니다.
설정> Safari> 개인 브라우징> 끄기
선택한 답변은 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에 책갈피 이름을 입력하면 책갈피가 자동 완성 제안으로 표시됩니다. 북마크 코드를 실행하려면 클릭하십시오 :)
현재 iOS에서 Chrome을 직접 원격으로 디버깅 할 수 없습니다. Mobile Safari와는 미묘하게 다르게 작동하는 uiWebView를 사용합니다.
몇 가지 옵션이 있습니다.
옵션 1 : Safari 검사기를 사용하여 원격 디버그 모바일 Safari. 문제가 Mobile Safari에서 재생산되는 경우 가장 좋은 방법입니다. 실제로 iOS 시뮬레이터를 사용하는 것이 훨씬 쉽습니다.
옵션 2 : 디버깅을 줄이려면 Weinre를 사용하십시오 . Weinre에는 많은 기능이 없지만 때로는 충분합니다.
옵션 3 : 동일한 기능을하는 적절한 uiWebView를 원격 디버그하십시오.
가장 좋은 방법은 다음과 같습니다. XCode 를 설치 해야합니다 .
- github.com/paulirish/iOS-WebView-App으로 이동하여 "Zip 다운로드"또는 복제하십시오.
- XCode를 열고 기존 프로젝트를 연 다음 방금 다운로드 한 프로젝트를 선택하십시오.
- WebViewAppDelegate.m을 열고
urlString
를 테스트하려는 URL로 변경하십시오 . - iOS 시뮬레이터에서 앱을 실행하십시오.
- Safari를 열고 개발 메뉴를 열고 iOS 시뮬레이터 를 선택한 다음 웹뷰를 선택하십시오.
- Safari Inspector가 이제 uiWebView를 검사합니다.
내가 이해 한 바에 따르면 Chrome은 Android와 같은 Chrome을 완전히 구현하는 대신 iOS의 UIWebView를 사용합니다.
많은 원격 콘솔이 제대로 작동합니다. http://farjs.com 은 내 프로젝트이며 Crome iOS와 관련된 문제를 성공적으로 디버깅 할 수 있었으며 사파리에서는 사용하지 않습니다. (아마도 다른 모든 모바일 브라우저)
Chrome에서는 북마크를 설치할 수 없으므로 디버깅 코드를 삽입하는 것이 약간 까다 롭습니다.
대신 페이지에서 디버깅 할 탭 하나와 farjs.com에서 탭 하나를 열고 "bookmarklet"을 클릭하면됩니다.
Bookmarklet JS 코드를 복사하고 디버깅해야 할 페이지가있는 첫 번째 탭으로 돌아간 다음 위치 표시 줄에 Bookmarklet 코드를 붙여 넣습니다.
마지막 단계는 Chrome에서 위치 표시 줄의 시작 부분으로 스크롤하여 "javascript :"를 추가하는 것입니다.
나는 와인 처럼 추천합니다. 나는 Vorlon의 UI를 좋아하고 SSL 을 지원 하고 내 응용 프로그램은 HTTPS에 있으며 ngrok, ghostlab 및 vorlon으로 weinre를 시도했지만 vorlon 만 제대로 작동합니다.
나는 그것을 시도하지 않았지만 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 서비스 호출로 변환됩니다.
또한 '개인 정보 보호 브라우징'을 사용 중지해야합니다.
설정> Safari> 개인 브라우징> 끄기
Vorlon.JS 는 iOS 또는 다른 클라이언트의 원격 디버깅에 사용할 수 있습니다.
- 다음을 사용하여 전역으로 설치하십시오.
npm i -g vorlon
- 서버를 사용하여 시작
vorlon
- 서버가 실행중인 상태 에서 브라우저에서 http : // localhost : 1337 을 열어 Vorlon.JS 대시 보드를 확인하십시오.
- 마지막 단계는이 스크립트 태그를 앱에 추가하여 Vorlon.JS를 활성화하는 것입니다.
<script src="http://<yourExternalIP>:1337/vorlon.js"></script>
- 연결된 모든 클라이언트 (예 : iPhone, Android)는 Vorlon.JS 대시 보드의 클라이언트 목록에서 사용할 수있게됩니다.
이 방법은 ngrok를 사용하여 localhost에서 실행되지 않는 앱을 디버깅하는 데에도 사용될 수 있습니다 . 자세한 내용은 https://stackoverflow.com/a/45443203/2073920 을 참조하십시오.
기권
나는 단지 사용자이고 Vorlon.JS 및 ngrok와 제휴하지 않습니다
심지어 동일한 기능을 찾고 있으며 현재로서는 아직 구현되지 않았습니다. 그러나 두 가지 옵션을 생각할 수 있지만
Chrome과 Safari의 동작이 상당히 동일하다는 것을 알았습니다. Chrome은 Safari에서 지원하는 자이로 스코프 및 기타 관련 이벤트도 지원합니다. 현재 Safari에서 디버그 콘솔을 사용하여 웹 응용 프로그램을 디버깅하고 있습니다 (설정-> Safari).
또한 원격 디버깅 / 검사 및 동기화가 가능한 Adobe Shadow를 사용해보십시오.
HTH.
Adobe Edge Inspect ( https://creative.adobe.com/products/inspect )는 모든 모바일 장치 IOS 및 Android (Windows Phone은 아님)를 디버깅하는 또 다른 방법입니다. 원격 DOM 검사 / 변경에 weinre를 사용합니다. 가장 빠른 방법은 아니지만 Windows에서 작동합니다.
Chromium에는 공개 버그가 있습니다. https://bugs.chromium.org/p/chromium/issues/detail?id=584905
불행하게도 그들은이 일을 위해, WKView에 API를 개방 이후 애플에 의존 어쩌면 디버깅 사파리에서 사용할 수 있습니다.
remotedebug-ios-webkit-adapter를 사용하고 있으며 Windows 10의 Chrome에서 열린 IOS 및 디버거에서 잘 작동합니다.
그것이 하나의 링크를 돕는다면 기쁠 것입니다
참고 : Ghostlab 제작자 Vanamco와는 아무런 관련이 없습니다.
Chrome 관련 문제를 디버깅 할 수 있어야했기 때문에 도움이 될만한 것을 찾기 시작했습니다. 나는 Ghostlab 3 에서 행복하게 돈을 버렸습니다 . 마치 데스크톱에서보고있는 것처럼 Chrome 및 Safari 모바일 브라우저를 테스트 할 수 있습니다. 디버깅하려는 모든 장치에 사용할 LAN 주소 만 제공합니다. 해당 주소를 사용하는 각 응용 프로그램은 Ghostlab의 목록에 나타납니다.
추천.
면책 조항 : BrowserStack에서 일합니다. [확인] 게시 가능 여부 ( 회사에서 근무중인 제품을 제안 할 수 있습니까? )
iOS에서 Safari를 디버깅하십시오 (현재 Chrome은 아님). 자세한 내용은 미리 읽으십시오.
어떻게 작동합니까?
- You need to start a session on any real device (there are emulators but you need to start a session on a real device) on BrowserStack, say iPhone 6S - Safari / Chrome(no devtools for Chrome yet, but it is on our Roadmap)
- Type in the URL
- You can trigger DevTools to inspect the webpage opened on the BrowserStacks remote device. I've shared the screens for the same below.
Using DevTools with Real Phones
Hover over the elements, edit HTML, CSS just like desktop browser devtools work.
Executing JavaScript in real phone using DevTools
Switch to Console
tab, execute JavaScript code, check console.log()
output and so on...
Network tab, check request headers, response and so on...
Support for DevTools on BrowserStack?
DevTools are available on :
- Real Devices - iOS - Safari (DevTools for iOS Chrome is on our Roadmap)
- Real Devices - Android - Chrome (Only Chrome is available on Android devices for now)
Client browser needs to be Chrome or Firefox. That means you need to use Chrome or Firefox browser on MacOSX or Windows to use BrowserStack Real Device DevTools.
Note: You need to buy a plan to test on all real devices, as a free user, you'll get couple of Real Android devices (includes tablets) and couple of Real iOS devices (includes tablets). Also, emphasizing on the word Real Devices because they provide emulators as well.
More details on this, please refer to DevTools section on Mobile Features page.
Open Safari Desktop iOS
Develop -> Responsive Design Mode
Click "Other" under device
붙여 넣기 : Mozilla / 5.0 (iPad, Mac OS X와 같은 CPU OS 10_2_1) AppleWebKit / 602.1.50 (Gecko와 같은 KHTML) CriOS / 56.0.2924.79 Mobile / 14D27 Safari / 602.1
Safari 검사 도구를 사용하십시오.
참고 URL : https://stackoverflow.com/questions/11262236/ios-remote-debugging
'Programing' 카테고리의 다른 글
Laravel에서 특정 마이그레이션 하나를 롤백 (0) | 2020.05.12 |
---|---|
Xcode 프로젝트 및 관련 폴더를 복제하고 이름을 바꿉니다. (0) | 2020.05.12 |
요소 별 동일성을 위해 두 개의 numpy 배열 비교 (0) | 2020.05.12 |
장고 템플릿 변수와 자바 스크립트 (0) | 2020.05.12 |
SQL에서 무작위로 행을 선택하는 방법은 무엇입니까? (0) | 2020.05.11 |