iOS XCFramework 制作

注意:文中的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.png

2. 通过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>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。