Débogage à distance iOS

199

Avec la récente version de Chrome pour iOS, je me demandais comment activer le débogage à distance pour Chrome iOS?

Mise à jour: Avec la sortie d'iOS 6, le débogage à distance peut désormais être effectué avec Safari .

Hyangelo
la source
2
Le débogage à distance peut désormais être effectué avec Safari sur Mac. Mais si vous développez sous Linux ou Windows, vous devez toujours utiliser weinre (comme indiqué dans la réponse de gregers).
Dehalion
3
Le débogage à distance avec Safari prend uniquement en charge Mobile Safari, pas iOS Chrome.
Matt Jensen
Veuillez jeter un œil à medium.com/@nikoloza/…
Machado

Réponses:

111

Mettre à jour:

Ce n'est plus la meilleure réponse, veuillez suivre les conseils de Greger .

Nouvelle réponse:

Utilisez Weinre .

Ancienne réponse:

Vous pouvez maintenant utiliser Safari pour le débogage à distance. Mais cela nécessite iOS 6.

Voici une traduction rapide de http://html5-mobile.de/blog/ios6-remote-debugging-web-inspector

  1. Connectez votre iDevice via USB avec votre Mac
  2. Ouvrez Safari sur votre Mac et activez les outils de développement
  3. Sur votre iDevice: allez dans Paramètres> Safari> Avancé et activez l'inspecteur Web
  4. Accédez à n'importe quel site Web avec votre iDevice
  5. Sur votre Mac: ouvrez le menu développeur et choisissez le site dans votre iDevice (son en haut du menu Safari)

Comme l'a souligné Simons, il faut désactiver la navigation privée pour que le débogage à distance fonctionne.

Paramètres> Safari> Navigation privée> OFF

F Lekschas
la source
11
Oui, j'utilise déjà celui-ci. Finalement! Il craint cependant que la version Windows de Safari ne l'ait pas.
Hyangelo
5
J'espère que Chrome activera bientôt la même fonctionnalité, afin qu'elle fonctionne sur tous les systèmes d'exploitation.
F Lekschas
49
Oui, ce serait bien si cela répondait à la question posée!
Irene Knapp
4
Désactiver la navigation privée n'est plus obligatoire.
Miles
3
Raison du vote négatif: les questions demandent Chrome et non Safari.
NickG
230

La réponse sélectionnée est uniquement pour Safari. Pour le moment, il n'est pas possible de faire un véritable débogage à distance dans Chrome sur iOS, mais comme avec la plupart des navigateurs mobiles, vous pouvez utiliser WeInRe pour un débogage simple. C'est un peu difficile à configurer, mais vous permet d'inspecter le DOM, de voir le style, de changer de DOM et de jouer avec la console.

entrez la description de l'image ici

Installer:

  • Installer nodejs
  • npm install -g weinre
  • weinre --boundHost -all-
  • Ouvrez http: // {wifi-ip-address}: 8080 / et copiez le code de script cible
  • Collez la balise de script dans votre page (ou utilisez le bookmarklet)
  • Cliquez sur le lien vers l'interface utilisateur du client de débogage (http: // {wifi-ip-address}: 8080 / client / # anonyme)
  • Lorsque vous obtenez une ligne verte sous Clients, le navigateur est connecté

Le bookmarklet est un peu plus compliqué à installer. C'est plus simple si la synchronisation des signets est activée pour Chrome pour ordinateur de bureau et pour mobile. Copiez l'url du bookmarklet depuis le serveur weinre local (comme ci-dessus). Malheureusement, cela ne fonctionne pas car il n'est pas correctement encodé en URL. Alors ouvrez la console JavaScript et tapez:

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

Vous devriez maintenant avoir le bookmarklet encodé en URL dans votre presse-papiers. Collez-le dans un nouveau signet sous Signets mobiles . Appelez-le weinre ou quelque chose de simple à taper. Il devrait être synchronisé assez rapidement sur votre mobile, alors chargez la page que vous souhaitez inspecter. Tapez ensuite le nom du signet dans la barre d'URL et vous devriez voir le bookmarklet comme une suggestion de saisie semi-automatique. Cliquez dessus pour exécuter le code du bookmarklet :)

entrez la description de l'image ici

