PLCrashReporter in XCode 4 - wird nicht im Simulator kompiliert

8

Ich muss hier etwas völlig Dummes tun, aber ich kann das PLCrashReporter-Framework nicht in mein Projekt aufnehmen. Hier sind die Schritte, die ich unternommen habe, um den Rahmen zu bekommen:

  1. Die .dmg-Datei wurde von der offiziellen Projektseite im Google-Code heruntergeladen
  2. Kopieren Sie den Ordner CrashReporter.framework in das Stammverzeichnis meines Projekts
  3. Das Framework wurde hinzugefügt, indem Sie zu meinem Projekt gehen, das Ziel auswählen, zur Registerkarte Phasen erstellen gehen, den Link Binär mit Bibliotheken öffnen, auf das Pluszeichen klicken und den Ordner CrashReporter.framework
  4. hinzufügen

Ich ziehe das Framework in meiner Klassendatei mit

ein

#import <CrashReporter/CrashReporter.h>

Wenn ich versuche, unter 4.3 Simulator zu kompilieren, erhalte ich die folgenden Fehler:

Nicht definierte Symbole für Architektur i386:   "_OBJC_CLASS _ $ _ PLCrashReporter", referenziert von:       Objc-Klasse-Verweis in AppDelegate + CrashReporting.o   "_OBJC_CLASS _ $ _ PLCrashReport", referenziert von:       Objc-Klasse-Verweis in AppDelegate + CrashReporting.o ld: Symbol (e) nicht für Architektur i386 gefunden clang: error: Der Linker-Befehl ist mit dem Exit-Code 1 fehlgeschlagen (benutze -v, um den Aufruf zu sehen)

Wenn ich unter dem Gerät kompiliere, ist alles in Ordnung. Gibt es eine Art Header oder Bibliothek Suchpfad, den ich aufnehmen muss?

Die App kompiliert unter XCode 3 ohne Probleme in allen Konfigurationen.

    
Mark Struzinski 31.05.2011, 20:03
quelle

3 Antworten

13

Ich hatte das gleiche Problem und konnte es lösen. Hier sind die Schritte, die ich abgeschlossen habe ...

  1. Laden Sie die PLCrashReporter-Quellversion herunter und entpacken Sie sie.
  2. Öffnen Sie das PLCrashReporter-xcode-Projekt. Dieses Projekt ist so eingerichtet, dass ein altes SDK verwendet wird. Aktualisieren Sie alle erforderlichen SDKs für jedes Ziel, um die Warnungen zu entfernen. Dies ist auch erforderlich, um im nächsten Schritt zu kompilieren.
  3. Navigieren Sie zum CrashReporter-iPhoneSimulator-Ziel. Unter den Build-Einstellungen: a) setze "Perform Single Object Prelink" auf "No", b) setze "Mach-O Type" auf "Static Library".
  4. Wählen Sie CrashReport-iPhoneSimulator: [IOS Simulation (zB iPhone 4.3 Simulator)] und klicken Sie auf Build.
  5. Navigieren Sie zu Ihrem Build-Verzeichnis für den PLCrashReporter. Für mich war es / Benutzer / Benutzername / Library / Entwickler / Xcode / DerivedData / CrashReporter - (zufällige Zeichen) / Build / Produkte / Debug-iphonesimulator
  6. Kopieren Sie den libCrashReporter-iphonesimulator.a aus dem Build-Verzeichnis in Schritt 5 in das iPhone-Anwendungsprojektverzeichnis, dem Sie den Absturzreporter hinzufügen möchten.
  7. Öffnen Sie Ihr iPhone-Anwendungsprojekt in xcode.
  8. Laden Sie die PLCrashReporter-Binärversion herunter und extrahieren Sie das Framework in ein lokales Verzeichnis.
  9. Fügen Sie das CrashReporter-Framework zu Ihrem Projekt hinzu, indem Sie verwenden SO Post .
  10. Fügen Sie nach dem gleichen Verfahren wie in Schritt 9 die statische Bibliothek libCrashReporter-iphonesimulator.a zum Abschnitt "Link Binary with Libraries" der Build-Phasen hinzu. Beim Hinzufügen einer statischen Bibliothek wird kein * .framework-Verzeichnis benötigt.
  11. Überprüfen Sie das "Link Binary mit Bibliotheken" im Ziel. Stellen Sie sicher, dass libCrashReporter-iphonesimulator.a über dem CrashReporter-Framework aufgeführt ist. Sie können per Drag & Drop neu anordnen.

Ich hoffe, das hilft.

    
lkiss80 02.08.2011, 14:11
quelle
1

Für alle anderen, die nach diesen Informationen suchen:

Ich habe dieselben Schritte wie oben ausgeführt, aber ich habe Fehler bekommen. Ich löschte die statische Bibliothek und nur das Framework (das Sie von ihrem DMG erhalten können).

Es hat perfekt für mich funktioniert. Ich denke, der Prozess zum Erstellen einer statischen Bibliothek durch das Erstellen des Projekts war alt (bevor sie ein Framework erstellt haben).

Danke.

    
helloWorld 15.01.2014 22:41
quelle
0

Vergessen Sie nicht,

einzuschließen
  

libstdc ++ .dylib

in "Link Binary mit Bibliotheken".

    
mafonya 06.04.2014 20:16
quelle

Tags und Links