2013-03-12 6 views
6

Derzeit arbeite ich an einer iOS-Anwendung (iOS 6), in der ich eine statische Bibliothek implementieren muss.Statische Bibliothek gibt Fehler auf iOS-Simulator und funktioniert auf iOS-Gerät

Ich habe die statische Bibliothek mit dieser tutorial erfolgreich implementiert. Und ich habe die statische Bibliothek erfolgreich zu einem anderen Projekt hinzugefügt und die App auf dem iPhone installiert! Es funktioniert erfolgreich.

Aber mein Problem ist, wenn ich versuchte es auf meinem Simulator einige Fehler zu laufen kommen:

"_OBJC_CLASS_$_MMPAlert", referenced from: 
     objc-class-ref in ViewController.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Xcode error console

ich hinzugefügt, um die Zielarchitektur wie:

Target settings

Ich habe viel gesucht, konnte aber keine Lösung finden, warum meine Bibliothek am Gerät arbeitet und Fehler am Simulator gibt.

Bitte helfen Sie mir, Dank im Voraus

+0

Entfernen Sie i386 und versuchen Sie es erneut – peko

+0

Wie haben Sie Ihre statische Bibliothek hinzugefügt? Was sind Schritte, die du befolgt hast? –

+0

@ P.J: hinzugefügt die Bibliothek, die Schritte in der Anleitung beschrieben (Ich habe diesen Link hinzugefügt). Zum Projekt hinzugefügte Mittel enthielten die Header-Datei und importierten sie. –

Antwort

5

Sie haben propably nur Ihre Bibliothek für die Gerätearchitektur aufgebaut. Der iOS-Simulator ist kein Emulator, dh der Code muss auf der Architektur Ihres Macs ausgeführt werden können, die sich offensichtlich von der Architektur Ihres Geräts unterscheidet.

Da eine Bibliothek vorkompiliert wird (für eine bestimmte Architektur), wird der Code, aus dem sie besteht, nicht erneut für Ihr aktuelles Ziel kompiliert, sobald Sie es in Ihrem Projekt verwenden. Aus diesem Grund müssen Sie Ihre Bibliothek für beide Architekturen erstellen.

This SO Answer erläutert, wie zwei Bibliothekserstellungen in einer handlichen "fetten Datei" zusammengefasst werden.