Gregers
la source
27
C'est la seule bonne réponse, toutes les autres concernent Safari (promenade dans un parc)
Mars Robertson
2
Instructions très utiles! Je vais simplement ajouter que, pour installer le bookmarklet, au lieu de faire la copie, vous pouvez simplement faire glisser le lien du bookmarklet fourni "weinre target debug" vers la barre d'outils de vos signets (rendez la barre d'outils visible Ctrl-Shift-Bsi elle n'est pas visible).
Kai Carver
J'avais besoin de rafraîchir mon navigateur après avoir installé le bookmarklet pour le faire fonctionner.
ooolala
npm install -g weinrene travaillait pas pour moi. J'ai donc dû l'exécuter avec la version npm install -g [email protected]. vérifiez la dernière version ici npmjs.com/package/weinre .
vinesh
1
FWIW, weinre ne prend actuellement pas en charge le shadow dom - il ne montre que les éléments de niveau supérieur et leur light dom. Cela ne fonctionne pas non plus pour les dom ombragés, à l'exception des éléments de haut niveau et de leur dom ombreux (et dom léger également).
Max Waterman du
52

Vous ne pouvez pas actuellement déboguer directement à distance Chrome sur iOS. Il utilise un uiWebView qui peut agir subtilement différemment de Mobile Safari.

Vous avez quelques options.

Option 1: Débogage à distance de Mobile Safari à l'aide de l'inspecteur de Safari. Si votre problème se reproduit dans Mobile Safari, c'est certainement la meilleure façon de procéder. En fait, passer par le simulateur iOS est encore plus facile.

Option 2: utilisez Weinre pour une expérience de débogage allégée . Weinre n'a pas beaucoup de fonctionnalités mais parfois c'est assez bon.

Option 3: Déboguer à distance une uiWebView appropriée qui fonctionne de la même manière.

Voici la meilleure façon de procéder. Vous devrez installer XCode .

  1. Accédez à github.com/paulirish/iOS-WebView-App et "Télécharger Zip" ou clonez.
  2. Ouvrez XCode, ouvrez un projet existant et choisissez le projet que vous venez de télécharger.
  3. Ouvrez WebViewAppDelegate.m et modifiez l' urlStringURL que vous souhaitez tester.
  4. Exécutez l'application dans le simulateur iOS.
  5. Ouvrez Safari, ouvrez le menu Développement , choisissez iOS Simulator et sélectionnez votre vue Web.
  6. Safari Inspector va maintenant inspecter votre uiWebView.

entrez la description de l'image ici

entrez la description de l'image ici

entrez la description de l'image ici

Paul Irish
la source
7
Comment inspecter iOS (iPhone / iPad) sous Windows en utilisant Chrome? Y a-t-il une méthode pour cela?
Surjith SM
@SurjithSM Cette réponse n'aidera pas avec Windows alors que vous ne pouvez pas installer XCode sur Windows et créer l'application ios. Essayez plutôt stackoverflow.com/a/22047495/1737158
Lukas Liesis
J'ai déjà eu une expérience avec github.com/google/ios-webkit-debug-proxy qui est un outil génial, et hier j'ai essayé de déboguer Google Chrome avec l'émulateur iOS - c'est l'expérience la plus géniale. Merci pour # 3
Oleg Andreyev
10

D'après ma compréhension, Google Chrome utilise l'UIWebView d'iOS plutôt qu'une implémentation complète de Chrome comme son homologue Android.

Stephan Leroux
la source
1
Oui, je l'ai découvert après avoir posé cette question. C'est vraiment dommage pour Apple. On me laisse cette question ouverte au cas où quelqu'un trouverait un moyen de le faire.
Hyangelo
4

De nombreuses consoles distantes fonctionnent bien. http://farjs.com est mon projet, et j'ai réussi à déboguer des problèmes spécifiques à Crome iOS et ne se produisant pas en safari en l'utilisant. (et probablement tous les autres navigateurs mobiles)

Le problème est que l'injection du code de débogage est légèrement délicate car Chrome ne vous permet pas d'installer des bookmarklets.

Au lieu de cela, vous pouvez ouvrir un onglet sur la page que vous souhaitez déboguer et un autre sur farjs.com, puis cliquer sur "le bookmarklet"

Copiez le code JS du bookmarklet, revenez au premier onglet, avec la page à déboguer, et collez le code du bookmarklet dans la barre d'emplacement.

La dernière étape consiste à faire défiler jusqu'au début de la barre d'emplacement et à ajouter "javascript:", car Chrome le supprimera.

BlueStory
la source
4

Je recommande Vorlon , fonctionne comme weinre. J'aime l'interface utilisateur de Vorlon et elle prend en charge SSL , mon application est en HTTPS, j'ai essayé weinre avec ngrok, ghostlab et vorlon, seul le vorlon fonctionne bien.

Tina Chen
la source
3

