第一步:創(chuàng)建一個(gè)文件夾openssl
第二步:下載一份OpenSSL
?網(wǎng)址:https://www.openssl.org/source/,目前版本1.1.1i簿透,得到一個(gè)tar文件
第三步:解壓文件
得到文件夾?openssl-1.1.1i
第四步:在openssl文件夾下創(chuàng)建armv7\arm64\i386\x86_64對(duì)應(yīng)的文件夾
# 制定CPU的架構(gòu)(armv7,arm64和整合后的庫(kù))
$ mkdir openssl_arm64 openssl_armv7 openssl_i386?openssl_x8664? openssl_lib
第五步:cd到文件夾openssl-1.1.1i荔仁,修改路徑
#--prefix=第四步創(chuàng)建的目錄(搞不清相對(duì)路徑的可使用絕對(duì)路徑)
$ ./Configure iphoneos-cross --prefix=../openssl_armv7
第六步:修改配置文件
進(jìn)入文件夾openssl-1.1.1i下找到Makefile,并打開(kāi)編輯:
6.1.將CC= $(CROSS_COMPILE)cc替換為
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7
6.2、將原來(lái)的 CFLAGS=-03 替換為
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
6.3、在剛剛修改完畢的一行代碼上加上兩行:
# sdk上層路徑
CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
# sdk文件(在CROSS_TOP下找到當(dāng)前的iPhoneOS版本)
CROSS_SDK=iPhoneOS14.3.sdk
6.4、保存文件
第七步:編譯
make
make install
執(zhí)行成功就可以在設(shè)置的目錄(第五步)下查看到我們所需要的文件了
第八步:清理
避免緩存交排,刪除文件夾?openssl-1.1.1i,同時(shí)再次解壓第二步得到的tar会油,重新生成了一個(gè)文件夾?openssl-1.1.1i
第九步:重復(fù)第五步到第八步个粱,編譯多個(gè)指令集的庫(kù)(arm64\i386\x86_64)
注意,在編輯i386和x86_64時(shí)6.3的CROSS_TOP和CROSS_SDK應(yīng)替換為模擬器對(duì)應(yīng)的路徑
第十步:合并成通用庫(kù)
將不同指令集的庫(kù)libssl.a和libcrypto.a分別合并成各自的通用庫(kù)
lipo -create openssl_arm64/lib/libssl.a openssl_armv7/lib/libssl.a openssl_i386/lib/libssl.a?openssl_x8664/lib/libssl.a?-output openssl_lib/libssl.a
lipo -create openssl_arm64/lib/libcrypto.a openssl_armv7/lib/libcrypto.a?openssl_i386/lib/libcrypto.a?openssl_x8664/lib/libcrypto.a -output openssl_lib/libcrypto.a
第十一步:查看
在openssl_lib文件夾下會(huì)存在相應(yīng)的通用庫(kù)
第十二步:整理
將openssl_i386文件夾下的include文件夾拷貝到openssl_lib下
在openssl_lib下創(chuàng)建lib文件夾同時(shí)將openssl_lib文件夾下的兩個(gè)通用庫(kù)放入翻翩,就得到標(biāo)準(zhǔn)的庫(kù)文件夾了