Debug remoto iOS


199

Con la recente versione di Chrome per iOS, mi chiedevo come abilitare il debug remoto per Chrome iOS?

Aggiornamento: con il rilascio di iOS 6, ora è possibile eseguire il debug remoto con Safari .


2
Il debug remoto ora può essere eseguito con Safari su Mac. Ma se stai sviluppando su Linux o Windows devi comunque usare weinre (come indicato nella risposta di Gregers).
Dehalion,

3
Il debug remoto con Safari supporta solo Safari per dispositivi mobili, non iOS Chrome.
Matt Jensen,

Risposte:


111

Aggiornare:

Questa non è più la risposta migliore, segui i consigli di Gregers .

Nuova risposta:

Usa Weinre .

Vecchia risposta:

Ora puoi utilizzare Safari per il debug remoto. Ma richiede iOS 6.

Ecco una rapida traduzione di http://html5-mobile.de/blog/ios6-remote-debugging-web-inspector

  1. Collega iDevice tramite USB al tuo Mac
  2. Apri Safari sul tuo Mac e attiva gli strumenti di sviluppo
  3. Sul tuo iDevice: vai su Impostazioni> Safari> Avanzate e attiva la finestra di ispezione web
  4. Vai a qualsiasi sito Web con il tuo iDevice
  5. Sul tuo Mac: apri il menu sviluppatore e scegli il sito dal tuo iDevice (si trova nel menu Safari in alto)

Come sottolineato dalla risposta di Simons, è necessario disattivare la navigazione privata per far funzionare il debug remoto.

Impostazioni> Safari> Navigazione privata> OFF


11
Sì, sto già usando questo. Finalmente! Fa schifo che la versione Windows di Safari non ce l'abbia però.
Hyangelo,

5
Spero che Chrome abiliti presto la stessa funzione, in modo che funzioni su tutti i sistemi operativi.
F Lekschas,

49
Sì, sarebbe bello se questo rispondesse alla domanda che è stata posta!
Irene Knapp,

4
La disattivazione della navigazione privata non è più un requisito.
Miglia,

3
Motivo del downvote: domande che richiedono Chrome, non Safari.
NickG,

230

La risposta selezionata è solo per Safari. Al momento non è possibile eseguire il debug remoto reale in Chrome su iOS, ma come con la maggior parte dei browser mobili è possibile utilizzare WeInRe per un semplice debug. È un po 'complicato da configurare, ma ti consente di ispezionare il DOM, vedere lo stile, cambiare il DOM e giocare con la console.

inserisci qui la descrizione dell'immagine

Impostare:

  • Installa nodejs
  • npm install -g weinre
  • weinre --boundHost -all-
  • Apri http: // {wifi-ip-address}: 8080 / e copia il codice dello script di destinazione
  • Incolla il tag dello script nella tua pagina (o usa il bookmarklet)
  • Fare clic sul collegamento all'interfaccia utente del client di debug (http: // {wifi-ip-address}: 8080 / client / # anonimo)
  • Quando viene visualizzata una linea verde in Client, il browser è connesso

Il bookmarklet è un po 'più una seccatura da installare. È più semplice se hai attivato la sincronizzazione dei segnalibri per Chrome desktop e mobile. Copia l'URL del bookmarklet dal server weinre locale (come sopra). Sfortunatamente non funziona perché non è codificato correttamente nell'URL. Quindi apri la console JavaScript e digita:

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

Ora dovresti avere il bookmarklet con codifica URL negli appunti. Incollalo in un nuovo segnalibro in Segnalibri per dispositivi mobili . Chiamalo weinre o qualcosa di semplice da digitare. Dovrebbe essere sincronizzato con il tuo cellulare abbastanza velocemente, quindi carica la pagina che vuoi controllare. Quindi digita il nome del segnalibro nella barra dell'URL e dovresti vedere il bookmarklet come un suggerimento di completamento automatico. Fare clic per eseguire il codice bookmarklet :)

inserisci qui la descrizione dell'immagine


27
Questa è l'unica risposta corretta, tutte le altre riguardano Safari (passeggiata in un parco)
Mars Robertson

