Gỡ lỗi từ xa iOS


199

Với việc phát hành Chrome cho iOS gần đây, tôi đã tự hỏi làm thế nào để bạn bật gỡ lỗi từ xa cho Chrome iOS?

Cập nhật: Với việc phát hành iOS 6, giờ đây việc gỡ lỗi từ xa có thể được thực hiện với Safari .


2
Gỡ lỗi từ xa bây giờ có thể được thực hiện với Safari trên Mac. Nhưng nếu bạn đang phát triển trên Linux hoặc Windows, bạn vẫn phải sử dụng weinre (như đã nêu trong câu trả lời của gregers).
Sự mất trí 2/2/2015

3
Gỡ lỗi từ xa với Safari chỉ hỗ trợ Mobile Safari, không phải Chrome Chrome.
Matt Jensen

Câu trả lời:


111

Cập nhật:

Đây không phải là câu trả lời tốt nhất nữa, xin vui lòng làm theo lời khuyên của gregers .

Câu trả lời mới:

Sử dụng Weinre .

Câu trả lời cũ:

Bây giờ bạn có thể sử dụng Safari để gỡ lỗi từ xa. Nhưng nó yêu cầu iOS 6.

Dưới đây là bản dịch nhanh của http://html5-mobile.de/blog/ios6-remote-debugging-web-inspector

  1. Kết nối iDevice của bạn qua USB với máy Mac của bạn
  2. Mở Safari trên máy Mac của bạn và kích hoạt các công cụ dev
  3. Trên iDevice của bạn: đi tới cài đặt> safari> nâng cao và kích hoạt trình kiểm tra web
  4. Truy cập bất kỳ trang web nào với iDevice của bạn
  5. Trên máy Mac của bạn: Mở menu nhà phát triển và chọn trang web từ iDevice của bạn (ở trên Menu Safari hàng đầu)

Như Simons đã chỉ ra, người ta cần tắt trình duyệt riêng tư để làm cho việc gỡ lỗi từ xa hoạt động.

Cài đặt> Safari> Duyệt web riêng tư> TẮT


11
Đúng, tôi đã sử dụng cái này. Cuối cùng! Mặc dù phiên bản windows của Safari không có.
Hyangelo

5
Tôi hy vọng Chrome sẽ sớm bật tính năng tương tự để nó hoạt động trên tất cả các hệ điều hành.
F Lekschas

49
Vâng - chắc chắn sẽ rất tuyệt nếu điều này trả lời câu hỏi đã được hỏi!
Irene Knapp

4
Tắt trình duyệt riêng tư không còn là một yêu cầu.
Miles

3
Lý do Downvote: Câu hỏi yêu cầu Chrome không phải Safari.
NickG

230

Câu trả lời được chọn chỉ dành cho Safari. Hiện tại, không thể thực hiện gỡ lỗi từ xa thực sự trong Chrome trên iOS, nhưng như với hầu hết các trình duyệt di động, bạn có thể sử dụng WeInRe cho một số gỡ lỗi đơn giản. Thiết lập một chút công việc, nhưng cho phép bạn kiểm tra DOM, xem kiểu dáng, thay đổi DOM và chơi với bảng điều khiển.

nhập mô tả hình ảnh ở đây

Để thiết lập:

  • Cài đặt nodejs
  • npm install -g weinre
  • weinre --boundHost -all-
  • Mở http: // {wifi-ip-address}: 8080 / và sao chép mã tập lệnh đích
  • Dán thẻ script vào trang của bạn (hoặc sử dụng bookmarklet)
  • Nhấp vào liên kết đến giao diện người dùng gỡ lỗi máy khách (http: // {wifi-ip-address}: 8080 / client / # nặc danh)
  • Khi bạn nhận được một dòng màu xanh lá cây trong Khách hàng , trình duyệt được kết nối

Các bookmarklet là một chút rắc rối để cài đặt. Thật dễ dàng nếu bạn đã bật đồng bộ hóa dấu trang cho cả Chrome dành cho máy tính để bàn và thiết bị di động. Sao chép url bookmarklet từ máy chủ weinre cục bộ (giống như trên). Thật không may, nó không hoạt động vì nó không được mã hóa url đúng cách. Vì vậy, hãy mở bảng điều khiển JavaScript và nhập:

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

Bây giờ bạn sẽ có bookmarklet được mã hóa url trong clipboard của bạn. Dán nó vào một dấu trang mới dưới Dấu trang di động . Gọi nó là weinre hoặc một cái gì đó đơn giản để gõ. Nó nên được đồng bộ hóa với điện thoại di động của bạn khá nhanh, vì vậy hãy tải trang bạn muốn kiểm tra. Sau đó nhập tên dấu trang vào thanh url và bạn sẽ thấy bookmarklet dưới dạng gợi ý tự động hoàn thành. Nhấn vào đây để chạy mã bookmarklet :)

