xcframework制作

一、使用场景

编译一个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一样的。

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

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,200评论 30 471
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • DTCoreText是可以将HTML字符串转化为富文本使用的工具,既保证原生实现又能适应灵活的样式修改,而且相比于...
    梧雨北辰阅读 14,008评论 29 41
  • 这一篇文章给大家介绍:Xcode 11 Beta 5,虽然是beta版本,但是在不久的将来必将来临,例如:Swif...
    Cooci_和谐学习_不急不躁阅读 10,272评论 6 18
  • 开发小知识(一)[https://www.jianshu.com/p/5a4ba3c165b9] 开发小知识(二)...
    ZhengYaWei阅读 829评论 0 2