iPhone Programme debuggen
Wie “debugge” ich ein iPhone Programm?
Viele Programme haben eine Fehlerausgabe über die so genannte Shell (Windows Usern eventuell als Konsole/Command bekannt). Um diese Ausgabe zu sehen muß jedoch auch das Programm über die Shell ausgeführt werden.
Wie führe ich ein Programm über die Shell aus?
Nun, du brauchst Software dafür! Auf dem Mac wird ab MacOSX dafür das Terminal mit installiert, welches normalerweise auch vollen Zugriff auf die OSX eigene Unix Umgebung zulässt uns jedoch in dem Fall als Verbindung zum iPhone dient. Für Windows gibt es das Tool Putty.
Vorbereitungen
Nichts geht ohne eine korrekte Vorbereitug. Du brauchst auf deinem iPhone ein BSD System (BSD Subsystem oder Cydia) sowie OpenSSH (wahlweise über den Installer oder Cydia installieren). Installiert diese beiden Sachen und wir sind fast am Ziel.
ACHTUNG! Ohne WLAN geht hier garnichts, also geht am besten zu einem Freund mit WLAN oder kauft euch einen USB WLAN Stick bei eBay. Die Dinger kosten kein Geld mehr.
Ihr benötigt die IP Adresse eures iPhone. Diese findet ihr in den iPhone WLAN Einstellungen indem ihr hinter eurem Access Point Namen auf den blauen Pfeil klickt.
Verbinden zum iPhone über SSH auf Mac OS X
Bitte bedenkt: Nach jeder Befehlseingabe muss dieser mit einem drücken auf Enter bestätigt werden!
Startet das Programm Terminal. Dieses befindet sich in eurem Dienstprogrammeordner, welcher wiederrum im Programmeordner zu finden ist. Das Terminal sollte euch automatisch einloggen und folgendes darstellen:
Rechnername:~ Username$
Nun tippt ihr das folgende Kommando ein (bitte die Leerzeichen unbedingt so übernehmen wie es da steht!):
ssh root@ip.eures.i.phone
Hierbei müsst ihr natürlich ip.eures.i.phone durch eure iPhone IP ersetzen. Nun wird nach dem root Passwort gefragt. Unter 1.1.4 ist dieses “alpine”. Tippt also “alpine” (ohne Anführungszeichen) ein aber wundert euch nicht – ihr seht keine Eingaben. Dies ist so bei dem SSH Passwort, es übernimmt zwar eure (Ver-)tipper aber zeigt die Zeichen nicht an (Die Löschtaste hat eine Funktion, also wen ihr euch vertippt, dann könnt ihr euren vertipper auf löschen). Bestätigt das Passwort mit einem Enter. Ihr solltet nun folgende Befehlszeile sehen:
NameeuresiPhone:~ root#
Verbinden zum iPhone über SSH auf Windows
Bitte bedenkt: Nach jeder Befehlseingabe muss dieser mit einem drücken auf Enter bestätigt werden!
Startet das Programm Putty. Ihr seht nun das eigentliche Putty Fenster welches zum verbinden dient. Nomralerweise landet ihr direkt im Sessions screen, das ist auch dieser den wir brauchen.
Direkt in der ersten Eingabezeile (Host Name) gebt ihr nun folgendes ein:
root@ip.eures.i.phone
Hierbei müsst ihr natürlich ip.eures.i.phone durch eure iPhone IP ersetzen. Stellt zudem sicher das unter “Connection type” SSH aktiviert ist. Klickt unten auf den Open Button und ihr werdet nach dem root Passwort gefragt. Unter 1.1.4 ist dieses “alpine”. Tippt also “alpine” (ohne Anführungszeichen) ein aber wundert euch nicht – ihr seht keine Eingaben. Dies ist so bei dem SSH Passwort, es übernimmt zwar eure (Ver-)tipper aber zeigt die Zeichen nicht an (Die Löschtaste hat eine Funktion, also wen ihr euch vertippt, dann könnt ihr euren vertipper auf löschen). Bestätigt das Passwort mit einem Enter. Ihr solltet nun folgende Befehlszeile sehen:
NameeuresiPhone:~ root#
Der eigentliche Programmaufruf
Da die meisten Programme unter dem User mobile aufgerufen werden (zumindest ab 1.1.3) müssen wir zum User mobile wechseln, damit wir auch die selbe Nutzungsumgebung haben wie am iPhone selbst. Dies bewerkstelligt ihr mit folgendem Befehl:
su mobile
Die Eingabezeile hat sich ein klein wenig geändert. Wo vorher root stand sollte nun der User mobile stehen.
Jetzt sind wir schon fast am Ziel. Mit dem befehl “cd” wechseln wir in das entsprechende Programmverzeichnis (also das was Probleme macht). Gebt also folgenden Befehl ein um das Verzeichnis zu wechseln. Ich zeige es euch anhand des Installers, das Verzeichnis ist natürlich von Programm zu Programm unterschiedlich!
cd /Applications/Installer.app/
Jetzt habt ihr in das Installer.app Verzeichnis gewechselt (bei Customize wäre es z.B. /Applications/Customize.app/). Nun startet ihr das entsprechende programm. Das ausführbare Binaryfile nennt sich meistens genau so wie das Verzeichnis. In unserem Fall ist es wieder der Installer.
./Installer
Nun seht ihr auf eurem iPhone den Installer starten. Macht nun genau das was ihr vorher machen wolltet und wenn ihr Glück habt gibt es eine entsprechende Fehlerausgabe. Beenden tut ihr das ganze am besten indem ihr auf eurem Mac CTRL und C (PC: STRG + C) gleichzeitig drückt. Dies beendet einen Befehl, denn manche Programme beenden sich bei dieser Art und Weise der Programmausführung nicht durch ein drücken auf die Hometaste. Also CTRL/STRG + C im Terminal ist der Weg.
Fehlerquellen / Andere Fragen
Wenn ihr eine Fehlermeldung bekommt das die Verbindung zum iPhone fehl schlägt, dann überprüft nochmal eure IP des iPhone. Stellt sicher das sich iPhone sowie Mac/PC im selben Netzwerk befinden! Guckt eure Firewalleinstellungen nach bzw. schaltet diese probeweise mal aus.
Beim der allerersten Verbindung zum iPhone erstellt der SSHd auf dem iPhone erstmal die Sicherheitszertifikate, daher kann die erste Verbindung etwas länger als geplant dauern. Zudem bekommt ihr auf dem Terminal (Mac) bzw. Putty (PC) einen Hinweis das ein neuer Key Fingerprint vorhanden ist und es kommt die Nachfrage ob ihr denn sicher seid euch zu dem iPhone verbinden zu wollen. bestätigt dies auf dem Mac mit einer KOMPELTTEN Eingabe des Wortes “yes” und bestätigt mit Enter. Beim PC mit Putty reicht ein klick auf Yes. Direkt danach solltet ihr zur Passwortabfrage kommen.
Bitte postet IMMER bei problematischen Fehlern die Fehlerausgaben aus der Shell. Copy&Paste ist normal möglich während ihr auf der Shell arbeitet. Wenn ein Programm mal keine Ausgabe gibt, dann schreibt das bitte dazu, sonst denken wir ihr habt es nicht gemacht!
Wenn ihr fertig seid, beendet nicht einfach das Terminal/Putty. Loggt euch ordentlich vom iPhone aus. Wechselt in euer Programm und gebt den Befehl exit ein (wie früher unter DOS). Das ganze müsst ihr 2 x machen. Ein mal um den User mobile auszuloggen und ein mal um root auszuloggen. Danach könnt ihr wie gewohnt das Terminal/Putty beenden.
Veröffentlicht am 25.02.2009 in HowTo

Noch kein Kommentar zu iPhone Programme debuggen