SwiftUI 预览未针对不同方案构建:错误:没有此类模块“MyApp”

Tom*_*you 12 ios swiftui

我有一个主要使用 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
Run Code Online (Sandbox Code Playgroud)

我知道这些方案设置正确,因为该应用程序通常可以正常工作。

在我的产品模块名称中,它正确列出了多个值:针对不同构建类型的 MyApp 和 MyApp_staging。从技术上讲,该值设置为$(PRODUCT_NAME:c99extidentifier),但这填写了正确的名称。

是什么导致了这个问题?

Rat*_*ath 1

经过几个小时的沮丧之后,我设法找到了导致预览不显示的问题以及像您上面提到的错误。

这个问题很久以前就被问到了,但我希望至少有人面临这个问题可能会得到一些线索或答案,所以我将其留在这里。

就我而言,我有 3 个独立的目标模式调试、UAT 和生产,我尝试在其中 3 个目标之间切换目标,但我注意到,当我切换到生产模式时,它工作得很好,预览正常显示,没有错误,并且然后我意识到它可能与目标模式有关。

所以我检查我的项目目标>构建设置>打包>产品名称

有 Debug、Release、UAT - Debug 和 UAT - Release,它们都具有相同的 Target 名称,只有 UAT Debug 的名称与其他方案不同,所以我更改了 UAT - Debug 产品名称以匹配目标名称,并且工作正常现在

我不知道你是否遇到像我一样的问题,但这实际上解决了我的问题,但我不明白的是,自从项目启动以来,该配置就一直这样,但没有错误,我一直正常使用预览没有问题,只是今天出现错误。