iOS 将Framework更改为xcframework

816 阅读1分钟

了解XCFramework

  • XCFramework是Apple在Xcode 11中引入的一种跨平台打包格式。它被设计用于在不同的苹果平台(如iOS、macOS、watchOS等)之间共享和使用代码。
  • XCFramework可以包含多个Framework,以支持不同平台和不同的设备架构。它支持二进制兼容性,可以在不同的Xcode版本和不同的平台之间进行共享和使用。
  • 使用XCFramework可以更好地管理和分发跨平台的代码。它将多个平台所需的二进制文件、资源文件和头文件打包在一起,方便开发者在各个平台之间共享代码,并且可以在不同的Xcode版本中进行使用和更新。

1.打包好的真机framework与模拟器framework

WechatIMG875.jpg

2.使用命令行将两个framework制作成xcframework

名字替换为自己的framework名字

xcodebuild -create-xcframework -framework Release-iphoneos/ZLPhotoBrowser.framework -framework Release-iphonesimulator/ZLPhotoBrowser.framework -output ZLPhotoBrowser.xcframework

3.运到的问题

1、终端编译报错:No 'swiftinterface' files found within '/Users/XXXXX/Library/Developer/Xcode/DerivedData/XXXXXXX-cssmokgxfacnjvckiyunsclvkofa/Build/Products/Release-iphoneos/XXXXXXX.framework/Modules/XXXXXX.swiftmodule'.

解决方法:Build Settings ——> Build Libraries for Distribution, 设置这个选项为 Yes,否则 framework 中不会包含 .swiftmodule 文件。

e4e87231effde078229064b52f8528bb.png

参考:
Xcode15 Swift 制作 XCFramework
Swift 打包xcframework报错“No ‘swiftinterface‘ files found within“