xcframework制作

作者: Gavin_盖文 | 来源:发表于2021-01-06 21:59 被阅读0次

    一、使用场景

    编译一个framework出来,根据支持的平台和Debug、Release的不同它分为
    Debug-iphonesimulator
    Debug-iphoneos
    Debug-maccatalyst
    Release-iphonesimulator
    Release-iphoneos
    Release-maccatalyst
    等情况。
    当然了,我们正式环境下使用的都是Release。但如何同时支持多个平台呢?又或者怎么同时支持模拟器和真机调试呢?(第二个问题包含在第一个里,因为模拟器是i386和x86_64,真机是arm64和armv7,不同平台无非是处理器的指令集不一样嘛)

    这时候需要合并,
    会使用到xcodebuild -create-xcframework命令


    二、说明

    这个命令不是像lipo -create命令一样合并,而是通过plist文件来控制不同平台下加载不同的.framework。后面会截图展示目录结构。


    三、使用

    1.目的:

    就是要解决开篇说道的问题。把指定库做成适合用在模拟器和真机上的库。

    2.准备工作:

    假设我们有一个库MyTools.framework。
    把framework工程分别在模拟器和真机情况下build一遍。
    Products -> Show in Finder 打开framework路径。

    打开framework所在路径 这时候我们准备工作完成了

    3.具体操作:

    在终端查看用法

    xcodebuild -create-xcframework -help
    
    -help之后的输出结果
    会发现xcodebuild -create-xcframework -framework <path> [-framework <path>...] -output <path>
    用法一目了然了
    xcodebuild -create-xcframework -framework <第一个库的路径> -framework <第二个库的路径> -output <输出路径/库名称.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 <第一个库的路径> -framework <第二个库的路径> -framework <第三个库的路径> 可以多个看需求而定,合并几个平台的就写几个上去

    最后

    我们会拿到如下目录结构的xcframework文件


    xcframework目录展示

    xcframework的用法跟普通framework一样的。

    相关文章

      网友评论

        本文标题:xcframework制作

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