Frage

Ich bin derzeit die Entwicklung einer App, die Push-Benachrichtigungen erhält. Ich habe das alles funktioniert 100% durch eine PHP-Seite. Es gibt verschiedene Arten von Push-Benachrichtigungen meines App empfangen kann. Die PHP behandelt diese und sendet verschiedene Pakete von Informationen an meine app, die alle erhalten sind einfach gut.

Wenn jedoch die Benutzer „Ansichten“ die Meldung und meine app startet, habe ich natürlich eine andere Aktion machen wollen, als ich würde, wenn der Benutzer nur die App manuell gestartet - und obendrein je verschiedene Aktionen auf dem Push Benachrichtigungstyp. Ich habe habe diese Arbeit gut ... strukturell.

Einer meiner Push-Typen soll eine UIView öffnen, die mehrere Verbindungen zu verschiedenen Servern macht und verhandelt Daten hin und her. Diese UIView funktioniert gut, wenn zum Beispiel aus dem Hauptmenü ausgelöst -. Aber wenn meine Push-Benachrichtigung dieses UIView auslöst erscheinen, werden die Socket-Verbindungen nicht wie erwartet wirken

Nun meine Frage ist nicht über die Buchsen, aber um so mehr - Wie debuggen Sie ein solches Problem ?? Von dem, was ich sagen kann (ich bin relativ neu), wenn die Anwendung von einer Push-Benachrichtigung gestartet gibt es keine Möglichkeit, dass die Ausführung an den Debugger / console / etc zu verbinden ... Ich habe eine sehr schwierige Zeit versucht, den Code zu debuggen mit UIAlertViews, da es viele Linien der Kommunikation hin und her zwischen den verschiedenen Servern.

Jede Beratung Sie für mich haben würde sehr geschätzt werden.

War es hilfreich?

Lösung

In XCode <4,0 (für XCode> = 4, siehe Antwort von delirus unten), können Sie nun Xcode konfigurieren Sie den Debugger an die App zu befestigen, nachdem Sie es starten, anstatt die App über den Debugger zu starten. Auf diese Weise können Sie die Dinge debuggen, die auf dem Abschuss Zustand Ihrer Anwendung variieren, wie URL-Schemata, Pappen und Push-Benachrichtigungen.

  1. In Xcode Blick in die Quelle bar und unter Ziele dort Executables sein wird.
  2. den Inspektoren für Ihre Anwendung in ausführbaren Dateien öffnen.
  3. Klicken Sie auf die Registerkarte Debuggen Registerkarte im Inspektor.
  4. Deaktivieren Sie die Option "Start ausführbare Datei nach dem Start Debugger"
  5. Überprüfen Sie das "Warten auf nächsten Start / Push-Benachrichtigung"

Wenn Sie nun Debug von Xcode klicken Sie stattdessen auf die App ein Fenster erzählt wird angezeigt, der es startet wartet auf die App zu starten. Sie starten dann die App normalerweise am Telefon und Xcode legt es

Andere Tipps

Für Xcode 4 müssen Sie:

  1. Bearbeiten Sie Ihre aktive Regelung über "Schemes" Dropdown-Menü. ( + <)
  2. als Ihr Produkt wählen - ‚Run MyApp.app‘auf der linken Seite.
  3. Wählen Sie 'Info' Registerkarte auf der rechten Seite.
  4. Und wählen schließlich „Wait for MyApp.app starten“Option.

Mehr hier in "Passen Sie Executables im Scheme Editor" Abschnitt.

EDIT:
Falls Sie Protokolle in GDB verpassen, sehen Louis Gerbarg Kommentar seine Antwort.

Für XCode 10, 9, 8, 7 und 6:

  1. das Schema auswählen in der Werkzeugleiste (nur von dem Gerät links Sie das Debuggen mit)
  2. Wählen Sie Schema bearbeiten
  3. Wählen Sie Ausführen im linken Bereich
  4. Für den Start , für ausführbare Warten gestartet
  5. werden
  6. Schließen Sie das Schema-Editor und Ausführen Ihr XCode Projekt

Jetzt können Sie debuggen, wenn sie von einer Meldung, eigene URL oder durch Berühren des App-Symbol starten.

Ich arbeite nicht mit Push-Benachrichtigungen, damit ich weiß nicht, die genaue Bearbeitung von Push-Benachrichtigungen. Aber ich würde versuchen, den Empfang einer Push-Benachrichtigung imitiert durch die Hauptmethode des Programms vorgeben eine Benachrichtigung zu lassen wurde, wenn möglich gebucht, oder die Anwendung aufrufen: didFinishLaunchingWithOptions: UIApplicationDelegate Methode aus dem applicationDidFinishLaunching. Verfahren

HTH - Cheers, Daan

In Xcode 6:

  1. schließen Sie das iPhone mit USB MacBook
  2. Starten Sie die App auf dem iPhone durch Tippen auf das Symbol
  3. In Xcode Menü Debug> Attach to Process> Wählen Sie Ihre App
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top