2
Istruzioni molto utili! Aggiungo solo che, per installare il bookmarklet, invece di fare la copia, puoi semplicemente trascinare il link del bookmarklet "weinre target debug" fornito sulla barra degli strumenti dei tuoi segnalibri (rendi visibile la barra degli strumenti Ctrl-Shift-Bse non è visibile).
Kai Carver,

Ho dovuto aggiornare il mio browser dopo aver installato il bookmarklet per farlo funzionare.
Ooolala,

npm install -g weinrenon funzionava per me. Quindi ho dovuto eseguirlo con la versione npm install -g weinre@2.0.0-pre-I0Z7U9OV. controlla l'ultima versione qui npmjs.com/package/weinre .
Vinesh

1
FWIW, weinre al momento non supporta Shadow Dom: mostra solo gli elementi di livello superiore e il loro dom leggero. Inoltre non funziona per il dom ombreggiato a parte gli elementi di livello superiore e il loro dom ombreggiato (e anche dom leggero).
Max Waterman,

52

Al momento non è possibile eseguire direttamente il debug remoto di Chrome su iOS. Utilizza un uiWebView che può agire in modo leggermente diverso da Mobile Safari.

Hai alcune opzioni.

Opzione 1: Safari mobile di debug remoto tramite l'ispettore Safari. Se il tuo problema si riproduce in Safari per dispositivi mobili, questo è sicuramente il modo migliore per procedere. In effetti, passare attraverso il simulatore iOS è ancora più semplice.

Opzione 2: utilizzare Weinre per un'esperienza di debug ridotta . Weinre non ha molte funzionalità ma a volte è abbastanza buono.

Opzione 3: eseguire il debug remoto di uiWebView corretto che funziona allo stesso modo.

Ecco il modo migliore per farlo. Dovrai installare XCode .

  1. Vai su github.com/paulirish/iOS-WebView-App e "Download Zip" o clone.
  2. Apri XCode, apri progetto esistente e scegli il progetto che hai appena scaricato.
  3. Apri WebViewAppDelegate.m e modifica urlStringl'URL che desideri testare.
  4. Esegui l'app nel simulatore iOS.
  5. Apri Safari, apri il menu Sviluppo , scegli iOS Simulator e seleziona la tua visualizzazione web.
  6. Safari Inspector ora ispezionerà il tuo uiWebView.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


7
Come ispezionare iOS (iPhone / iPad) su Windows usando Chrome? Esiste un metodo per questo?
Surjith SM

@SurjithSM Questa risposta non aiuterà con Windows mentre non è possibile installare XCode su Windows e creare l'app iOS. Prova a modificare la stackoverflow.com/a/22047495/1737158
Lukas Liesis

Ho già avuto esperienza con github.com/google/ios-webkit-debug-proxy, che è uno strumento fantastico, e ieri ho provato a eseguire il debug di Google Chrome con l'emulatore iOS - è l'esperienza più fantastica. Grazie per # 3
Oleg Andreyev il

10

Da quanto ho capito, Google Chrome utilizza UIWebView di iOS anziché un'implementazione completa di Chrome come la controparte Android.


1
Sì, l'ho scoperto dopo che ho posto questa domanda. È davvero un peccato per Apple. Ho lasciato questa domanda aperta sulla possibilità che qualcuno abbia trovato un modo per farlo.
Hyangelo,

4

Molte console remote funzionano bene. http://farjs.com è il mio progetto e sono stato in grado di eseguire correttamente il debug di problemi specifici di Crome iOS e non accadere in Safari utilizzandolo. (e probabilmente tutti gli altri browser mobili)

Il problema è che l'iniezione del codice di debug è leggermente complicata poiché Chrome non ti consente di installare bookmarklet.

Invece è possibile aprire una scheda nella pagina che si dovrebbe eseguire il debug e un'altra su farjs.com e quindi fare clic su "il bookmarklet"

Copia il codice JS del bookmarklet, torna alla prima scheda, con la pagina da debuggare e incolla il codice del bookmarklet nella barra degli indirizzi.

L'ultimo passaggio è scorrere fino all'inizio della barra degli indirizzi e aggiungere "javascript:", poiché Chrome lo rimuoverà.


4

