1unitedpower: iOS Safari debuggen mit Visual Studio Code

Meine Agentur hat vor kurzem ihre alten Macs durch neue PCs ersetzt. An einen Punkt hatte dabei vorher niemand gedacht: Man kann mit PCs keinen iOS Safari debuggen. Mit dem neuen Visual Studio Code soll das nun kein Problem mehr sein. https://code.visualstudio.com/blogs/2016/08/22/introducing-ios-web-debugging-for-vs-code-on-windows-and-mac

  1. Hi,

    vielleicht interressiert es ja jemanden, dafür braucht es nicht unbedingt VS Code. Die setzen, ebenso wie Mozilla Valence auf den webkit-debug-proxy auf. Das funktioniert auch unter Linux. Das ist sozusagen das Backend für's remote debugging Protokoll und ein Proxy (übrigens von einem Google Mitarbeiter geschrieben :).

    Safari und Chrome setzen beide auf Webkit auf. Demnach benutzen sie sehr ähnliche Protokolle. Nur hat sich Apple dazu entschlossen die Daten in einem binären Format zu übertragen. Sonst wäre das Debuggen sehr viel einfacher, denn man könnte wahrscheinlich mit einem kleinen Hack alle iOS-Geräte auf Chrome debuggen.

    Neben dem Backend brauchst du dann noch das Web-Inspector Frontend. Man kann sich veraltete Versionen von Git ziehen, oder man holt sich die neuste Version direkt mittels SVN vom Webkit Sourcecode. Es war für mich sehr interressant zu sehen, wie die der gesamte Webkit WabInspector in blankem ES6 und CSS umgesetzt war.

    Danach brauchst du noch einen kleinen "Webserver"... eigentlich muss der nur statische Dateien ausliefern können. Ich hab' das mit Node realisiert. Ist ohne Dependencies auch nur ein 20-Zeiler.

    Dann kann man versuchen das Ganze auf Chrome zum laufen zu bringen. Es gibt noch einige Fehlermeldungen, die im Wesentlichen darauf beruhen, dass nicht der gesamte Code (CSS/JS) mit Chrome kompatibel ist.

    Nachdem man diese gefixt hat, hat man einen Debugger für iOS der überall läuft.

    Einziger, mir bekannter Nachteil: die Timeline funktioniert nicht. Der Vorteil ist der, dass man sich nicht extra VS Code, oder die Developer-Edition von Firefox laden muss, nur um das dumme Apple Gerät zu debuggen.

    Wenn dir die -zugegeben- recht fummelige Bastelei nicht liegt, gibt's auch noch Weinre.

    Dann sollte das mit dem iOS Debuggen überall klappen.

    Und das Ganze Theater nur, weil die Browser-Hersteller sich nicht auf einen Standard einigen können.

    Zum Abschluss noch eine Seite die sich mit den unterschiedlichen Protokollen auseinander setzt und mir bei meiner Recherche weitergeholfen hat: http://remotedebug.org/

    lg