美文网首页
iOS XCFramework 制作

iOS XCFramework 制作

作者: CoderLGL | 来源:发表于2023-07-10 14:59 被阅读0次

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

    相关文章

      网友评论

          本文标题:iOS XCFramework 制作

          本文链接:https://www.haomeiwen.com/subject/obbeudtx.html