概要说明
openssl 是一个 c 语言库。
openssl 官方地址:https://www.openssl.org
openssl 源码地址:https://github.com/openssl/openssl
下载源码,然后编译源码,网上资料比较多,自己测试下载最新源码后发现会报一些错误。
自己不想费时间解决,直接找到了下面这种方式:
https://github.com/x2on/OpenSSL-for-iPhone
直接看作者说明,编译作者试过支持的版本就行。自己测试编译版本是 1.0.2i ,编译成功了。
另外,直接编译最新版1.1.0c,终端执行报错,报的错和自己手动编译源码是一样的错误,估计有些配置不正确。
1 编译静态库
下面针对 https://github.com/x2on/OpenSSL-for-iPhone 这种方式,要注意的地方做些整理:
关键步骤说明:
- 下载作者源码库,重点参看脚本 build-libssl.sh
- 打开脚本,配置参数,里面有DEFAULTVERSION:默认openssl版本、IOS_MIN_SDK_VERSION:iOS支持最小版本、ARCHS:CPU架构(只需要编译iOS平台可以指定为:"x86_64 arm64 armv7s armv7",i386 是32位模拟器,可以不考虑)、还有一些其他参数可以参考。
- 脚本执行完毕后,会依次生成对应架构的静态库.a文件。需要使用 lipo 命令将多个.a 文件合并成一个文件,方便使用。
补充:lipo合并.a文件的命令参考:
lipo -create Release-iphoneos/libzbar.a Release-iphonesimulator/libzbar.a -o libzbar.a
2 加入openssl库到xcode项目
将编译好的 include目录下的头文件和合并后的.a 文件加入到工程中。(类似大多数第三方库一样)
如果编译报错,找不到 <openssl/opensslconf.h> 文件,需要在xcode 工程配置下设置 Head Search选项中头文件的搜索路径,改一下即可。
进阶:
对于openssl里面的常见加密算法的加解密 API 的使用,还有待进一步学习和研究