nhập mô tả hình ảnh ở đây


27
Đây là câu trả lời đúng duy nhất, tất cả những thứ khác liên quan đến Safari (đi bộ trong công viên)
Mars Robertson

2
Hướng dẫn rất hữu ích! Tôi sẽ chỉ thêm rằng, để cài đặt bookmarklet, thay vì thực hiện sao chép, bạn chỉ có thể kéo liên kết bookmarklet "weinre target debug" được cung cấp vào thanh công cụ bookmark của bạn (làm cho thanh công cụ hiển thị Ctrl-Shift-Bnếu nó không hiển thị).
Kai Carver

Tôi cần phải làm mới trình duyệt của mình sau khi cài đặt bookmarklet để nó hoạt động.
ooolala

npm install -g weinređã không làm việc cho tôi. Vì vậy, tôi đã phải chạy nó với phiên bản npm install -g weinre@2.0.0-pre-I0Z7U9OV. kiểm tra phiên bản mới nhất tại đây npmjs.com/package/weinre .
vinesh

1
FWIW, weinre hiện không hỗ trợ dom bóng - nó chỉ hiển thị các yếu tố cấp cao nhất và dom ánh sáng của chúng. Nó cũng không hoạt động cho dom râm ngoài các yếu tố cấp cao nhất và dom râm của họ (và cả dom ánh sáng nữa).
Max Waterman

52

Hiện tại, bạn không thể trực tiếp gỡ lỗi Chrome trên iOS. Nó sử dụng một uiWebView có thể hoạt động khác biệt so với Mobile Safari.

Bạn có một vài lựa chọn.

Tùy chọn 1: Gỡ lỗi từ xa Mobile Safari bằng trình kiểm tra của Safari. Nếu vấn đề của bạn tái tạo trong Mobile Safari, đây chắc chắn là cách tốt nhất để giải quyết. Trong thực tế, đi qua trình giả lập iOS thậm chí còn dễ dàng hơn.

Tùy chọn 2: Sử dụng Weinre cho trải nghiệm gỡ lỗi được làm mỏng . Weinre không có nhiều tính năng nhưng đôi khi nó đủ tốt.

Tùy chọn 3: Gỡ lỗi từ xa một uiWebView thích hợp có chức năng giống nhau.

Đây là cách tốt nhất để làm điều này. Bạn sẽ cần cài đặt XCode .

  1. Truy cập github.com/paulirish/iOS-WebView-App và "Tải xuống Zip" hoặc sao chép.
  2. Mở XCode, mở dự án hiện có và chọn dự án bạn vừa tải xuống.
  3. Mở WebViewAppDelegate.m và thay đổi urlStringthành URL bạn muốn kiểm tra.
  4. Chạy ứng dụng trong Trình mô phỏng iOS.
  5. Mở Safari, Mở Menu Phát triển , Chọn Trình mô phỏng iOS và chọn chế độ xem web của bạn.
  6. Safari Inspector sẽ kiểm tra uiWebView của bạn.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


7
Làm cách nào để kiểm tra iOS (iPhone / iPad) trên Windows bằng chrome? Có phương pháp nào cho việc đó không?
Surjith SM

@SurjithSM Câu trả lời này sẽ không giúp ích gì cho windows trong khi bạn không thể cài đặt XCode trên windows và tạo ứng dụng ios. Hãy thử điều này thay vì stackoverflow.com/a/22047495/1737158
Lukas Liesis

