Framework 轉(zhuǎn)換 XCFramework

先說(shuō)一下XCFramework的好處吧:

  1. 多架構(gòu)合并服猪,模擬器正林,真機(jī)可以通用隨便跑
  2. 上架AppStore首装,不需要將.xcframework中的真機(jī)架構(gòu)分離,.framework還需要用腳本分離兰吟,這實(shí)在太棒了

Framework簡(jiǎn)單解析

拿騰訊IM的舉例吧通惫,其實(shí).framework就是個(gè)文件夾里面裝著封裝好的文件。

% cd path/ImSDK.framework # path 為 framework 路徑
ImSDK.framework % tree -L 1
.
├── Headers # 頭文件夾
├── ImSDK # 可執(zhí)行文件
├── Info.plist
└── Modules # Modules 文件夾

2 directories, 2 files

通過(guò)lipo -info查看.framework中的可執(zhí)行文件中包含的架構(gòu):

ImSDK.framework % lipo -info ImSDK 
Architectures in the fat file: ImSDK are: x86_64 armv7 arm64 

XCFramework簡(jiǎn)單解析

.xcframework是由兩個(gè)文件夾和一個(gè)配置文件組成:

ImSDK.xcframework % tree -L 1
.
├── Info.plist
├── ios-arm64_armv7 # arm64 以及 armv7的真機(jī)支持
└── ios-x86_64-simulator # i386 以及 x86_64的模擬器支持

2 directories, 1 file

在編譯過(guò)程中混蔼,編譯器通過(guò)識(shí)別設(shè)備的架構(gòu)不同架構(gòu)的設(shè)備履腋,去.xcframework中取對(duì)應(yīng)的支持執(zhí)行文件。

.xcframework只是封裝了真機(jī)和模擬器的.framework

Framework架構(gòu)的分離以及合并

  1. 將多架構(gòu)的.framework 中的所有架構(gòu)的執(zhí)行文件全部分離出來(lái)(arm64, armv7, x86_64, i386)(不一定全部有
ImSDK.framework % lipo ImSDK -thin x86_64 -output ImSDK-x86_64

依次分離出所有架構(gòu):
.
├── ImSDK-arm64
├── ImSDK-armv7
├── ImSDK-x86_64
├── ImSDK-i386
  1. 拆解后拄丰,真機(jī)架構(gòu)(arm64)和真機(jī)架構(gòu)(armv7)合并
% mkdir -p ImSDK-arm/ImSDK.framework
% lipo -create ImSDK-arm64 ImSDK-armv7 -output ImSDK-arm/ImSDK.framework/ImSDK
  1. 拆解后府树,模擬器架構(gòu)(x86_64)和模擬器架構(gòu)(i386)合并俐末。(有幾個(gè)合并幾個(gè)
% mkdir -p ImSDK-simulator/ImSDK.framework
% lipo -create ImSDK-x86_64 ImSDK-i386 -output ImSDK-simulator/ImSDK.framework/ImSDK
  1. 將原來(lái)的.framework中除了可執(zhí)行文件料按,原封不動(dòng)的拷貝到我們手動(dòng)創(chuàng)建的.framework。(如果不拷貝會(huì)出編譯時(shí)會(huì)各種奇怪的問(wèn)題)
# 真機(jī)
ImSDK.framework % tree -L 2 ImSDK-arm
ImSDK-arm
└── ImSDK.framework
    ├── Headers
    ├── ImSDK
    ├── Info.plist
    └── Modules

3 directories, 2 files

# 模擬器
ImSDK.framework % tree -L 2 ImSDK-simulator
ImSDK-simulator
└── ImSDK.framework
    ├── Headers
    ├── ImSDK
    ├── Info.plist
    └── Modules

3 directories, 2 files
  1. 在終端通指令xcodebuild -create-xcframework指令生成xcframework
xcodebuild -create-xcframework -framework ImSDK-arm/ImSDK.framework -framework ImSDK-simulator/ImSDK.framework -output ImSDK.xcframework

提示 xcframework successfully written out to: path/ImSDK.framework/ImSDK.xcframework即合并成功

完成以上步驟后即可生成XCFramework卓箫,用法和Framework一樣

最后如果想要使用xcframework 载矿,在File -> workspcaeSetting 中只用new Build System

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市烹卒,隨后出現(xiàn)的幾起案子闷盔,更是在濱河造成了極大的恐慌,老刑警劉巖旅急,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逢勾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡藐吮,警方通過(guò)查閱死者的電腦和手機(jī)溺拱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)谣辞,“玉大人迫摔,你說(shuō)我怎么就攤上這事∧啻樱” “怎么了句占?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)躯嫉。 經(jīng)常有香客問(wèn)我纱烘,道長(zhǎng)杨拐,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任擂啥,我火速辦了婚禮戏阅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘啤它。我一直安慰自己奕筐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布变骡。 她就那樣靜靜地躺著离赫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪塌碌。 梳的紋絲不亂的頭發(fā)上渊胸,一...
    開(kāi)封第一講書(shū)人閱讀 51,604評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音台妆,去河邊找鬼翎猛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛接剩,可吹牛的內(nèi)容都是我干的切厘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼懊缺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼疫稿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起鹃两,我...
    開(kāi)封第一講書(shū)人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤遗座,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后俊扳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體途蒋,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年馋记,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了号坡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抗果,死狀恐怖筋帖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情冤馏,我是刑警寧澤日麸,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響代箭,放射性物質(zhì)發(fā)生泄漏墩划。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一嗡综、第九天 我趴在偏房一處隱蔽的房頂上張望乙帮。 院中可真熱鬧,春花似錦极景、人聲如沸察净。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)氢卡。三九已至,卻和暖如春晨缴,著一層夾襖步出監(jiān)牢的瞬間译秦,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工击碗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筑悴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓稍途,卻偏偏與公主長(zhǎng)得像阁吝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晰房,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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