构建OpenSSL

#!/usr/bin/env bash

# Yay shell scripting! This script builds a static version of
# OpenSSL ${OPENSSL_VERSION} for iOS and OSX that contains code for armv6, armv7, armv7s, arm64, i386, x86_64.

DIR=`pwd`
cd openssl-1.1.1g

build_library() {
ARCH=$1
./Configure iphoneos-cross --prefix=`pwd`/build/$ARCH
sed -i ".bak" "s!^CC=.*!CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch $ARCH!" Makefile
sed -i ".bak" 's!^CFLAGS=.*!CFLAGS=-DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSLDIR=$(OPENSSLDIR) -DENGINESDIR=$(ENGINESDIR) -O3 -D_REENTRANT -isysroot $(CROSS_TOP)/SDKs/$(CROSS_SDK) -fno-common!' Makefile

make
make install
make clean
}

# sdk上层路径
export CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
# sdk文件
export CROSS_SDK=iPhoneOS14.0.sdk
build_library armv7
build_library armv7s
build_library arm64

# sdk上层路径
export CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
# sdk文件
export CROSS_SDK=iPhoneSimulator14.0.sdk
build_library i386
build_library x86_64

cd build
lipo -create armv7/lib/libcrypto.a armv7s/lib/libcrypto.a arm64/lib/libcrypto.a i386/lib/libcrypto.a x86_64/lib/libcrypto.a  -output libcrypto.a
lipo -create armv7/lib/libssl.a armv7s/lib/libssl.a arm64/lib/libssl.a i386/lib/libssl.a x86_64/lib/libssl.a -output libssl.a
cd $DIR
echo "all done"

使用说明

./build_openssl.sh

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!