Tôi đã có kinh nghiệm với github.com/google/ios-webkit-debug-proxy , đây là công cụ tuyệt vời và hôm qua đã thử gỡ lỗi Google Chrome với Trình giả lập iOS - đó là trải nghiệm tuyệt vời nhất. Cảm ơn # 3
Oleg Andreyev

10

Theo hiểu biết của tôi, Google Chrome sử dụng UIWebView của iOS thay vì triển khai toàn bộ Chrome như đối tác Android.


1
Vâng, phát hiện ra rằng sau khi tôi đặt câu hỏi này. Đó là một sự xấu hổ cho táo thực sự. Tôi bỏ ngỏ câu hỏi này nếu có cơ hội ai đó tìm ra cách để làm điều đó.
Hyangelo

4

Nhiều bàn điều khiển từ xa hoạt động tốt. http://farjs.com là dự án của tôi và tôi đã có thể gỡ lỗi thành công các sự cố cụ thể cho Crome iOS và không xảy ra trong safari khi sử dụng nó. (và có lẽ tất cả các trình duyệt di động khác)

Vấn đề là việc tiêm mã gỡ lỗi hơi khó vì Chrome không cho phép bạn cài đặt bookmarklets.

Thay vào đó, bạn có thể mở một tab trên trang mà bạn sẽ gỡ lỗi và một tab khác trên farjs.com và sau đó nhấp vào "bookmarklet"

Sao chép mã JS của bookmarklet, quay lại tab đầu tiên, với trang cần được gỡ lỗi và dán mã bookmarklet vào thanh vị trí.

Bước cuối cùng là cuộn đến đầu thanh vị trí và thêm "javascript:", vì Chrome sẽ xóa nó.


4

Tôi đề nghị Vorlon , hoạt động như weinre. Tôi thích giao diện người dùng của Vorlon và nó hỗ trợ SSL , ứng dụng của tôi nằm trong HTTPS, tôi đã thử sử dụng ngrok, ghostlab và vorlon, chỉ có vorlon hoạt động tốt.


3

Tôi chưa thử, nhưng proxy gỡ lỗi WebKit iOS (ios_webkit_debug_proxy / iwdp) được cho là cho phép bạn gỡ lỗi UIWebView từ xa. Từ README.md

Ios_webkit_debug_proxy (còn gọi là iwdp) cho phép các nhà phát triển kiểm tra MobileSafari và UIWebViews trên các thiết bị iOS thực và giả lập thông qua Giao diện gỡ lỗi Chrome DevTools và Giao thức gỡ lỗi từ xa Chrome. Các yêu cầu DevTools được dịch sang các cuộc gọi dịch vụ Thanh tra web từ xa của Apple.


1
Hỗ trợ cho Chrome webview được triển khai trên lý thuyết thông qua: github.com/RemoteDebug/remoteebug-ios-webkit-ad CHƯƠNG được xây dựng trên proxy gỡ lỗi của bộ webkit iOS. Cho đến nay tôi đã hạn chế thành công với dự án đó, nhưng tôi hy vọng nó sẽ tốt hơn.
Matt Jensen

3

Vorlon.JS có thể được sử dụng để gỡ lỗi từ xa iOS hoặc bất kỳ ứng dụng khách nào khác.

  1. Chỉ cần cài đặt nó trên toàn cầu bằng cách sử dụng npm i -g vorlon
  2. Bắt đầu máy chủ bằng cách sử dụng vorlon
  3. Với máy chủ đang chạy, hãy mở http: // localhost: 1337 trong trình duyệt của bạn để xem bảng điều khiển Vorlon.JS
  4. Bước cuối cùng là kích hoạt Vorlon.JS bằng cách thêm thẻ script này vào ứng dụng của bạn:
    <script src="http://<yourExternalIP>:1337/vorlon.js"></script>
  5. Tất cả các máy khách được kết nối, ví dụ iPhone, Android sẽ có sẵn trong danh sách khách hàng trên bảng điều khiển Vorlon.JS nhập mô tả hình ảnh ở đây

Lưu ý rằng phương pháp này cũng có thể được sử dụng để gỡ lỗi các ứng dụng không chạy trên localhost bằng ngrok . Xem https://stackoverflow.com/a/45443203/2073920 để biết chi tiết.

