方式一、GRKOpenSSLFramework 脚本编译
1.从Git上下载GRKOpenSSLFramework脚本
2.从OpenSSL官网上下载对应版本的源码和PGP Sign,放到GRKOpenSSLFramework的主目录下
⚠️注意:源码是以tar.gz结尾的,如果是以tar结尾的,直接重命名为以以tar.gz结尾
3.cd到GRKOpenSSLFramework的主目录下,执行以下指令
./_master_build.sh clean
./_master_build.sh build
build 指令会比较慢,耐心等待
有下面提示意味着build成功了
Created OpenSSL-macOS/OpenSSL-macOS/openssl.h
Created OpenSSL-iOS/OpenSSL-iOS/openssl.h
Build complete. Please follow the steps under "Building" in the README.md file to create the macOS and iOS frameworks.
静态库在lib-ios、lib-macos文件夹中
提示:
默认情况下, _master_build.sh 是编译iOS 和 MacOS平台下的所有架构的静态库,编译会很慢,且很容易出现sh脚本直接退出的情况。
我们可以在build.sh中指定架构编译
build.sh中有这样的一段代码
build "i386" "${IPHONESIMULATOR_SDK}" "ios"
build "x86_64" "${IPHONESIMULATOR_SDK}" "ios"
build "armv7" "${IPHONEOS_SDK}" "ios"
build "armv7s" "${IPHONEOS_SDK}" "ios"
build "arm64" "${IPHONEOS_SDK}" "ios"
mkdir -p include-ios
cp -r /tmp/openssl-${OPENSSL_VERSION}-arm64/include/openssl include-ios/
rm -rf /tmp/openssl-${OPENSSL_VERSION}*
build "i386" "${OSX_SDK}" "macos"
build "x86_64" "${OSX_SDK}" "macos"
mkdir -p include-macos
cp -r /tmp/openssl-${OPENSSL_VERSION}-x86_64/include/openssl include-macos/
rm -rf /tmp/openssl-${OPENSSL_VERSION}*
可以删除相关代码来指定架构编译
4.通过Xcode打开OpenSSL工程编译
方式二、源码Make编译
1.从OpenSSL官网上下载对应版本的源码,解压
2.cd 到源码主目录下
3.执行以下指令
make clean
# 同时生成动态库、静态库
./Configure iphoneos-cross no-asm -shared
#只生成静态库
./Configure iphoneos-cross no-asm no-shared
执行完上述指令后,会在主目录下生成新的Makefile文件
4.修改Makefile文件
在Makefile文件中,找到CC= llvm-gcc,替换成以下代码
CC= /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64
在CFLAGS上面赋值CROSS_TOP 和 CROSS_SDK
CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
CROSS_SDK=iPhoneOS15.0.sdk
5.执行命令 make
make
在主目录下就会生成对应的静态库或动态库
上文在openssl-1.0.2o openssl-1.0.2s上 测试OK