本文简述一下怎样编译 openssl 成静态库以在 iOS 环境下使用。
环境:macOS 10.14.5,Xcode10.2.1,openssl 1.1.1d。
先下载 openssl 的源文件
http://www.openssl.org/source/
编译 86_64 平台
$ ./config
$ make
将 libcrypto.a libssl.a 改名为 libcrypto_x86_64.a libssl_x86_64.a,考到某处备份。
编译 armv7 平台
清理或删除重新解压 openssl
$ ./configure ios-cross
编辑 makefile 文件,将
CC=$(CROSS_COMPILE)cc
修改为
CC=$(CROSS_COMPILE)clang -fembed-bitcode
将
CFLAGS=-O3
修改为
CFLAGS=-O3 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk
$ make
将 libcrypto.a libssl.a 改名为 libcrypto_armv7.a libssl_armv7.a,考到某处备份。
编译 arm64 平台
清理或删除重新解压 openssl
$ ./configure ios64-cross
编辑 makefile 文件,将
CC=$(CROSS_COMPILE)cc
修改为
CC=$(CROSS_COMPILE)clang -fembed-bitcode
将
CFLAGS=-O3
修改为
CFLAGS=-O3 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk
$ make
将 libcrypto.a libssl.a 改名为 libcrypto_arm64.a libssl_arm64.a,考到某处备份。
合并通用静态库
进入放置库文件的目录
$ lipo -create libcrypto_x86_64.a libcrypto_armv7.a libcrypto_arm64.a -output libcrypto.a
$ lipo -create libssl_x86_64.a libssl_armv7.a libssl_arm64.a -output libssl.a
参考: