一级解、方法
方法一
假設(shè)有靜態(tài)庫.a: liblibA
想轉(zhuǎn)成libA.framework
第一步
把liblibA和頭文件放到目錄Test中
創(chuàng)建文件夾并命名為:libA.framework
cd ~/Desktop/Test
mkdir libA.framework
第二步
把liblibA去掉.a后綴山宾,并改名為libA,放到libA.framework目錄下
mv liblibA.a libA.framework/libA
第三步
在libA.framework文件夾中創(chuàng)建Headers目錄遣疯,并把liblibA的頭文件放進(jìn)去。
mkdir -p libA.framework/Headers
cp include/* libA.framework/Headers
第四步
如存在libA.h,則在里面直接添加:
#import <libA/libA.h>
#import <libA/LeoTest.h>
#import <libA/Test.h>
如不存在零如,則創(chuàng)建libA.h文件,在里面添加上面的引用锄弱。
第五步
如果想把不同架構(gòu)合并考蕾,可以使用lipo -create
參考:lipo命令使用
如果還有個(gè)庫:other.a,想把他也放到libA.framework中会宪,可以先把他解包成.o肖卧,然后進(jìn)行合并,
參考:iOS開發(fā) 靜態(tài)庫.a/.framework合并及加載
調(diào)用對(duì)比:
方法二
第一步
把liblibA和頭文件放到目錄Test中
創(chuàng)建文件夾并命名為:libA.framework,創(chuàng)建Headers和Resources
mkdir -p libA.framework/Versions/A/Headers
mkdir -p libA.framework/Versions/A/Resources
第二步
創(chuàng)建軟鏈接
ln -s A libA.framework/Versions/Current
ln -s Versions/Current/Headers libA.framework/Headers
ln -s Versions/Current/Resources libA.framework/Resources
ln -s Versions/Current/libA libA.framework/libA
第三步
復(fù)制.a到Versions/A目錄掸鹅,改為libA
cp liblibA.a libA.framework/Versions/A/libA
第四步
復(fù)制頭文件到Versions/A/Headers
cp -r include/* libA.framework/Versions/A/Headers
第五步
如存在libA.h塞帐,則在里面直接添加:
#import <libA/libA.h>
#import <libA/LeoTest.h>
#import <libA/Test.h>
如不存在,則創(chuàng)建libA.h文件巍沙,在里面添加上面的引用葵姥。
二、編譯openssl靜態(tài)庫.a
1句携、下載openssl
2榔幸、查看當(dāng)前xcode命令行路徑
xcode-select -print-path
把真實(shí)路徑替換到下面命令中
3、配置環(huán)境變量
cd到openssl目錄
cd /Users/leo/Desktop/openssl-1.1.1w
執(zhí)行下面指令:
export CC=clang;
export CROSS_TOP=/Applications/Xcode_15.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
export CROSS_SDK=iPhoneOS.sdk
export PATH="/Applications/Xcode_15.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$PATH"
4矮嫉、編譯配置
./Configure ios64-cross no-shared no-dso no-hw no-engine --prefix=/Users/leo/Desktop/openssl_sdk
./Configure配置說明:
arm64架構(gòu):ios64-cross
armv7架構(gòu):ios-cross
x86_64模擬器架構(gòu):ios64-sim-cross
如果出現(xiàn)下圖則代表配置成功:
執(zhí)行該命令后削咆,會(huì)生成Makefile文件,可以修改里面的配置蠢笋,以修改最終的編譯結(jié)果拨齐。
也可以修改15-ios.conf里面的配置
5、編譯
編譯openssl:
make
把編譯后的openssl放到--prefix指定的路徑:/Users/leo/Desktop/openssl_sdk:
make install
清理編譯:
make clean
在openssl_sdk目錄如下:
如果想要使用國(guó)密:2/3/4挺尿,還需要到如下文件:
其他編譯OpenSSL文章
OpenSSL-for-iPhone
GRKOpenSSLFramework
編譯好的OpenSSL
三奏黑、openssl .a轉(zhuǎn)成.framework
可以轉(zhuǎn)成.framework靜態(tài)庫,也可以轉(zhuǎn)成.framework動(dòng)態(tài)庫编矾。
新建OpenSSL.Framework熟史,把libcrypto.a和libssl.a以及頭文件放到OpenSSL.Framework中,暴露所有的頭文件窄俏,并新建在OpenSSL.h中把所有文件import: