web-dev-qa-db-fra.com

Installation de la bibliothèque OpenSSL pour Xcode

J'ai installé OpenSSL dans xcode pour la validation de la réception, mais cela ne fonctionne pas.

Je télécharge openssl.xcodeproj et openssl-1.0.1f. J'extrais openssl-1.0.1f et ajoute openssl.xcodeproj à mon projet. 

files in Finderinserted openssl.xcodeproj

Je modifie le Header Search Path en: 

 /Users/marko/Documents/Razvoj/BIView\ Mobile\ New\ Version/openssl/include/openssl

J'ai ajouté libcrypto.a dans Target Dependencies sous Build Phases

et ajouté libcrypto.a dans Link Binary With Libraries

comme décrit dans http://atastypixel.com/blog/easy-inclusion-of-openssl-into-iphone-app-projects/ .

Mais lorsque je construis un projet, il s'arrête avec une erreur: 

clang: error: no such file or directory: '/Users/ .... -bmgslnakszsfovecplbzoslykrxo/Build/Products/Debug-iphoneos/libcrypto.a'

Pourquoi ?

12
Marko Zadravec

OK, comment le construire et l'installer ....

Il pourrait être plus facile d’utiliser une version pré-construite d’OpenSSL pour iOS. Vous pouvez en trouver un sur ce compte Github . Les OpenSSL de ce Github sont multi-arch. Ils ont ARMv7, ARMv7, ARM64 et i386. Cela signifie qu'ils travaillent avec des appareils et des simulateurs.

Téléchargez OpenSSL 1.0.1e ou 1.0.1f. Installez-le dans un emplacement comme /usr/local/ssl/ios.

Ajoutez ensuite les en-têtes à votre projet Xcode. Ils sont situés dans /usr/local/ssl/ios/include:

enter image description here

Enfin, ajoutez les bibliothèques multi-arch (libcrypto.a et libssl.a) à votre projet Xcode. Ils sont situés dans /usr/local/ssl/ios/lib:

enter image description here

17
jww

Vous devez ajouter la bibliothèque en tant que cadre. Voir cette question: comment ajouter un framework existant dans Xcode 5 .

Son ok pour ajouter les bibliothèques OpenSSL sous Frameworks. C'est comme ça que ça se passe sous Apple/Xcode.

J'utilise le chemin absolu comme dans l'image ci-dessous car Crypto ++, OpenSSL, etc. sont installés dans /usr/local. L'image ci-dessous est une capture d'écran que j'ai sous la main de Crypto ++, et non du libcrypto.a ou du libssl.a d'OpenSSL. Mais la même chose s'applique à toutes les bibliothèques.

enter image description here

1
jww