Xcode 13 针对 .swiftsourceinfo 的警告

ale*_*cpp 9 xcode ios swift

我正在开发一个iOS框架,它混合了Swift和Objective-C,以二进制形式分发,没有源代码。

从 Xcode 13 开始,我在导入此框架时观察到警告:

“MyFramework.framework/Modules/MyFramework.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo”要么格式错误,要么由不同的 Swift 版本生成。请注意,它使用不稳定的格式,可能会泄漏内部项目详细信息,它不应该与模块一起分发

它似乎不喜欢 .swiftsourceinfo 文件。也许我应该手动从包中删除这个文件,但我找不到任何关于它的用途的解释。

即使我设置 BUILD_LIBRARY_FOR_DISTRIBUTION=YES,Xcode 也会使用该 .swiftsourceinfo 文件构建框架。那么为什么警告说“它不应该与模块一起分发”呢?

.swiftsourceinfo 文件的用途是什么?我可以安全地将其从构建的框架中删除吗?

小智 6

您如何构建二进制框架?一般来说,.swiftsourceinfo在不同版本的 Swift Compiler 中并不稳定,因此在分发框架时(尤其是在 Swift Compiler 时)不应包含它们BUILD_LIBRARY_FOR_DISTRIBUTION=YES。因此它们不应该包含在 .framework 包中。如果您使用它构建框架,xcodebuild archive则不应生成.swiftsourceinfo