Raccomando Vorlon , funziona come weinre. Mi piace l'interfaccia utente di Vorlon e supporta SSL , la mia applicazione è in HTTPS, ho provato weinre con ngrok, ghostlab e vorlon, solo vorlon funziona bene.


3

Non l'ho provato, ma il proxy di debug di iOS WebKit (ios_webkit_debug_proxy / iwdp) presumibilmente ti consente di eseguire il debug in remoto di UIWebView. Da README.md

Ios_webkit_debug_proxy (aka iwdp) consente agli sviluppatori di ispezionare MobileSafari e UIWebViews su dispositivi iOS reali e simulati tramite l'interfaccia utente di DevTools di Chrome e il protocollo di debug remoto di Chrome. Le richieste di DevTools vengono tradotte nelle chiamate di servizio di Remote Web Inspector di Apple.


1
Il supporto per la webview di Chrome è teoricamente implementato tramite: github.com/RemoteDebug/remotedebug-ios-webkit-adapter che si basa sul proxy di debug di webkit iOS. Finora ho avuto un successo limitato con quel progetto, ma mi aspetto che migliorerà.
Matt Jensen,

3

Vorlon.JS può essere utilizzato per il debug remoto di iOS o di qualsiasi altro client.

  1. Basta installarlo a livello globale utilizzando npm i -g vorlon
  2. Avviare il server utilizzando vorlon
  3. Con il server in esecuzione, apri http: // localhost: 1337 nel browser per visualizzare la dashboard di Vorlon.JS
  4. L'ultimo passaggio è abilitare Vorlon.JS aggiungendo questo tag di script alla tua app:
    <script src="http://<yourExternalIP>:1337/vorlon.js"></script>
  5. Tutti i client connessi, ad esempio iPhone e Android, saranno disponibili nell'elenco dei client sulla dashboard di Vorlon.JS inserisci qui la descrizione dell'immagine

Si noti che questo approccio può essere utilizzato anche per eseguire il debug di app non in esecuzione su localhost utilizzando ngrok . Vedi https://stackoverflow.com/a/45443203/2073920 per i dettagli.

disconoscimento

Sono solo un utente e non sono affiliato con Vorlon.JS e ngrok


Ho seguito tutti i passaggi ma l'outlook del mio iPhone non viene rilevato nel VorlonJS in esecuzione su Mac
Amarjit Singh,

2

Devi anche disattivare 'Navigazione privata'.

Impostazioni> Safari> Navigazione privata> OFF


non sono sicuro del motivo per cui ppl ha votato in negativo questa risposta. la navigazione privata deve infatti essere disattivata per consentire il debug remoto.
codice di base

14
@basecode Perché è una risposta complementare che dovrebbe essere nel commento.
GusDeCooL

2
@GusDeCooL Capisco, grazie! Un commento di un downvoter che spiega questo sarebbe stato utile.
codice di base

0

Anche io sto cercando la stessa funzionalità e, ad oggi, deve ancora essere implementato. Posso pensare a due opzioni, tuttavia,

  1. Ho notato che il comportamento di Chrome e Safari è abbastanza identico; Chrome supporta persino il giroscopio e altri eventi correlati che sono supportati da Safari. Attualmente sto eseguendo il debug della mia app Web abilitando la console di debug su Safari (tramite Impostazioni-> Safari)

  2. Prova anche Adobe Shadow, che consente il debug / ispezione e sincronizzazione remoti.

HTH.


0