Khước từ

Tôi chỉ là người dùng và tôi không liên kết với Vorlon.JS và ngrok


Tôi đã làm theo tất cả các bước nhưng triển vọng của iPhone của tôi không bị phát hiện trong VorlonJS đang chạy trên Mac
Amarjit Singh

2

Bạn cũng cần phải tắt 'Duyệt web riêng tư'.

Cài đặt> Safari> Duyệt web riêng tư> TẮT


không chắc chắn tại sao ppl downvote câu trả lời này. thực sự cần phải tắt trình duyệt riêng tư để cho phép gỡ lỗi từ xa.
mã hóa cơ sở

14
@basecode Bởi vì nó là một câu trả lời bổ sung mà nó nên có trong bình luận.
GusDeCooL

2
@GusDeCooL Tôi hiểu rồi, cảm ơn! Một bình luận của một downvoter giải thích điều này sẽ có ích.
mã cơ sở

0

Ngay cả tôi đang tìm kiếm tính năng tương tự, và cho đến ngày hôm nay, nó vẫn chưa được thực hiện. Tôi có thể nghĩ ra hai lựa chọn, tuy nhiên,

  1. Tôi nhận thấy rằng hành vi của Chrome và Safari khá giống nhau; Chrome thậm chí còn hỗ trợ Con quay hồi chuyển và các sự kiện liên quan khác được Safari hỗ trợ. Tôi hiện đang gỡ lỗi Ứng dụng web của mình bằng cách bật bảng điều khiển gỡ lỗi trên Safari (Thông qua cài đặt-> Safari)

  2. Đồng thời thử Adobe Shadow, cho phép gỡ lỗi / kiểm tra và Đồng bộ hóa từ xa.

HTH.


0

