iOS開發(fā) .a轉(zhuǎn)成.framework 編譯openssl

一级解、方法

方法一

假設(shè)有靜態(tài)庫.a: liblibA


image.png

想轉(zhuǎn)成libA.framework


image.png

第一步

把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ì)比:

image.png

image.png

方法二

第一步

把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

源代碼
github源代碼

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)下圖則代表配置成功:


image.png

執(zhí)行該命令后削咆,會(huì)生成Makefile文件,可以修改里面的配置蠢笋,以修改最終的編譯結(jié)果拨齐。


image.png

也可以修改15-ios.conf里面的配置
image.png

image.png

5、編譯

編譯openssl:

make

把編譯后的openssl放到--prefix指定的路徑:/Users/leo/Desktop/openssl_sdk:

make install

清理編譯:

make clean

在openssl_sdk目錄如下:

image.png

如果想要使用國(guó)密:2/3/4挺尿,還需要到如下文件:
image.png

其他編譯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:


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蹂匹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子凹蜈,更是在濱河造成了極大的恐慌限寞,老刑警劉巖娃磺,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異官帘,居然都是意外死亡陪汽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門玫霎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凿滤,“玉大人,你說我怎么就攤上這事庶近∥檀啵” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵鼻种,是天一觀的道長(zhǎng)反番。 經(jīng)常有香客問我,道長(zhǎng)叉钥,這世上最難降的妖魔是什么罢缸? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮沼侣,結(jié)果婚禮上祖能,老公的妹妹穿的比我還像新娘。我一直安慰自己蛾洛,他們只是感情好养铸,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著轧膘,像睡著了一般钞螟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谎碍,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天鳞滨,我揣著相機(jī)與錄音,去河邊找鬼蟆淀。 笑死拯啦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的熔任。 我是一名探鬼主播褒链,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼疑苔!你這毒婦竟也來了甫匹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎兵迅,沒想到半個(gè)月后抢韭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恍箭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年刻恭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片季惯。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吠各,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出勉抓,到底是詐尸還是另有隱情,我是刑警寧澤候学,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布藕筋,位于F島的核電站,受9級(jí)特大地震影響梳码,放射性物質(zhì)發(fā)生泄漏隐圾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一掰茶、第九天 我趴在偏房一處隱蔽的房頂上張望暇藏。 院中可真熱鬧,春花似錦濒蒋、人聲如沸盐碱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓮顽。三九已至,卻和暖如春围橡,著一層夾襖步出監(jiān)牢的瞬間暖混,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工翁授, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拣播,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓收擦,卻偏偏與公主長(zhǎng)得像贮配,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子炬守,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容