一、使用場(chǎng)景
編譯一個(gè)framework出來(lái)程帕,根據(jù)支持的平臺(tái)和Debug、Release的不同它分為
Debug-iphonesimulator
Debug-iphoneos
Debug-maccatalyst
Release-iphonesimulator
Release-iphoneos
Release-maccatalyst
等情況。
當(dāng)然了瘸恼,我們正式環(huán)境下使用的都是Release。但如何同時(shí)支持多個(gè)平臺(tái)呢册养?又或者怎么同時(shí)支持模擬器和真機(jī)調(diào)試呢东帅?(第二個(gè)問(wèn)題包含在第一個(gè)里,因?yàn)槟M器是i386和x86_64球拦,真機(jī)是arm64和armv7靠闭,不同平臺(tái)無(wú)非是處理器的指令集不一樣嘛)
這時(shí)候需要合并帐我,
會(huì)使用到xcodebuild -create-xcframework
命令
二、說(shuō)明
這個(gè)命令不是像lipo -create
命令一樣合并愧膀,而是通過(guò)plist文件來(lái)控制不同平臺(tái)下加載不同的.framework拦键。后面會(huì)截圖展示目錄結(jié)構(gòu)。
三檩淋、使用
1.目的:
就是要解決開篇說(shuō)道的問(wèn)題芬为。把指定庫(kù)做成適合用在模擬器和真機(jī)上的庫(kù)。
2.準(zhǔn)備工作:
假設(shè)我們有一個(gè)庫(kù)MyTools.framework蟀悦。
把framework工程分別在模擬器和真機(jī)情況下build一遍媚朦。
Products -> Show in Finder 打開framework路徑。
3.具體操作:
在終端查看用法
xcodebuild -create-xcframework -help
會(huì)發(fā)現(xiàn)
xcodebuild -create-xcframework -framework <path> [-framework <path>...] -output <path>
用法一目了然了
xcodebuild -create-xcframework -framework <第一個(gè)庫(kù)的路徑> -framework <第二個(gè)庫(kù)的路徑> -output <輸出路徑/庫(kù)名稱.xcframework>
接下模擬正式情況用一下的使用:
xcodebuild -create-xcframework -framework /Users/admin/Library/Developer/Xcode/DerivedData/MyTools-ciyqnqacjemhpfbqswwhrlyvstsb/Build/Products/Release-iphoneos/MyTools.framework -framework /Users/admin/Library/Developer/Xcode/DerivedData/MyTools-ciyqnqacjemhpfbqswwhrlyvstsb/Build/Products/Release-iphonesimulator/MyTools.framework -output ~/Desktop/MyToolsOutput/MyTools.xcframework
// 成功后的日志
xcframework successfully written out to: /Users/admin/Desktop/MyToolsOutput/MyTools.xcframework
提示:
-framework <第一個(gè)庫(kù)的路徑> -framework <第二個(gè)庫(kù)的路徑> -framework <第三個(gè)庫(kù)的路徑> 可以多個(gè)看需求而定日戈,合并幾個(gè)平臺(tái)的就寫幾個(gè)上去
最后
我們會(huì)拿到如下目錄結(jié)構(gòu)的xcframework文件
xcframework的用法跟普通framework一樣的询张。