Adobe Edge Inspect ( https://creative.adobe.com/products/inspect ) è un altro modo per eseguire il debug di tutti i dispositivi mobili IOS e Android (senza Windows Phone). Utilizza weinre per l'ispezione / modifica del DOM remoto. Non è il metodo più veloce, ma funziona su Windows.


Adobe Edge Inspect non è più elencato in Adobe Creative Cloud. Vedi adobe.com/products/edge-inspect.html .
Ron Inbar,

È vero, tuttavia puoi comunque scaricarlo con un abbonamento corrente, nonostante non sia più in fase di sviluppo. Scopri come farlo qui: helpx.adobe.com/creative-cloud/kb/…
HumbleBeginnings

Tuttavia, l'app per iOS non è più disponibile.
Funziona


0

Sto usando remotedebug-ios-webkit-adapter, funziona bene con IOS e debugger aperto in Chrome su Windows 10.

Sarà contento se aiuta qualcuno Link


0

Nota: non ho alcuna affiliazione con i creatori di Ghostlab Vanamco.

È stato importante per me essere in grado di eseguire il debug di problemi specifici di Chrome, quindi ho deciso di trovare qualcosa che potesse aiutarmi in questo. Ho finito per buttare felicemente i miei soldi su Ghostlab 3 . Posso testare i browser mobili Chrome e Safari come se li stessi visualizzando sul mio desktop. Mi dà solo un indirizzo LAN da utilizzare per qualsiasi dispositivo che vorrei eseguire il debug. Ogni applicazione che utilizza quell'indirizzo apparirà nell'elenco in Ghostlab.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Altamente raccomandato.


-2

Apri Safari Desktop iOS

Sviluppa -> Modalità progettazione reattiva

Fai clic su "Altro" sotto il dispositivo

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

Utilizza gli strumenti di ispezione di Safari.


-3

Disclaimer: lavoro su BrowserStack. [Confermato] che sia autorizzato a pubblicare questo messaggio ( posso suggerire un prodotto dell'azienda a cui sto lavorando? )


Debug Safari su iOS (non per Chrome al momento, leggi in avanti per maggiori dettagli.)

Come funziona?

  • Devi avviare una sessione su qualsiasi dispositivo reale (ci sono emulatori ma devi avviare una sessione su un dispositivo reale) su BrowserStack, ad esempio iPhone 6S - Safari / Chrome (non ci sono ancora devtools per Chrome, ma è sulla nostra Roadmap)
  • Digita l'URL
  • È possibile attivare DevTools per ispezionare la pagina Web aperta sul dispositivo remoto BrowserStacks. Ho condiviso gli schermi per lo stesso di seguito.

Utilizzo di DevTools con telefoni reali

Passa il mouse sopra gli elementi, modifica HTML, CSS proprio come funzionano gli devtools del browser desktop.

DevTools su telefoni reali, debug di siti Web responsive.


Esecuzione di JavaScript nel telefono reale utilizzando DevTools

Passa alla Consolescheda, esegui il codice JavaScript, controlla l' console.log()output e così via ...

eseguire JavaScript nei telefoni reali utilizzando devtools


Scheda Rete, controlla intestazioni richiesta, risposta e così via ...

Scheda Rete per verificare le richieste


Supporto per DevTools su BrowserStack?

  • DevTools è disponibile su:

    • Dispositivi reali - iOS - Safari (DevTools per iOS Chrome è sulla nostra tabella di marcia)
    • Dispositivi reali - Android - Chrome (per ora è disponibile solo Chrome sui dispositivi Android)
  • Il browser del client deve essere Chrome o Firefox. Ciò significa che è necessario utilizzare il browser Chrome o Firefox su MacOSX o Windows per utilizzare DevTools dispositivo reale BrowserStack.

Nota: è necessario acquistare un piano per testare su tutti i dispositivi reali, in quanto utente gratuito, otterrai un paio di dispositivi Real Android (inclusi i tablet) e un paio di dispositivi Real iOS (inclusi i tablet). Inoltre, enfatizzando la parola Dispositivi reali perché forniscono anche emulatori.

Maggiori dettagli al riguardo, fare riferimento alla sezione DevTools nella pagina Funzioni mobili .


3
Ha chiesto il debug di Chrome su iOS. Sono un cliente di browser e possiedo un Mac, quindi è possibile eseguire il debug di Safari su iOS, ma Chrome non è in grado di eseguire il debug in remoto
fabs

@fabs Lo abbiamo sulla nostra tabella di marcia. Inoltre, ho detto che funziona solo su Safari - dispositivi iOS e Chrome per dispositivi Android :)
Mr. Alien

Per problemi di layout, questo non dovrebbe essere un problema in quanto il motore di layout di entrambi i browser è webkit. In combinazione con la funzionalità di test del server locale , ciò non richiede alcuna configurazione aggiuntiva per il debug di localhost.
Tim Vermaelen,

1
La risposta non affronta comunque la domanda. Mentre Browserstack offre un ottimo servizio, questa risposta è completamente fuori tema.
Matt Jensen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.