2009-04-20 14 views
2

Die Motivation für diese Frage Hinzufügen versucht, ich LDAP-Funktionen arbeiten mit einer iPhone-Applikation zu erhalten, die ein Projekt, das ich für Teil meiner Arbeit bin versucht.eine statische Bibliothek zu einem iPhone-Projekt

Als ich die Anwendung entwickelte, benutzte ich das Framework ldap.framework, das Teil von Mac OS X ist. Das funktioniert im Simulator gut, aber wenn ich versuche, die App auf einem Gerät zu bekommen, sagt es mir, dass ich Ich darf diesen Rahmen nicht verwenden.

Nach einigen Recherchen fand ich, dass ich mit OpenLDAP die ARM-Architektur aufbauen konnte und die statische Bibliothek zu meiner Anwendung für das Gerät bestimmt hinzuzufügen.

Ich schaffte es schließlich configure zu kompilieren und openldap bauen von Variablen wie erwähnt here und mit den folgenden Befehlen Einstellung ...

Ade$ ./configure CC=$DEVROOT/usr/bin/arm-apple-darwin9-gcc-4.0.1 \ 
LD=$DEVROOT/usr/bin/ld --host=arm-apple-darwin --with-yielding_select=yes 
Ade$ make depend 
Ade$ make 

ich, dass die Datei für wird eine Erweiterung der ich bin auf der Suche wurde gesagt haben ‚.a‘ so suchte ich nach einer ‚.a‘ Datei, die ldap erwähnt ...

Ade$ sudo find/-name *ldap*.a 
Password: 
/Users/Ade/Desktop/openldap-2.4.16/libraries/libldap/.libs/libldap.a 
/Users/Ade/Desktop/openldap-2.4.16/libraries/libldap_r/.libs/libldap_r.a 

also gehe ich davon aus, das sind die Dateien, die ich brauche?

Meine Frage ist, was mache ich als nächstes? Ich weiß, ich muss die Bibliothek zum Xcode-Projekt hinzufügen und wahrscheinlich auch eine Menge '.h' Dateien hinzufügen?

Wenn mir jemand einen Zeiger auf Dokumentation geben kann oder kein Licht auf der nächsten Stufe vergießen würde ich wirklich dankbar.

Vielen Dank, Ade

ps. Ich habe auch über diesen Prozess auf meinem Blog unter www.greenpasta.com gesprochen.

Antwort

1

Ziehen Sie einfach die .a-Dateien in das Xcode-Projekt und „Kopieren von Dateien in Projekt“ wählen. Ich bin nicht vertraut mit OpenLDAP, aber ich denke, die _r-Version ist nur eine threadsafe-Version. Ich würde empfehlen, das zu verwenden und nicht das andere zu kopieren. Sie sollten wahrscheinlich nicht beide Dateien in Xcode kopieren oder Linkfehler bekommen.

dann das Gleiche tun für die H-Dateien, die die Client-APIs von OpenLDAP definieren - wieder bin ich nicht sicher, was diese sind, aber ich bin sicher, dass Sie leicht herausfinden können.

Ich würde Ihnen raten, die .a und H-Dateien zusammen in einem Xcode Gruppe unter Ressourcen zu organisieren.

Fügen Sie die Header-Dateien in Ihre Quelle ein und Sie sollten gut unterwegs sein.

+0

Hallo, ich diese Methode versucht, aber habe nicht näher ... Es gibt eine weitere Diskussion über die Apple-Diskussionsforen los ... –

0

Sie müssen dem Linker-Befehl (im Bereich für die Build-Einstellungen) möglicherweise -lldap hinzufügen.

2

Ich habe das gleiche getan, um einen LDAP-Client für das iPhoneOS 2.2 zu bauen. Sie müssen nur die .a in die Buildstufe "link with libraries" ziehen. Ich empfehle, die reguläre (nicht _r) Version der Bibliothek zu verwenden, es sei denn, Sie benötigen speziell Reentrancy auf Ihrem ldap Zeug (was ich nicht empfehlen). Sie können auch die .hs zu Ihrem Projekt hinzufügen, was im Allgemeinen der einfachste Weg ist, auf sie zuzugreifen.