A partir do iOS 5, é possível fazer remote debug de qualquer aba aberta no Mobile Safari, através do famoso Inspector do Webkit no Desktop enquanto se navega no celular/emulador.
(tenho também um post sobre debug remoto no Chrome Mobile do Android)
Criei então um script bash que abre o emulador do iOS 5 e conecta o debugger nele via Safari. É bastante útil pra desenvolvimento Web mobile. Basta rodar o script no Mac após ter instalado o XCode mais novo que inclui o emulador do iOS 5.
Após rodar no terminal, abra o Mobile Safari dentro do emulador e navegue até a página que quer debugar. Depois, volte ao terminal e dê enter para o script continuar e capturar o debug. Ele vai abrir o Safari no seu Desktop com o Web Inspector.
#!/bin/bash
# Open iPhone Simulator on default location for XCode 4.3
open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.app
# Open mobile safari
echo Open mobile safari on emulator and press return
read
# Plug debug to MobileSafari.app
echo Debugging
MobileSafari_PID=$(ps x | grep "MobileSafari" | grep -v grep | awk '{ print $1 }')
if [ "$MobileSafari_PID" == "" ]; then
echo "Mobile Safari.app must be running in the Simulator to enable the remote inspector."
exit
else
cat <<EOM | gdb -quiet > /dev/null
attach $MobileSafari_PID
p (void *)[WebView _enableRemoteInspector]
detach
EOM
fi
# Open debugger in Safari.app
open -a /Applications/Safari.app http://localhost:9999
Há também um gist disponível com esse código. O código do gdb eu peguei nesse post aqui – lá você também vê como conectar o debug a um aparelho real com iOS, além do emulador.