Adobe Edge Inspect ( https://creative.adobe.com/products/inspect ) là một cách khác để gỡ lỗi tất cả các thiết bị di động của bạn IOS và Android (mặc dù không có Windows Phone). Nó sử dụng weinre để kiểm tra / thay đổi DOM từ xa. Đây không phải là phương pháp nhanh nhất, nhưng nó hoạt động trên Windows.


Adobe Edge Inspect không còn được liệt kê trong Adobe Creative Cloud. Xem adobe.com/products/edge-inspect.html .
Ron Inbar

Đúng, tuy nhiên bạn vẫn có thể tải xuống với đăng ký hiện tại, mặc dù thực tế là nó không còn được phát triển. Xem cách thực hiện tại đây: helpx.adobe.com/creative-cloud/kb/ triệt
HumbleBeginnings

Tuy nhiên, ứng dụng iOS không còn khả dụng. Vẫn hoạt động trên Android, nhưng không còn iOS nữa: itunes.apple.com/app/id498621426
bg17aw


0

Tôi đang sử dụng remotebug-ios-webkit-adapter, hoạt động tốt với tôi với iOS và trình gỡ lỗi mở trong Chrome trên Windows 10.

Sẽ vui mừng nếu nó giúp một số Liên kết


0

Lưu ý: Tôi không có liên kết với những người sáng tạo Ghostlab Vanamco.

Điều quan trọng đối với tôi là có thể gỡ lỗi các sự cố cụ thể của Chrome, vì vậy tôi đã bắt đầu tìm ra thứ gì đó có thể giúp tôi với điều đó. Cuối cùng tôi đã vui vẻ ném tiền của mình vào Ghostlab 3 . Tôi có thể kiểm tra trình duyệt di động Chrome và Safari như thể tôi đang xem chúng trên máy tính để bàn của mình. Nó chỉ cho tôi một địa chỉ LAN để sử dụng cho mọi thiết bị tôi muốn gỡ lỗi. Mỗi ứng dụng sử dụng địa chỉ đó sẽ xuất hiện trong danh sách trong Ghostlab.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Rất khuyến khích.


-2

Mở Safari máy tính để bàn iOS

Phát triển -> Chế độ thiết kế đáp ứng

Nhấp vào "Khác" trong thiết bị

Dán cái này: Mozilla / 5.0 (iPad; CPU OS 10_2_1 như Mac OS X) AppleWebKit / 602.1.50 (KHTML, như Gecko) CriOS / 56.0.2924.79 Mobile / 14D27 Safari / 602.1

Sử dụng các công cụ kiểm tra Safari.


-3

Tuyên bố miễn trừ trách nhiệm: Tôi làm việc tại BrowserStack. [Xác nhận] rằng liệu có được phép đăng bài này không ( Tôi có thể đề xuất một sản phẩm của công ty đang làm việc không? )


Gỡ lỗi Safari trên iOS (hiện tại không dành cho Chrome, hãy đọc trước để biết thêm chi tiết.)

Làm thế nào điều này hoạt động?

  • Bạn cần bắt đầu phiên trên bất kỳ thiết bị thực nào (có trình giả lập nhưng bạn cần bắt đầu phiên trên thiết bị thực) trên BrowserStack, giả sử iPhone 6S - Safari / Chrome (chưa có devtools cho Chrome, nhưng đó là trên Lộ trình của chúng tôi)
  • Nhập URL
  • Bạn có thể kích hoạt DevTools để kiểm tra trang web được mở trên thiết bị từ xa BrowserStacks. Tôi đã chia sẻ màn hình cho cùng bên dưới.

Sử dụng DevTools với điện thoại thực

Di chuột qua các yếu tố, chỉnh sửa HTML, CSS giống như các trình duyệt devtools của trình duyệt máy tính để bàn.

DevTools trên điện thoại thực, gỡ lỗi các trang web đáp ứng.


Thực thi JavaScript trong điện thoại thực bằng DevTools

Chuyển sang Consoletab, thực thi mã JavaScript, kiểm tra console.log()đầu ra, v.v.

thực thi JavaScript trong điện thoại thực bằng cách sử dụng devtools


Tab mạng, kiểm tra các tiêu đề yêu cầu, phản hồi, v.v.

Tab mạng để kiểm tra yêu cầu


Hỗ trợ cho DevTools trên BrowserStack?

  • DevTools có sẵn trên:

    • Thiết bị thực - iOS - Safari (DevTools cho iOS Chrome nằm trong Lộ trình của chúng tôi)
    • Thiết bị thực - Android - Chrome (Hiện tại chỉ có Chrome trên thiết bị Android)
  • Trình duyệt máy khách cần phải là Chrome hoặc Firefox. Điều đó có nghĩa là bạn cần sử dụng trình duyệt Chrome hoặc Firefox trên MacOSX hoặc Windows để sử dụng DevTools của DeviceStack Real Device.

Lưu ý: Bạn cần mua gói để thử nghiệm trên tất cả các thiết bị thực, với tư cách là người dùng miễn phí, bạn sẽ nhận được một vài thiết bị Real Android (bao gồm máy tính bảng) và vài thiết bị Real iOS (bao gồm cả máy tính bảng). Ngoài ra, nhấn mạnh vào từ Real Devices vì chúng cũng cung cấp trình giả lập.

Chi tiết hơn về điều này, vui lòng tham khảo phần DevTools trên trang Tính năng di động .


3
Anh ta yêu cầu gỡ lỗi chrome trên iOS. Tôi là một khách hàng sử dụng trình duyệt và sở hữu máy Mac nên việc gỡ lỗi Safari trên iOS là có thể, nhưng chrome không có khả năng gỡ lỗi từ xa
fabs

@fabs Chúng tôi có điều đó trên lộ trình của chúng tôi. Ngoài ra, tôi đã đề cập rằng nó chỉ hoạt động trên Safari - thiết bị iOS và Chrome dành cho thiết bị Android :)
Ông Alien

Đối với các vấn đề về bố cục, đây không phải là vấn đề vì công cụ bố trí của cả hai trình duyệt là webkit. Kết hợp với tính năng Kiểm tra máy chủ cục bộ, điều này không yêu cầu bất kỳ thiết lập bổ sung nào để gỡ lỗi localhost.
Tim Vermaelen

1
Câu trả lời không giải quyết câu hỏi trong anyway. Mặc dù Browserstack cung cấp một dịch vụ tuyệt vời, nhưng câu trả lời này hoàn toàn lạc đề.
Matt Jensen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.