6

我有一个依赖于几个静态框架的 XCFramework。

我的 XCFramework 是在启用 BUILD_FOR_LIBRARIES_FOR_DISTRIBUTION 的情况下构建的。

不需要从 XCFramework 外部访问子框架。

当我尝试在客户端(主机)应用程序中编译我的 XCFramework 时,我在 XCFramework 的 .swiftinterface 文件中收到错误消息No such module 'FBSDKLoginKit'(FBSDKLoginKit 是 XCFramework 子框架之一)

似乎缺少的是依赖模块的 swiftinterface 文件。例如,我正在使用 FBSDKLoginKit,但 XCFramework 中没有 swiftinterface。

作为参考,我正在编译框架如下:

xcodebuild archive -project "TestFrameowrk.xcodeproj" -scheme "TestFrameowrk" -sdk iphoneos -archivePath ~/Desktop/xcframework.arm SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES

xcodebuild archive -project "TestFrameowrk.xcodeproj" -scheme "TestFrameowrk" -sdk iphonesimulator -archivePath ~/Desktop/xcframework.x86 SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES

xcodebuild -create-xcframework -framework ~/Desktop/xcframework.x86.xcarchive/Products/Library/Frameworks/TestFrameowrk.framework  -framework ~/Desktop/xcframework.arm.xcarchive/Products/Library/Frameworks/TestFrameowrk.framework -output ~/Desktop/Framework.xcframework
4

2 回答 2

0

是的,我在 alamofire 依赖方面也遇到了同样的问题。所以发生的事情是当你生成 xcframeworks 时,你对 FBSDKLoginKit 有依赖关系。但是在生成您的客户想要使用的框架之后。您还必须提到依赖关系为具有相同版本的 FBSDKLoginKit,然后这个问题就不会发生。对我来说,我在客户端添加 alamofire 添加后解决了。

于 2020-09-05T05:59:21.120 回答
0

当您与客户端项目集成时,您是否尝试使用您创建的 XCFramework 单独添加其他依赖项?看起来,苹果建议避免将伞形/嵌套框架与 XCFramework 一起使用。

于 2020-07-14T04:57:02.257 回答