版本:OpenSSL 1.0.0e
Xcode 4 with iOS 4.注意:根目录定为我的本家目录即/Users/jianke.tang/
下面开始我们的旅程
1. 下载openSSL(http://www.openssl.org/source/),修改源代码 下载下来的以后进行解压,为了避免编译错误,需要进行稍微的修改,打开 crypto/ui/ui_openssl.c,然后将
static volatile sig_atomic_t intr_signal;
改为
static volatile int intr_signal;2. 创建一个放置不同平台的库
$ mkdir ssllibs3. 为i386模拟器编译openssl
$ cd openssl-1.0.0e
$ mkdir openssl_armv6 openssl_armv7 openssl_i386
$ ./Configure BSD-generic32 --openssldir=/Users/jianke.tang/openssl-1.0.0e/openssl_i386
修改Makefile文件
$ vi Makefile
a.找到
CC = cc
将其改为
CC= /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386
b.就在这行下边找到CFLAG,在'='后面添加
-isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdkc.编译安装
$ make
$ make install
d.复制到上面建立的库中
$ cp -r openssl_i386 ../ssllibs
注:i386只有基于模拟器的,没有OS的,所以基于arm的和i386的是不一样的4.为armv6 ios编译openSSL
$ make clean
$ ./Configure BSD-generic32 --openssldir=/Users/jianke.tang/openssl-1.0.0e/openssl_armv6
修改Makefile文件
a.找到
CC = cc
将其改为
CC= /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6
b.就在这行下边找到CFLAG,在'='后面添加
-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk
c.编译安装
$ make
$ make install
d.复制到上面建立的库中
$ cp -r openssl_armv6 ../ssllibs
注:请注意,一定确保相关路径下有该文件,否则会出现编译错误,比如iPhoneOS4.3.sdk可能是iPhoneOS4.0.sdk版本的
5. 为armv6 ios编译openSSL5.
$ make clean
$ ./Configure BSD-generic32 --openssldir=/Users/jianke.tang/openssl-1.0.0e/openssl_armv7
修改Makefile文件
a.找到
CC = cc
将其改为
CC= /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv7
b.就在这行下边找到CFLAG,在'='后面添加
-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk
c.编译安装
$ make
$ make install
d.复制到上面建立的库中
$ cp -r openssl_armv7 ../ssllibs6. 库的处理
打开库ssllibs,在各个平台下的lib/中的libcrypto.a和libssl.a,以及在各个平台下的include文件夹
好了,我们可以创建一般性的链接库了,这样可以保证它可以根据平台自动选择。
$ lipo -create ../ssllibs/openssl_i386/lib/libcrypto.a ../ssllibs/openssl_armv6/lib/libcrypto.a openssl_armv7/lib/libcrypto.a -output ../ssllibs/libcrypto.a
$ lipo -create ../ssllibs/openssl_i386/lib/libssl.a ../ssllibs/openssl_armv6/lib/libssl.a openssl_armv7/lib/libssl.a -output ../ssllibs/libssl.a
7.到这里就大功告成了,不过为了帮助大家更更好的理解和使用,这里我教大家如何修改IPHONE-XCODE PROJECT
1. Copy the “include” folder from OpenSSL into your project-folder
2. Copy the libcrypto.a and libssl.a files into your project-folder
3. Drag the libcrypto.a and libssl.a files into your XCode Framework Folder-Tree
4. Open the Build-Info from your “Target” (Righclick on Target – Get Info)
Change Library Search Paths to
$(inherited) "$(SRCROOT)"
6. Change User Header Search Paths to include
7. Activate Always Search User Paths
8. 这里有个例子工程,大家可以参考一下,别的我就不赘述了 http://github.com/x2on/OpenSSL-for-iPhone。
这个库是iOS 3.2/4.0 XCode Project with OpenSSL 1.0.0a
使用了MD5-algorithm to calculate an md5 hash from an UITextfield.
9.鄙人开了个网点,往多加支持,谢谢:gezikongjian.taobao.com(格子空间)
转载于:https://www.cnblogs.com/tangjianke/archive/2011/09/26/2191798.html