iOS XCFramework 制作
2023-07-10 本文已影响0人
CoderLGL
注意:文中的LGL为测试用framework项目名,要替换成你自己的项目名称。
XCFramework简介
XCFramework:是苹果官⽅推荐的、⽀持的,可以更⽅便的表示⼀个多个平台和架构的分发⼆进制库的格式。需要Xcode11以上⽀持。是为更好的⽀持Mac Catalyst(用于 iPad)和ARM芯⽚的macOS。专⻔在2019年提出的framework的另⼀种先进格式。
XCFramework和传统的framework相⽐的三个优点:
-
可以⽤单个.xcframework⽂件提供多个平台的分发⼆进制⽂件;
-
与Fat Header相⽐,可以按照平台划分,可以包含相同架构的不同平台的⽂件;
-
在使⽤时,不需要再通过脚本去剥离不需要的架构体系。
XCFramework 生成
1. 创建Framework
项目
如图:
image-20230711113053798.png image-20230711142851337.png image-20230711143146310.png2. 通过xcodebuild archive
命令编译打包成真机和模拟器架构
cd
进入LGL
的项目,终端
执行这两段代码(注意Test替换成你的项目名称)。
xcodebuild archive -project 'Test.xcodeproj' \
-scheme 'Test' \
-configuration Release \
-destination 'generic/platform=iOS Simulator' \
-archivePath '../archives/Test.framework-iphonesimulator.xcarchive' \
SKIP_INSTALL=NO
xcodebuild archive -project 'Test.xcodeproj' \
-scheme 'Test' \
-configuration Release \
-destination 'generic/platform=iOS' \
-archivePath '../archives/Test.framework-iphoneos.xcarchive' \
SKIP_INSTALL=NO
-
xcodebuild
: 在Xcode中实际使用的命令。 -
archive
: 打包。 -
project
: 工程名。 -
scheme
: 选择 scheme。 -
configuration
: 哪种环境下。 -
destination
: 要分发的平台,模拟器:iOS Simulator,真机:iOS。 -
archivePath
: 压缩之后,存放的路径。 -
SKIP_INSTALL=NO
:如果设置为YES,则不会将生成的framwork文件存放在Products目录下。
3. 合并真机和模拟器的framework
生成.xcframework
cd
进入刚才生成的archives
文件,终端
执行下面命令
xcodebuild -create-xcframework \
-framework '../archives/Test.framework-iphoneos.xcarchive/Products/Library/Frameworks/Test.framework' \
-framework '../archives/Test.framework-iphonesimulator.xcarchive/Products/Library/Frameworks/Test.framework' \
-output 'Test.xcframework'
- xcodebuild -create-xcframework: 创建 xcframework;
- -framework:要合并的framework地址(一个真机一个模拟器);
- -output:输出 xcframework。
制作完成
将制作好的xcframework
拖入并使用,导入头文件即可#import <Test/Test.h>