2012-06-26 15 views
9

Come si esegue il debug di javascript in Xcode?iOS PhoneGap debug Flusso di lavoro

Una cosa che posso fare è aprire la pagina nel browser OS X Chrome, ma naturalmente non funzionerà per il flusso di applicazioni che coinvolgono codice nativo. C'è un trucco Xcode intelligente che mi manca.

+0

L'unica cosa che mi viene in mente è quello di inviare messaggi di registrazione da Javascript via PhoneGap alla console Xcode. Oltre a questo, non penso che ci sia un altro modo per eseguire il debug di Javascript sul dispositivo. – nhahtdh

+0

Sì, console.log è tuo amico :-). L'utilizzo di Chrome è la soluzione migliore per far funzionare il tuo JS e quindi aggiungere la funzionalità nativa – codemonkey

+0

Apple ha recentemente aggiunto il debug del dispositivo mobile remoto a Safari web inspector. Questo è un grande passo avanti nel debug delle app iOS PhoneGap. (vedi la mia risposta di seguito) –

risposta

1

Provare a utilizzare weinre è uno strumento davvero valido per eseguire il debug di applicazioni javascript su dispositivi mobili.

http://people.apache.org/~pmuellr/weinre/docs/latest/

Anche se sarà ancora in grado di eseguire il debug lo script step-by-step in quanto dà sul desktop, ma dà molti più dettagli di Xcode (~ per javascript).

16

Con il rilascio di iOS 6, Apple ha rilasciato Web Inspector remoto per Safari Mobile in combinazione con Mac Safari 6, e questo è enorme. Fondamentalmente hai tutte le funzionalità e la potenza di Web Inspector in Safari standard, per le tue app mobili, incluse le app PhoneGap. Ho usato weinre e questo lo rende obsoleto per le versioni più recenti di iOS (ma non per le vecchie versioni di iOS, dispositivi non iOS come Android o se sei su Windows).

Ecco come funziona (richiede un Mac, sia xCode 4.5+ l'esecuzione di un 6+ simulatore iOS o un dispositivo iOS 6+ e Safari 6 sul vostro Mac):

nel dispositivo simulatore di iOS o ios , apri le impostazioni -> Safari -> Avanzate -> Web Inspector -> (attiva). (questo è attivo per impostazione predefinita nel simulatore, ma vale la pena controllare)

In Safari, dopo aver avviato l'app phoneGap/cordova e aver caricato &, accedi a iPhone Simulator o al tuo dispositivo dal menu Sviluppo. Puoi abilitare il menu Sviluppo nelle Preferenze avanzate di Safari, se non lo sono già.

Più discussione in fondo: http://www.mobilexweb.com/blog/iphone-5-ios-6-html5-developers

(anche, se si legge su un "interfaccia privata segreta" da qualche parte, questo non funziona più.)

+1

Come posso eseguire il debug del processo di caricamento? Quando riesco ad aprire l'ispettore, l'app è già caricata, quindi non è possibile impostare i punti di interruzione nel codice di caricamento. Qualche idea? – blurrcat

+1

@blurrcat Scusa se sono stato fuori da SO per un po '. Quello che descrivi è un limite di ciò, e ho già avuto questa sfida in passato. Per quanto mi riguarda, sembra che due cose possano aver funzionato: sono stato in grado di aggiungere un alert() prima del codice di inizializzazione, che in pratica ha interrotto l'esecuzione fino a quando non ho fatto clic su OK. O aggiungendo un wrapper setTimeout (...) alla mia funzione di inizializzazione mentre stavo eseguendo il debug. Spero che questo aiuti –

+0

Sì avviso()! Sei un genio! – blurrcat