将 XCFrameworks 包含到 Podspec 中

Dav*_*ues 5 ios cocoapods podspec swift xcframework

我有一个静态库,为多种架构编译,包含在 XCFramework 中。

它看起来像这样:

 | framework_1.xcframework
 |---- _CodeSignature
 |---- Info.plist
 |---- ios-arm64_arm64e
       |---- Headers
       |---- libframework.a
 |---- ios-arm64_x86_64-simulator
       |---- Headers
       |---- libframework.a
 |---- macos-arm64_arm64e_x86_64
       |---- Headers
       |---- libframework.a
Run Code Online (Sandbox Code Playgroud)

我正在开发一个带有 Podspec 的 iOS 框架,如下所示:

Spec do |spec|
 spec.information

 spec.subspec 'XCFrameworkPod' do |xcframework|
  xcframework.vendored_frameworks = 'path/to/framework_1.xcframework'
 end

Run Code Online (Sandbox Code Playgroud)

我已经通过指定以下内容成功包含了我的标题:

  xcframework.source_files = 'path/to/framework_1.xcframework/ios-arm64_x86_64-simulator/Headers/**/*.h'
Run Code Online (Sandbox Code Playgroud)

这样,我的标题就可以在我的项目中使用。但是当我尝试使用其中之一时,它无法编译。我有以下错误:

在框架模块内包含非模块化标头: '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/clang/include/inttypes.h' 在框架内包含非模块化标头模块:'/Users/myuser/Library/Developer/Xcode/DerivedData/MyProject/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/MyPod/XCFrameworkPod/Headers/header.h'

如何正确集成xcframework和标头?

我尝试设置“Clang 允许非模块化标头”,但它在 Swift 项目中不起作用。

感谢您的帮助 !

Pau*_*ien 3

source_files属性不应与vendored_frameworks属性一起使用。所有标头都应嵌入到vendored_frameworks. 这是一个例子