Je ne l'ai pas essayé, mais le proxy de débogage iOS WebKit (ios_webkit_debug_proxy / iwdp) vous permet soi-disant de déboguer à distance UIWebView. Depuis le README.md

Ios_webkit_debug_proxy (alias iwdp) permet aux développeurs d'inspecter MobileSafari et UIWebViews sur des appareils iOS réels et simulés via l'interface utilisateur Chrome DevTools et le protocole de débogage à distance Chrome. Les demandes DevTools sont traduites en appels de service Remote Web Inspector d'Apple.

jiku
la source
1
La prise en charge de la vue Web Chrome est théoriquement implémentée via: github.com/RemoteDebug/remotedebug-ios-webkit-adapter qui est construit sur le proxy de débogage de webkit iOS. Jusqu'à présent, j'ai eu un succès limité avec ce projet, mais je m'attends à ce qu'il s'améliore.
Matt Jensen
3

Vorlon.JS peut être utilisé pour le débogage à distance d'iOS ou de tout autre client.

  1. Il suffit de l'installer globalement en utilisant npm i -g vorlon
  2. Démarrer le serveur en utilisant vorlon
  3. Lorsque le serveur est en cours d'exécution, ouvrez http: // localhost: 1337 dans votre navigateur pour afficher le tableau de bord Vorlon.JS
  4. La dernière étape consiste à activer Vorlon.JS en ajoutant cette balise de script à votre application:
    <script src="http://<yourExternalIP>:1337/vorlon.js"></script>
  5. Tous les clients connectés, par exemple iPhone, Android deviendront disponibles dans la liste des clients sur le tableau de bord Vorlon.JS entrez la description de l'image ici

Notez que cette approche peut également être utilisée pour déboguer des applications qui ne s'exécutent pas sur localhost à l'aide de ngrok . Voir https://stackoverflow.com/a/45443203/2073920 pour plus de détails.

Avertissement

Je suis juste un utilisateur et je ne suis pas affilié à Vorlon.JS et ngrok

Abdul Rauf
la source
J'ai suivi toutes les étapes mais les perspectives de mon iPhone ne sont pas détectées dans le VorlonJS fonctionnant sur Mac
Amarjit Singh
2

Vous devez également désactiver la «navigation privée».

Paramètres> Safari> Navigation privée> OFF

Simon Owen Design
la source
Je ne sais pas pourquoi ppl downvote cette réponse. la navigation privée doit en effet être désactivée pour permettre le débogage à distance.
code de base
14
@basecode Parce que c'est une réponse complémentaire qu'elle devrait être dans le commentaire.
GusDeCooL
2
@GusDeCooL Je vois, merci! Un commentaire d'un électeur qui explique cela aurait été utile.
code de base
0

Même moi, je recherche la même fonctionnalité, et à ce jour, elle n'a pas encore été implémentée. Je peux penser à deux options cependant,

  1. J'ai remarqué que le comportement de Chrome et de Safari est assez identique; Chrome prend même en charge le Gyroscope et d'autres événements connexes pris en charge par Safari. Je débogue actuellement mon application Web en activant la console de débogage sur Safari (via Paramètres-> Safari)

  2. Essayez également Adobe Shadow, qui permet le débogage / inspection à distance et la synchronisation.

HTH.

vigne
la source
0

