XCFramework
:是蘋果官方推薦的、支持的锣杂,可以更方便的表示一個多平臺和架構(gòu)的分發(fā)二進(jìn)制庫的格式脂倦。
需要Xcode 11以上支持番宁。
是為更好的支持Mac Catalyst 和 ARM芯片的macOS。
專門在2019年提出的framework的另一種先進(jìn)格式赖阻。XCFramework
和傳統(tǒng)的Framework相比:
1蝶押、可以用單個.xcframework
文件提供多個平臺的分發(fā)二進(jìn)制文件;
2火欧、與Fat Header
相比棋电,可以按照平臺劃分,可以包含相同架構(gòu)的不同平臺的文件苇侵;
3离陶、在使用時。不需要再通過腳本去剝離不需要的架構(gòu)體系衅檀。目前XCFramework只能通過
終端
來生成招刨。
創(chuàng)建和使用XCFramework
-
1、首先我們創(chuàng)建一個動態(tài)庫如下:
- 2哀军、分別生成針對
模擬器
和真機(jī)
的.xcarchive
文件:
xcodebuild archive -project 'YSFramework.xcodeproj' \
-scheme 'YSFramework' \
-configuration Release \
-destination 'generic/platform=iOS Simulator' \
-archivePath '../archives/YSFramework.framework-iphonesimulator.xcarchive' \
SKIP_INSTALL=NO
xcodebuild archive -project 'YSFramework.xcodeproj' \
-scheme 'YSFramework' \
-configuration Release \
-destination 'generic/platform=iOS' \
-archivePath '../archives/YSFramework.framework-iphoneos.xcarchive' \
SKIP_INSTALL=NO
- 3沉眶、創(chuàng)建XCFramework
xcodebuild -create-xcframework \
-framework '../archives/YSFramework.framework-iphoneos.xcarchive/Products/Library/Frameworks/YSFramework.framework' \
-framework '../archives/YSFramework.framework-iphonesimulator.xcarchive/Products/Library/Frameworks/YSFramework.framework' \
-output 'YSFramework.xcframework'
如果要帶入調(diào)試符號,可以這樣寫(添加
-debug-symbols
杉适,后面跟著的必須是絕對地址):
xcodebuild -create-xcframework \
-framework '../archives/YSFramework.framework-iphoneos.xcarchive/Products/Library/Frameworks/YSFramework.framework' \
-debug-symbols '/Users/aaron/Desktop/XCFramework/archives/YSFramework.framework-iphoneos.xcarchive/BCSymbolMaps/29AAC2F6-3311-3B93-9841-DADB7F1E0137.bcsymbolmap' \
-debug-symbols '/Users/aaron/Desktop/XCFramework/archives/YSFramework.framework-iphoneos.xcarchive/dSYMs/YSFramework.framework.dSYM' \
-framework '../archives/YSFramework.framework-iphonesimulator.xcarchive/Products/Library/Frameworks/YSFramework.framework' \
-debug-symbols '/Users/aaron/Desktop/XCFramework/archives/YSFramework.framework-iphonesimulator.xcarchive/dSYMs/YSFramework.framework.dSYM' \
-output 'YSFramework.xcframework'
- 4谎倔、使用XCFramework
創(chuàng)建工程YSApp
:
將XCFramework拖入工程并使用: