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.
Se você tiver iOS 6 em diante, o processo é extremamente simples, bastando ter o Safari mais recente instalado no Mac. Antes, você precisa habilitar essa função no seu aparelho (ou no emulador). Vá em Ajustes > Safari > Avançado e marque a opção Inspetor Web:
Agora abra o Safari no Mac e vá nas Preferências > Avançado e marque a opção para mostrar o menu Develop no menu. Por fim, basta conectar o cabo USB no aparelho e no computador (ou só abrir o emulador). Para abrir o inspetor, vá no Safari do Desktop em Develop e deve aparecer seu aparelho/emulador listado, dando acesso a todas as abas abertas.
(tenho também um post sobre debug remoto no Chrome Mobile do Android)
iOS 5
No iOS 5, o debug já existe mas é um pouco mais complicado, exigindo comandos mais complexos.
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.
Se você precisa debugar uma versão mais antiga do iOS ou não tem um Mac a disposição, recomendo testar as ferramentas Adobe Edge Inspect e Weinre.
Atualização Ago/2013: Adicionei informações sobre iOS 6.