Adobe Edge Inspect ( https://creative.adobe.com/products/inspect ) est une autre façon de déboguer tous vos appareils mobiles IOS et Android (pas de Windows Phone cependant). Il utilise weinre pour l'inspection / le changement de DOM à distance. Ce n'est pas la méthode la plus rapide, mais elle fonctionne sous Windows.

Peter Sinke
la source
Adobe Edge Inspect n'est plus répertorié dans Adobe Creative Cloud. Voir adobe.com/products/edge-inspect.html .
Ron Inbar
Certes, vous pouvez toujours le télécharger avec un abonnement en cours, bien qu'il ne soit plus en cours de développement. Voyez comment le faire ici: helpx.adobe.com/creative-cloud/kb/…
HumbleBeginnings
Cependant, l'application iOS n'est plus disponible. Fonctionne
bg17aw
0

Il existe un bogue ouvert sur Chromium: https://bugs.chromium.org/p/chromium/issues/detail?id=584905

Malheureusement , ils dépendent d' Apple d'ouvrir une API dans WKView pour que cela se produise, après quoi peut - être le débogage sera disponible à partir de Safari.

Noam Rosenthal
la source
0

J'utilise l'adaptateur remotedebug-ios-webkit, fonctionne bien pour moi avec IOS et le débogueur ouvert dans Chrome sur Windows 10.

Sera heureux si cela aide quelqu'un Lien

Beny
la source
0

Remarque: je n'ai aucune affiliation avec les créateurs de Ghostlab Vanamco.

Il était important pour moi de pouvoir déboguer des problèmes spécifiques à Chrome, alors j'ai décidé de trouver quelque chose qui pourrait m'aider. J'ai fini par jeter mon argent avec joie sur Ghostlab 3 . Je peux tester les navigateurs mobiles Chrome et Safari comme si je les consultais sur mon bureau. Cela me donne juste une adresse LAN à utiliser pour n'importe quel appareil que je voudrais déboguer. Chaque application utilisant cette adresse apparaîtra dans la liste dans Ghostlab.

entrez la description de l'image ici

entrez la description de l'image ici

Hautement recommandé.

Brandon Durham
la source
-2

Ouvrez Safari Desktop iOS

Développer -> Mode de conception réactif

Cliquez sur "Autre" sous l'appareil

Collez ceci: Mozilla / 5.0 (iPad; CPU OS 10_2_1 comme Mac OS X) AppleWebKit / 602.1.50 (KHTML, comme Gecko) CriOS / 56.0.2924.79 Mobile / 14D27 Safari / 602.1

Utilisez les outils d'inspection de Safari.

user3521314
la source
-3

Avertissement: je travaille chez BrowserStack. [Confirmé] que si je suis autorisé à publier ceci ( Puis-je suggérer un produit de la société sur lequel je travaille? )


Debug Safari sur iOS (pas pour Chrome à partir de maintenant, lisez à l'avance pour plus de détails.)

Comment ça marche?

  • Vous devez démarrer une session sur n'importe quel appareil réel (il y a des émulateurs mais vous devez démarrer une session sur un appareil réel) sur BrowserStack, par exemple iPhone 6S - Safari / Chrome (pas encore de devtools pour Chrome, mais c'est sur notre feuille de route)
  • Tapez l'URL
  • Vous pouvez déclencher DevTools pour inspecter la page Web ouverte sur le périphérique distant BrowserStacks. J'ai partagé les écrans pour les mêmes ci-dessous.

Utilisation de DevTools avec de vrais téléphones

Passez la souris sur les éléments, modifiez HTML, CSS comme le font les devtools du navigateur de bureau.

DevTools sur de vrais téléphones, débogage de sites Web réactifs.


Exécuter JavaScript dans un vrai téléphone à l'aide de DevTools

Basculez vers l' Consoleonglet, exécutez le code JavaScript, vérifiez la console.log()sortie, etc.

exécuter JavaScript dans de vrais téléphones à l'aide de devtools


Onglet Réseau, vérifiez les en-têtes de demande, la réponse, etc.

Onglet Réseau pour vérifier les demandes


Prise en charge de DevTools sur BrowserStack?

  • Les DevTools sont disponibles sur:

    • Appareils réels - iOS - Safari (DevTools pour iOS Chrome est sur notre feuille de route)
    • Appareils réels - Android - Chrome (seul Chrome est disponible sur les appareils Android pour l'instant)
  • Le navigateur client doit être Chrome ou Firefox. Cela signifie que vous devez utiliser le navigateur Chrome ou Firefox sur MacOSX ou Windows pour utiliser BrowserStack Real Device DevTools.

Remarque: vous devez acheter un plan pour tester sur tous les appareils réels, en tant qu'utilisateur gratuit, vous obtiendrez quelques appareils Real Android (comprend les tablettes) et quelques appareils Real iOS (comprend les tablettes). Aussi, en insistant sur le mot Real Devices car ils fournissent également des émulateurs.

Plus de détails à ce sujet, veuillez vous référer à la section DevTools sur la page des fonctionnalités mobiles .

Alien
la source
3
Il a demandé le débogage de Chrome sur iOS. Je suis un client Browserstack et possède un Mac, donc le débogage de Safari sur iOS est possible, mais Chrome a du mal à être débogable à distance
Fabs
@fabs Nous l'avons sur notre feuille de route. De plus, j'ai mentionné que cela ne fonctionne que sur Safari - appareils iOS et Chrome pour les appareils Android :)
M. Alien
Pour les problèmes de mise en page, cela ne devrait pas être un problème car le moteur de mise en page des deux navigateurs est le webkit. Combiné avec la fonctionnalité de test du serveur local, cela ne nécessite aucune configuration supplémentaire pour déboguer localhost.
Tim Vermaelen
1
La réponse ne répond en aucun cas à la question. Bien que Browserstack fournisse un excellent service, cette réponse est complètement hors sujet.
Matt Jensen