无法从模块接口构建模块;它可能已被损坏,或者可能在生成时触发了 Swift 编译器中的错误

2024-03-26

当创建这样的xcframework时

xcodebuild archive -project endiosOne-iOS.xcodeproj -scheme EOFoundation -destination="iOS" -archivePath /tmp/xcf/ios.xcarchive -衍生数据路径 /tmp/iphoneos -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

xcodebuild 存档-project endiosOne-iOS.xcodeproj-scheme EOFoundation -destination="iOS 模拟器" -archivePath /tmp/xcf/iossimulator.xcarchive -衍生数据路径 /tmp/iphoneos -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

xcodebuild -create-xcframework -framework /tmp/xcf/ios.xcarchive/Products/Library/Frameworks/EOFoundation.framework -framework /tmp/xcf/iossimulator.xcarchive/Products/Library/Frameworks/EOFoundation.framework -output /tmp/ xcf/EOFoundation.xcframework

然后将框架添加到现有项目或新项目中,我们在导入框架时会出现此错误。

无法从模块接口构建模块“EOFoundation”;它 可能已损坏或者可能触发了 Swift 中的错误 编译器生成时

使用 xcode 12.1,还尝试使用 Xcode 11。尝试使用新的 UIKit 应用程序和新的仅 SwiftUI 应用程序

我们收到以下 UIKit 错误UIKit 错误 https://gist.github.com/johannwerner/f92c265e75586f9ba67e34e7490fed98#file-uikiterrors-txt

我无法修复 UIKit 错误,因为它在 UIKit 中:不幸的是,苹果没有为我们提供大量有关如何修复此问题的信息。

我该如何解决这个问题,以便使用我在另一个项目中生成的 xcframework?


我就此问题向 Apple 发出了反馈请求,他们提出了以下建议:

我们可以告诉您,有一个已知问题符合您的描述:如果您的模块名为“MyModuleName”,并且它还声明或导入了type称为“MyModuleName”,文件中应该引用模块的名称将被解析为类型,从而在您尝试导入它时导致错误。 Swift 开源项目的错误跟踪器在公开文章中描述了此错误及其解决方法:https://bugs.swift.org/browse/SR-14195 https://bugs.swift.org/browse/SR-14195

果然,我从框架导出的类型与我导入它的模块的名称完全相同。重命名类型解决了我的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从模块接口构建模块;它可能已被损坏,或者可能在生成时触发了 Swift 编译器中的错误 的相关文章

随机推荐