2017-01-27 2 views
0

Ich habe eine Bibliothek, die ich verwenden möchte, aber ich erhalte den Fehler Invalid URL scheme for background downloads: (null). Valid schemes are http or https. Gibt es eine Möglichkeit, zu debuggen, welche URL verwendet wird, die diesen Fehler verursacht?Objective-C-Bibliothek zeigt intern ungültiges URL-Schema an

Ich habe keinen Zugriff auf den Quellcode dieser Bibliothek.

Gibt es einen symbolischen Haltepunkt, den ich einstellen kann, wenn dieser Fehler von NSURLSession zurückgegeben wird?

Oder eine Möglichkeit, die Parameter im Debugger anzeigen, wenn ich den Call-Stack durchsuchen?

+0

@Close Wähler: Dies ist keine Frage über "Warum funktioniert diese NSURLSession nicht?", Dies ist eine Frage zum Debuggen der App, dies ist nur ein Beispiel Anwendungsfall Ich gebe (closed Source-Bibliothek, zu versuchen, zu zahlen out Parameter). Wenn Sie eine Bemerkung zu meiner Frage haben, schreiben Sie sie bitte in die Kommentare. – vrwim

Antwort

1

Da Sie bereits über symbolische Haltepunkte wissen, sicher. Es wird eine der NSURLSession Methoden wird im Zusammenhang mit Download-Aufgaben starten:

downloadTaskWithURL:completionHandler: 
downloadTaskWithRequest:completionHandler: 

Einer von denen, mit ziemlicher Sicherheit wird schließlich aufgerufen werden.

Wenn Sie sich die Parameter im Debugger ansehen, sollten Sie das glorreiche Diagramm von Clark Cox konsultieren: Inspecting Obj-C parameters in gdb. Es behandelt schnell, wie Parameter auf jeder Plattform übergeben werden.

+0

Ich debugge auf einem iPhone 6S, das nach meinem Wissen Arm verwendet. Ich versuche, 'po $ r0' zu machen, aber ich bekomme' Fehler: Verwendung des nicht deklarierten Bezeichners '$ r0''. Jedoch gibt 'po * (id *) ($ sp)' zurück '<__ NSMallocBlock__: 0x17009d8d0> 'Irgendwelche Ideen? – vrwim

+0

Anscheinend musste ich alle 'r' durch 'x' ersetzen, also wird es' po $ x0' – vrwim

+0

yeah ... Ich stieß auf das vorher in lldb. Aber ich denke, dass es Ihnen mit $ arg1 (etc) Aliase wirklich helfen wird. –