2015-11-23 11 views
8

Wenn ich die Freigabeerweiterung von Xcode für das reale Gerät erstellen, Xcode willkürlich stoppen Debug. Aber wenn ich für den Simulator starte, tritt das Problem nicht auf.iOS9 Share Extension kann nicht auf Xcode debuggen

Umwelt
Xcode 7.1.1
iOS 9.1

Einzelheiten
Als ich Aktie Erweiterung bauen, Xcode zeigt "Finished MobileSafari.app auf dem iPhone laufen", aber Safari läuft nicht. Und, der Quadratstoppknopf ist willkürlich grau. Also starte ich Safari selbst und wähle meine Erweiterung und Post. Der Debug-Bereich zeigt nichts an. Außerdem wird die URL-Anforderung nicht vom Rails-Server gesendet.

Dies ist das Bild, wenn ich die Freigabeerweiterung für das reale Gerät erstellen. enter image description here

Ich weiß nicht, warum das reale Gerät kann keine Freigabeerweiterung bei Xcode starten.
Wenn jemand die Antwort zu diesem Problem wissen, bitte sagen Sie mir.

Antwort

0

Ich bin auch auf dieses Problem gestoßen, obwohl ich leider die genaue Lösung nicht kenne, vielleicht kann ich einige Informationen anbieten, die hilfreich sein könnten.

Ich (wie Sie, nach Ihrem Screenshot beurteilen) war Cocoapods, und Cocoapods kopiert Ressourcen aus den Pods in das Bundle der App-Erweiterung, nachdem es Code signiert wurde. Wenn der Speicher dient, stört dies die Code-Signierung und verhindert so, dass die App unter dem Debugger ausgeführt wird.

Ich glaube, dass eines der Symptome davon war, dass Protokolle in der Konsole des Mac (oder der Konsole des Geräts, nicht erinnern, welche) etwas über "Sprengen auf das Gerät mit der alten Methode [sic]". "

Sie können bestätigen, dass dies der Fall ist, indem Sie Cocoapods aus Ihrem Projekt entfernen oder Pods, für die nach dem Kompilieren Ressourcen kopiert werden müssen. Ich glaube, dass die Lösung darin bestand, dem Erweiterungsprojekt eine Art spezielle Build-Phase hinzuzufügen, um die Bundle-Ressourcen zu kopieren und standardmäßig alle Cocoapods zu deaktivieren.

Als vorübergehende Lösung glaube ich, dass das Löschen Ihrer App auf dem Gerät es Ihnen ermöglichen sollte, den Debugger einmal in dem Lauf anzuhängen, in dem die App zum ersten Mal installiert wird. Sie können auch versuchen, abgeleitete Daten für Ihr Projekt zu löschen.

+0

Dank Ben. Per Post habe ich festgestellt, dass ich noch nicht auf dem Gerät neu installiert habe. – penlight

+0

Also habe ich versucht, und überprüft, ob App Extension in Ordnung war. Das Ergebnis war App Extension lief auf dem iPhone und ich konnte Debugger-Ausgabe sehen. Ich habe die Cocoapods-Bibliothek nicht gelöscht, aber Ihre Antwort ist vernünftig. Also wähle ich deine Antwort ist die beste Antwort. – penlight

+0

Das Problem wurde erneut gelöst.Als nächstes entferne ich Cocoapods Formular Projekt, aber das Problem wurde nicht entfernt. – penlight

6

In der Regel können Sie eine Freigabeerweiterung debuggen, indem Sie zu Debug -> An Prozess oder PID anhängen und den Namen Ihrer Freigabeerweiterung eingeben. Von dort aus können Sie die Freigabeerweiterung auf Ihrem Gerät oder Simulator öffnen, und der Xcode-Debugger sollte Haltepunkte korrekt anhängen und anschlagen. Ich habe jedoch festgestellt, dass Protokollmeldungen nicht angezeigt werden, und auch keine Werte für Variablen in der Debuggeransicht aufgefüllt werden.

Hier ist, wie ich das Debugging richtig funktioniert. Führen Sie das Freigabeerweiterungsschema aus. Wenn Sie gefragt werden, welche App ausgeführt werden soll, wählen Sie "Fotos" (da dies die App ist, mit der Ihre Erweiterung funktioniert). Die Fotos App wird dann auf Ihrem Gerät gestartet und Sie können Ihre Erweiterung verwenden. Der Debugger in Xcode sollte dann wie erwartet funktionieren.

+0

Ich werde das bald überprüfen. –

Verwandte Themen