Debugging auf dem Device - wie geht das ordentlich?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Debugging auf dem Device - wie geht das ordentlich?

    Hi zusammen,

    sagt mal, wie geht ihr denn vor, wenn ihr auf dem Device Programmteile testen müsst, für die das iPad/iPhone nicht am Mac hängt und somit auch keine Xcode-Konsole greifbar ist (geschweige denn echtes Debugging)?

    In meinem Fall: Ich schreibe eine Musik-App, die mit MIDI-Geräten kommuniziert. Momentan habe ich so grundlegende Sachen zu testen wie: Kommen die richtigen Noten-Events an? Wird die Delegate-Methode überhaupt ausgeführt, wenn MIDI-Events ankommen oder nicht? Da ich an's iPad ja nicht sowohl das Macbook als auch das CCK (damit schließ ich meine USB-MIDI-Keyboards oder Synthesizer an) anschließen kann, frage ich mich: Wie lösen das fortgeschrittene Entwickler?

    Meine derzeitigen Lösungen:

    1.) Per NSLog irgendwas in die Konsole schreiben, Kabel umstecken und dann in die Debug-Ausgaben sichten. Bedeutet: Stundenlanges Kabel-Umstecken alle 20 Sekunden. Macht keinen Spaß und ich mach mir allmählich Sorgen um die Lightning-Buchse, wenn ich das jetzt über Monate so mache.

    2.) textView in's Storyboard werfen und Debug-Meldungen in dieses Textfeld schreiben, so dass ich direkt sehe, was Sache ist. Aber selbst da fluche ich noch über ObjC (oder keine mangelnden Kenntnisse). Wo das zu meinen Basic-Zeiten "schnell mal" gemacht werden konnte, weiß ich hier schon nicht, wo ich von der Callback-Methode meiner MIDIController-Klasse jetzt plötzlich auf das textView des viewControllers zugreifen soll ohne viel Aufwand. Oder gibt's eine schnellere Methode? (In JavaScript würde ich schreiben alert("MIDI-Event " + eventType + " kam an."), auch wenn das hinterletzte Quick'n'-Dirty-Hobbyprogrammierer-Methoden sind :) )

    Aber da ich es nicht besser weiß - bitte belehrt mich, wie man so etwas professionell und einigermaßen komfortabel löst. Gibt es ein Framework, das mir per WLAN Debug-Meldungen zum Computer schicken kann? Oder lohnt es sich, sich für zukünftige Projekte sowas selber zu schreiben?

    Danke und liebe Grüße
    Lukas
  • Hi Lukas,

    da bist Du auf ein grundlegendes Problem gestossen für das es derzeit keine Lösung gibt. Port belegt -> kein Debugging.
    Schreibe bitte ein Enhancement Request an Apple.

    Q1. If we use USB for Accessory communication and like to debug the iOS app with Xcode, how can this be done?
    Response - there is currently no support for debugging an app that communicates with the accessory via USB or Serial transport under iAP2. For iAP1, and a 30 pin serial accessory, one could provide a connection to the USB pins for connection via USB cable to the debugging host. For USB transport, this isn’t supported.

    For such cases, I advise that you submit an enhancement request - actually a vote - using the Apple Developer Bug Report web page - http://bugreport.apple.com - to request that Xcode support an alternate means of debug connection for iAP Accessories which communicate across the USB transport - like maybe via a WiFi connection.

    I’m aware that the Xcode team is aware of such need for such debugging support. More votes - more pressure.
  • Hi,

    danke für die Antworten! Das hilft mir auch weiter, zu wissen, dass es die optimale Lösung (z.B. Debugging über WLAN) nicht gibt. Dann hab ich zumindest nichts übersehen. Werde mal nen Enhancement Request abgeben.

    Das ist mein textView-Workaround gar nicht so abwegig wie ich dachte? fabrik.io / Crashlytics werd ich mir mal in Ruhe reinziehen. Hat mich gerade auf den ersten Blick etwas erschlagen :) Sieht aber nach dem aus, was ich suche.