ios SwiftUI预览未针对不同方案构建:错误:没有这样的模块'MyApp'

mcdcgff0  于 2023-06-25  发布在  iOS
关注(0)|答案(1)|浏览(120)

我有一个主要使用UIKit构建的应用程序,但我刚刚添加了我的第一个SwiftUI视图,但它没有构建。在我的Xcode项目中有两种不同的方案:MyAppMyApp_Staging。我正在使用MyApp_Staging方案,想看看我的SwiftUI预览是什么样子的。但是,它不会构建,并给我错误:

no such module 'MyApp'

----------------------------------------

CompileDylibError: Failed to build ImagePickerView.swift

Compiling failed: no such module 'MyApp'

/Users/Me/Library/Developer/Xcode/DerivedData/MyApp-czotsuriazmotwgvkpfocaqlgfpz/Build/Intermediates.noindex/Previews/MyApp (Staging)/Intermediates.noindex/MyApp.build/Debug (Staging)-iphonesimulator/MyApp.build/Objects-normal/x86_64/ImagePickerView.2.preview-thunk.swift:1:55: error: no such module 'MyApp'
@_private(sourceFile: "ImagePickerView.swift") import MyApp

我知道计划设置正确,因为应用程序通常工作正常。
在我的产品模块名称中,它正确列出了多个值:不同构建类型的MyApp和MyApp_staging。从技术上讲,该值被设置为$(PRODUCT_NAME:c99extidentifier),但这将填写正确的名称。
是什么导致了这个问题?

ojsjcaue

ojsjcaue1#

经过几个小时的沮丧,我设法找到的问题,导致预览不显示和错误,就像你上面提到的。
这个问题已经被问了很久了,但我希望至少有人面对这个问题可能会得到一些线索或答案,所以我将它留在这里。
在我的例子中,我有3个独立的目标模式Debug,UAT和Production,我尝试在其中3个之间切换目标,但我注意到当我切换到我的生产模式时,它工作得很好,预览显示正常,没有错误,然后我意识到它可能与目标模式有关。
因此,我检查项目目标>构建设置>打包>产品名称
有Debug、Release、UAT - Debug和UAT - Release,它们的Target名称都是一样的,只有UAT Debug的名称与其他方案不同,所以我将UAT - Debug产品名称更改为与目标名称匹配,现在它可以正常工作了
我不知道你是否和我一样面临同样的问题,但这实际上解决了我的问题,但我不明白的是,自从项目开始以来,该配置一直保持不变,但没有错误,我正常使用预览没有问题,只是今天出现了错误。

相关问题